调整自己当前排名逻辑

main
liutk 2024-05-27 15:59:02 +08:00
parent df7ca68395
commit 14dc1072c3
1 changed files with 23 additions and 10 deletions

View File

@ -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([