From 73f413f5e160356dccda40ecca047a337ebe924d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=9D=99?= Date: Thu, 30 Dec 2021 18:44:04 +0800 Subject: [PATCH] =?UTF-8?q?=E7=B2=89=E4=B8=9D=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Merchant/FanController.php | 16 ++++++++++ app/Endpoint/Api/routes.php | 2 ++ app/Models/User.php | 12 +++++-- ...d_inviter_id_index_to_user_infos_table.php | 32 +++++++++++++++++++ 4 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 database/migrations/2021_12_30_184109_add_inviter_id_index_to_user_infos_table.php diff --git a/app/Endpoint/Api/Http/Controllers/Merchant/FanController.php b/app/Endpoint/Api/Http/Controllers/Merchant/FanController.php index 80ef2533..c402419b 100644 --- a/app/Endpoint/Api/Http/Controllers/Merchant/FanController.php +++ b/app/Endpoint/Api/Http/Controllers/Merchant/FanController.php @@ -28,4 +28,20 @@ class FanController extends Controller return FanResource::collection($fans); } + + /** + * 粉丝统计 + * + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\Response + */ + public function statistics(Request $request) + { + $user = $request->user(); + + return response()->json([ + 'fans_count' => $user->getFansCount(), + 'team_sales_value' => $user->userInfo->team_sales_value, + ]); + } } diff --git a/app/Endpoint/Api/routes.php b/app/Endpoint/Api/routes.php index 20d529d2..473ac86e 100644 --- a/app/Endpoint/Api/routes.php +++ b/app/Endpoint/Api/routes.php @@ -188,6 +188,8 @@ Route::group([ Route::get('account', [Merchant\UserController::class, 'account']); // 粉丝列表 Route::get('fans', [Merchant\FanController::class, 'index']); + // 粉丝统计 + Route::get('fan-statistics', [Merchant\FanController::class, 'statistics']); // 配额日志 Route::get('quota-logs', [Merchant\QuotaLogController::class, 'index']); // 个人销售值日志 diff --git a/app/Models/User.php b/app/Models/User.php index af43ca5f..7b12e7f3 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -254,14 +254,22 @@ class User extends Model implements AuthorizableContract, AuthenticatableContrac /** * 用户的粉丝 - * - * @return void */ public function fans() { return $this->belongsToMany(User::class, 'user_infos', 'inviter_id', 'user_id'); } + /** + * 获取我的粉丝总数 + * + * @return int + */ + public function getFansCount(): int + { + return UserInfo::where('inviter_id', $this->id)->count(); + } + /** * 禁用用户 * diff --git a/database/migrations/2021_12_30_184109_add_inviter_id_index_to_user_infos_table.php b/database/migrations/2021_12_30_184109_add_inviter_id_index_to_user_infos_table.php new file mode 100644 index 00000000..c91e8ed8 --- /dev/null +++ b/database/migrations/2021_12_30_184109_add_inviter_id_index_to_user_infos_table.php @@ -0,0 +1,32 @@ +index('inviter_id'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('user_infos', function (Blueprint $table) { + $table->dropIndex(['inviter_id']); + }); + } +}