repository = $repository; } /** * @param Request $request * * @return mixed * @throws \Prettus\Repository\Exceptions\RepositoryException */ public function handleList(Request $request) { $this->repository->pushCriteria(new UserXuefenCriteria($request)); $this->repository->setPresenter(UserXuefenPresenter::class); return $this->repository->searchListsPage(); } /** * @param $id * * @return \Illuminate\Database\Eloquent\Model */ public function handleProfile($id) { $this->repository->setPresenter(UserXuefenPresenter::class); return $this->repository->searchBy($id); } /** * @param array $data * * @return mixed * @throws \Prettus\Validator\Exceptions\ValidatorException */ public function handleStore($data) { $userXuefen = $this->repository->create($data); return $userXuefen; } /** * @param array $data * * @return mixed * @throws \Prettus\Validator\Exceptions\ValidatorException */ public function handleUpdate($data) { $userXuefen = $this->repository->update($data, $data['id']); return $userXuefen; } /** * @param Request $request * * @return mixed * @throws \Prettus\Validator\Exceptions\ValidatorException */ public function handleDelete($id) { return $this->repository->delete($id); } /** * 选项 * @param Request $request * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator|\Illuminate\Support\Collection|mixed * @throws \Prettus\Repository\Exceptions\RepositoryException */ public function handleSelectOptions(Request $request) { $this->repository->pushCriteria(new UserXuefenCriteria($request)); return $this->repository->all(['id', 'name']); } /** * 批量删除 * @param $ids * @return mixed */ public function handleBatchDelete($ids) { return $this->repository->whereIn('id', $ids)->delete(); } /** * @param Request $request * * @return mixed * @throws \Prettus\Repository\Exceptions\RepositoryException */ public function handleAll(Request $request) { $this->repository->pushCriteria(new UserXuefenCriteria($request)); $this->repository->setPresenter(UserXuefenPresenter::class); return $this->repository->get(); } /** * @param Request $request * * @return mixed * @throws \Prettus\Repository\Exceptions\RepositoryException */ public function handleIds(Request $request) { $this->repository->pushCriteria(new UserXuefenCriteria($request)); return $this->repository->pluck('id'); } /** * 随机数据 * @param Request $request * @return array * @throws \Exception */ public function handleRollingMes(Request $request) { $per_page = $request->get('per_page', 15); $megs = UserXuefen::query()->where('is_reward', UserXuefenRewardEnum::user)->with(['user'])->where('status', ModelStatusEnum::OK)->orderByDesc('id')->paginate($per_page); $total = count($megs); $data = []; foreach ($megs as $meg) { $data[] = [ 'time' => Carbon::parse($meg->created_at)->format('H:i'), 'nickname' => $meg['user']['nickname'], 'xuefen' => $meg['xuefen'], ]; } $startDate = Carbon::now()->addHours(-4); $endDate = Carbon::now(); for ($i = $total; $i < $per_page; $i++) { $randomDate = Carbon::instance( $startDate->copy()->addSeconds(random_int(0, $endDate->diffInSeconds($startDate))) ); $data[] = [ 'time' => $randomDate->format('H:i'), 'nickname' => User::query()->inRandomOrder()->where('xuefen', '>', 0)->limit(1)->value('nickname'), 'xuefen' => random_int(1, 100), ]; } $data = arraySort($data, 'time'); return $data; } public function handleVerify($id) { $is = Cache::has("service:UserXueFen:handleVerify:{$id}"); if ($is) return !!Cache::get("service:UserXueFen:handleVerify:{$id}"); $xuefen = UserXuefen::query()->where('id', $id)->where('user_id', login_user_id())->select(['id', 'is_read'])->first(); if ($xuefen->is_read == ModelStatusEnum::OK) { Cache::put("service:UserXueFen:handleVerify:{$id}", 0, Carbon::now()->addHours(2)); return false; } $xuefen->is_read = ModelStatusEnum::OK; Cache::put("service:UserXueFen:handleVerify:{$id}", 0, Carbon::now()->addHours(2)); return true; } }