sort() ->simplePaginate($request->query('per_page', 20)); return $this->success(['activities' => ActivityResource::collection($activities)->resolve()]); } public function show(Activity $activity, Request $request) { $resource = ActivityResource::make($activity); //判断当前用户是否在该活动有奖品 $resource->offsetSet('has_gift', UserActivity::where([ 'user_id' => $request->user()->id, 'activity_id' => $activity->id ])->value('has_gift') ?? 0); return $resource; } public function rankList(Request $request) { $activityId = $request->input('activity_id', 0); //获取排行表 $list = UserActivity::with('user')->where('activity_id', $activityId)->where('mark', '>', 0)->sort()->limit(30)->get(); //获取当前排名; $userMark = UserActivity::where([ 'user_id' => $request->user()->id, 'activity_id' => $activityId, ])->value('mark'); $rankNumber = null; if($userMark){ $rankNumber = UserActivity::where('activity_id', $activityId)->where('mark', '>', $userMark)->sort()->count(); $rankNumber++; } return $this->success(['rank_list' => UserActivityResource::collection($list)->resolve(), 'rank_number'=>$rankNumber]); } public function latestRankList(Request $request) { $activity = Activity::show()->sort()->first(); $activityId = $activity?->id ?? 0; //获取排行表 $list = UserActivity::with('user')->where('activity_id', $activityId)->where('mark', '>', 0)->sort()->limit(30)->get(); //获取当前排名; $userMark = UserActivity::where([ 'user_id' => $request->user()->id, 'activity_id' => $activityId, ])->value('mark'); $rankNumber = null; if($userMark){ $rankNumber = UserActivity::where('activity_id', $activityId)->where('mark', '>', $userMark)->sort()->count(); $rankNumber++; } return $this->success([ 'activity'=> ActivityResource::make($activity)->resolve(), 'rank_list' => UserActivityResource::collection($list)->resolve(), 'rank_number'=>$rankNumber, ]); } }