middleware('checkUserPermission'); $this->service = $service; } /** * 获取排行榜数据 * @param Request $request * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource * @throws \Illuminate\Validation\ValidationException */ public function index(Request $request) { $this->validateData($request, [ 'type' => "required|in:1,2,3,4" ], [ 'type' => '排行榜类型' ]); $type = $request->get('type', 1); $user = login_user(); switch ($type) { case 1: //实时排行榜 $data = $this->service->handleRanking($user); break; case 2: //昨天排行榜 $day = Carbon::now()->addDays(-1)->toDateString(); $data = $this->service->handleWeekRanking($user, $day, DayTypeEnum::day); break; case 3: //上周 $day = Carbon::now()->addWeeks(-1)->startOfWeek()->toDateString(); $data = $this->service->handleWeekRanking($user, $day, DayTypeEnum::week); break; case 4: //上月 $day = Carbon::now()->addMonths(-1)->startOfMonth()->toDateString(); $data = $this->service->handleWeekRanking($user, $day, DayTypeEnum::month); break; } return $this->response->success($data); } /** * 弹框展示状态 * @param Request $request * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource * @throws \Illuminate\Validation\ValidationException */ public function showStatus(Request $request) { $data = $this->validateData($request, [ 'xuefen_record_id' => 'required|integer' ], [ 'xuefen_record_id' => '获得学分 id' ]); $user_id = login_user_id(); //是否有新获得的学分 $xuefen_record_id = $request->get('xuefen_record_id', 0); $addXuefenStatus = false; if ($xuefen_record_id) { $addXuefenStatus = $this->service->handleIsNoRead($xuefen_record_id, $user_id); } else { $addXuefenStatus = $this->service->handleNewIsRead($user_id); } //排名是否上升 $rankingStatus = false; if (!$addXuefenStatus) { $rankingStatus = $this->service->handleIsUpRanking($user_id); } //学分是否上升 $xuefenStatus = false; if (!$addXuefenStatus && !$rankingStatus) { $xuefenStatus = $this->service->handleIsUpDayXuefen($user_id); } //是否长时间没有卖货 $timeOutStatus = ['status' => false]; if (!$addXuefenStatus && !$rankingStatus && !$xuefenStatus) $timeOutStatus = $this->service->handleTimeOutNoOrder($user_id); return $this->response->success([ 'addXuefenStatus' => $addXuefenStatus, 'rankingStatus' => $rankingStatus, 'xuefenStatus' => $xuefenStatus, 'timeOutStatus' => $timeOutStatus, ]); } }