From 9e0bfa86bd2fc47081e5fdcc0a0accd5f12bea28 Mon Sep 17 00:00:00 2001 From: vine_liutk <961510893@qq.com> Date: Tue, 28 Dec 2021 19:27:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=B2=89=E4=B8=9D=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Account/FansController.php | 34 +++++++++++++++++++ .../Api/Http/Resources/FansResource.php | 23 +++++++++++++ app/Endpoint/Api/routes.php | 3 ++ app/Models/User.php | 10 ++++++ 4 files changed, 70 insertions(+) create mode 100644 app/Endpoint/Api/Http/Controllers/Account/FansController.php create mode 100644 app/Endpoint/Api/Http/Resources/FansResource.php 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'); + } + /** * 禁用用户 *