middleware('checkUserPermission'); $this->service = $service; } /** * 列表 * @param Request $request * * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource * @throws \Prettus\Repository\Exceptions\RepositoryException */ public function index(Request $request) { $lists = $this->service->handleList($request); return $this->response->success($lists); } /** * 详情 * @param Request $request * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource */ public function show(Request $request) { $this->validate($request, ['id' => 'required|integer']); $model = $this->service->handleProfile($request->get('id')); return $this->response->success($model); } /** * 我的证书 * @param Request $request * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource */ public function meZhengshu(Request $request) { $user_id = login_user_id(); // User::refreshUserTag($user_id); $user = User::query()->where('id', $user_id)->first(); $tag = $user['tag']; $tag_star = $user['tag_star']; $xuefen = $user['xuefen']; return $this->response->success(compact('tag_star', 'tag', 'xuefen')); } /** * 排行榜数据 * @param Request $request * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource * @throws \Illuminate\Validation\ValidationException */ public function resources(Request $request) { $this->validateData($request, ['type' => 'required|in:1,2'], ['type' => '类型']); $type = $request->get('type'); $model = StatisticalResource::query()->where('type', $type); $user = login_user(); $user_id = $user['id']; $group_id = $user['group_id']; $day = Carbon::now()->subWeek()->startOfWeek()->toDateString(); $week = $model->clone()->where('group_id', $group_id)->where('day', $day)->where('day_type', DayTypeEnum::week)->orderByDesc('id')->select(['id', 'path', 'day'])->first(); if (!$week) { $week = $model->clone()->where('group_id', 0)->where('day', $day)->where('day_type', DayTypeEnum::week)->orderByDesc('id')->select(['id', 'path', 'day'])->first(); } $day = Carbon::now()->subMonth()->startOfMonth()->toDateString(); $month = $model->clone()->where('group_id', $group_id)->where('day', $day)->where('day_type', DayTypeEnum::month)->orderByDesc('id')->select(['id', 'path', 'day'])->first(); if (!$month) { $month = $model->clone()->where('group_id', 0)->where('day', $day)->where('day_type', DayTypeEnum::month)->orderByDesc('id')->select(['id', 'path', 'day'])->first(); } $day = Carbon::now()->subQuarter()->startOfQuarter()->toDateString(); $quarter = $model->clone()->where('group_id', $group_id)->where('day', $day)->where('day_type', DayTypeEnum::quarter)->orderByDesc('id')->select(['id', 'path', 'day'])->first(); if (!$quarter) { $quarter = $model->clone()->where('group_id', 0)->where('day', $day)->where('day_type', DayTypeEnum::quarter)->orderByDesc('id')->select(['id', 'path', 'day'])->first(); } $day = Carbon::now()->subYear()->startOfYear()->toDateString(); $year = $model->clone()->where('group_id', $group_id)->where('day', $day)->where('day_type', DayTypeEnum::year)->orderByDesc('id')->select(['id', 'path', 'day'])->first(); if (!$year) { $year = $model->clone()->where('group_id', 0)->where('day', $day)->where('day_type', DayTypeEnum::year)->orderByDesc('id')->select(['id', 'path', 'day'])->first(); } $week = null; $month = null; $quarter = null; $year = null; return $this->response->success(compact('week', 'month', 'quarter', 'year')); } }