diff --git a/app/Endpoint/Api/Http/Controllers/Account/FansController.php b/app/Endpoint/Api/Http/Controllers/Account/FansController.php new file mode 100644 index 00000000..92266e90 --- /dev/null +++ b/app/Endpoint/Api/Http/Controllers/Account/FansController.php @@ -0,0 +1,34 @@ +json([ + 'fans_num'=>$request->user()->fans()->count(), + ]); + } + + public function index(Request $request) + { + $perPage = PaginatorHelper::resolvePerPage('per_page', 20, 50); + $fans = $request->user()->fans() + ->with('userInfo') + ->latest('id') + ->simplePaginate($perPage); + return FansResource::collection($fans); + } +} diff --git a/app/Endpoint/Api/Http/Resources/FansResource.php b/app/Endpoint/Api/Http/Resources/FansResource.php new file mode 100644 index 00000000..a66ef953 --- /dev/null +++ b/app/Endpoint/Api/Http/Resources/FansResource.php @@ -0,0 +1,23 @@ + $this->phone, + 'nickname' => (string) $this->whenLoaded('userInfo', $this->userInfo->nickname, ''), + 'avatar' => (string) $this->whenLoaded('userInfo', $this->userInfo->avatar, ''), + ]; + } +} diff --git a/app/Endpoint/Api/routes.php b/app/Endpoint/Api/routes.php index 78f24de5..75e10d47 100644 --- a/app/Endpoint/Api/routes.php +++ b/app/Endpoint/Api/routes.php @@ -1,6 +1,7 @@ hasMany(DistributionPreIncome::class, 'user_id'); } + /** + * 用户的粉丝 + * + * @return void + */ + public function fans() + { + return $this->belongsToMany(User::class, 'user_infos', 'inviter_id', 'user_id'); + } + /** * 禁用用户 *