From 14dc1072c3fb7c45e1b817594ac1fc1d78c62cf4 Mon Sep 17 00:00:00 2001 From: liutk <961510893@qq.com> Date: Mon, 27 May 2024 15:59:02 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E8=87=AA=E5=B7=B1=E5=BD=93?= =?UTF-8?q?=E5=89=8D=E6=8E=92=E5=90=8D=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Api/ActivityController.php | 33 +++++++++++++------ 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/app/Http/Controllers/Api/ActivityController.php b/app/Http/Controllers/Api/ActivityController.php index 500cfe2..f8fa66d 100644 --- a/app/Http/Controllers/Api/ActivityController.php +++ b/app/Http/Controllers/Api/ActivityController.php @@ -40,15 +40,22 @@ class ActivityController extends ApiController $list = UserActivity::with('user')->where('activity_id', $activityId)->where('mark', '>', 0)->sort()->limit(30)->get(); //获取当前排名; - $userMark = UserActivity::where([ + $userActivity = UserActivity::where([ 'user_id' => $request->user()->id, 'activity_id' => $activityId, - ])->value('mark'); + ])->first(); $rankNumber = null; - if($userMark){ - $rankNumber = UserActivity::where('activity_id', $activityId)->where('mark', '>', $userMark)->sort()->count(); - $rankNumber++; + if($userActivity?->mark > 0){ //计算自己的排名 + + $markNumber = UserActivity::where('activity_id', $activityId)->where('mark', '>', $userActivity->mark)->sort()->count(); + $rightTimesNumber = UserActivity::where('activity_id', $activityId)->where('mark', '=', $userActivity->mark)->where('right_times', '>', $userActivity->right_times)->count(); + $joinAtNumber = UserActivity::where('activity_id', $activityId)->where([ + 'mark' =>$userActivity->mark, + 'right_times' => $userActivity->right_times + ])->where('last_join_at', '<', $userActivity->last_join_at)->count(); + + $rankNumber = $markNumber + $rightTimesNumber + $joinAtNumber + 1; } return $this->success(['rank_list' => UserActivityResource::collection($list)->resolve(), 'rank_number'=>$rankNumber]); @@ -62,15 +69,21 @@ class ActivityController extends ApiController $list = UserActivity::with('user')->where('activity_id', $activityId)->where('mark', '>', 0)->sort()->limit(30)->get(); //获取当前排名; - $userMark = UserActivity::where([ + $userActivity = UserActivity::where([ 'user_id' => $request->user()->id, 'activity_id' => $activityId, - ])->value('mark'); + ])->first(); $rankNumber = null; - if($userMark){ - $rankNumber = UserActivity::where('activity_id', $activityId)->where('mark', '>', $userMark)->sort()->count(); - $rankNumber++; + if($userActivity?->mark > 0){ //计算自己的排名 + $markNumber = UserActivity::where('activity_id', $activityId)->where('mark', '>', $userActivity->mark)->sort()->count(); + $rightTimesNumber = UserActivity::where('activity_id', $activityId)->where('mark', '=', $userActivity->mark)->where('right_times', '>', $userActivity->right_times)->count(); + $joinAtNumber = UserActivity::where('activity_id', $activityId)->where([ + 'mark' =>$userActivity->mark, + 'right_times' => $userActivity->right_times + ])->where('last_join_at', '<', $userActivity->last_join_at)->count(); + + $rankNumber = $markNumber + $rightTimesNumber + $joinAtNumber + 1; } return $this->success([