filled('limit')) { $query->limit($request->input('limit')); } $user = auth('api')->user(); // 当前用户的排名 $current = ['score' => '-', 'rank' => '-']; $list = $query->orderBy('current_score', 'desc')->get(); $rankList = []; foreach($list as $index => $item) { $rankItem = [ 'id' => $item->id, 'name' => $item->name, 'rank' => $index + 1, 'score' => $item->current_score ]; $rankList[] = $rankItem; if ($user && $rankItem['id'] == $user->id) { $current['rank'] = $rankItem['rank']; $current['score'] = $rankItem['score']; } } return $this->response()->success(['list' => $rankList, 'current' => $current]); } // 党员排名期数 public function dates() { $query = UserRank::query(); $list = $query->select('sn')->groupBy('sn')->pluck('sn'); return $this->response()->success($list); } // 党员其他季度的排名记录 public function list(Request $request) { $request->validate([ // 期数 'sn' => 'required', ]); $list = UserRank::with(['user']) ->where('sn', $request->input('sn')) ->orderBy('score', 'desc') ->get(); $rankList = []; $user = auth('api')->user(); // 当前用户所在的支部排名 $current = ['score' => '-', 'rank' => '-', 'cate' => '']; foreach ($list as $index => $item) { $rankItem = [ 'id' => $item->id, 'name' => $item->user?->name, 'rank' => $index + 1, 'score' => $item->score, ]; $rankList[] = $rankItem; if ($user && $rankItem['id'] == $user->cate_id) { $current['cate'] = $rankItem['name']; $current['rank'] = $rankItem['rank']; $current['score'] = $rankItem['score']; } } return $this->response()->success(['list' => $rankList, 'current' => $current]); } }