paperRepository = $paperRepositoryEloquent; } /** * @param Request $request * * @return mixed * @throws \Prettus\Repository\Exceptions\RepositoryException */ public function handleList(Request $request) { $this->paperRepository->pushCriteria(new PaperCriteria($request)); $this->paperRepository->setPresenter(PaperPresenter::class); return $this->paperRepository->searchPapersByPage(); } /** * @param $id * * @return \Illuminate\Database\Eloquent\Model */ public function handleProfile($id) { $this->paperRepository->setPresenter(PaperPresenter::class); return $this->paperRepository->searchPaperBy($id); } /** * @param array $data * * @return mixed * @throws \Prettus\Validator\Exceptions\ValidatorException */ public function handleStore($data) { self::defaultPoint($data); $paper = $this->paperRepository->create($data); // if (array_key_exists('banks', $data)) { // $paper->banks()->sync($data['banks']); // } return $paper; } /** * @param array $data * * @return mixed * @throws \Prettus\Validator\Exceptions\ValidatorException */ public function handleUpdate($data) { self::defaultPoint($data); $paper = $this->paperRepository->update($data, $data['id']); // if (array_key_exists('banks', $data)) { // $paper->banks()->sync($data['banks']); // } return $paper; } public static function defaultPoint(&$data) { if (!array_key_exists('banks', $data)) { return false; } if (!is_array($data['banks'])) { return false; } $banks = $data['banks']; $banks = Bank::query()->whereIn('id', $banks)->get(); $nums = count($banks); $da = []; if ($nums) { $p = bcdiv(100, $nums, 2); foreach ($banks as $bank) { $bankArr = $bank->toArray(); $bankArr['point'] = $p; $da[] = $bankArr; } $data['banks'] = $da; } return true; } /** * @param Request $request * * @return mixed * @throws \Prettus\Validator\Exceptions\ValidatorException */ public function handleDelete($id) { return $this->paperRepository->delete($id); } public function handleUpdateGrades($data) { $model = Paper::query()->where('id', $data['id'])->first(); if (!$model) abort(ResponseCodeEnum::SERVICE_OPERATION_ERROR, '找不到该记录'); $model->models()->sync($data['grades']); return true; } public function handleUpdateBanks($data) { $model = Paper::query()->where('id', $data['id'])->first(); if (!$model) abort(ResponseCodeEnum::SERVICE_OPERATION_ERROR, '找不到该记录'); self::defaultPoint($data); $model->banks = $data['banks']; $model->save(); return true; } }