middleware('checkUserPermission'); $this->paperService = $paperService; } /** * 列表 * @param Request $request * * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource * @throws \Prettus\Repository\Exceptions\RepositoryException */ public function index(Request $request) { $papers = $this->paperService->handleList($request); return $this->response->success($papers); } /** * 新增 * @param Request $request * * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource * @throws \Prettus\Validator\Exceptions\ValidatorException */ public function store(Request $request) { $data = $this->validateData($request, [ 'name' => 'required|string', 'body' => 'required|string', 'banks' => 'nullable|sometimes', 'start_time' => 'date', 'end_time' => 'date', 'status' => 'required|integer', ], [ 'name' => '试卷名', 'body' => '试卷简介', 'banks' => '试卷内容', 'start_time' => '开始时间', 'end_time' => '结束时间', 'status' => '状态', ]); $data['admin_id'] = login_admin_id(); $paper = $this->paperService->handleStore($data); return $this->response->created($paper, '创建成功'); } /** * 详情 * @param Request $request * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource */ public function show(Request $request) { $this->validate($request, ['id' => 'required|integer']); $paper = $this->paperService->handleProfile($request->get('id')); return $this->response->success($paper); } /** * 更新 * @param Request $request * * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource * @throws \Prettus\Validator\Exceptions\ValidatorException */ public function update(Request $request) { $data = $this->validateData($request, [ 'id' => 'required|integer', 'name' => 'required|string', 'body' => 'required|string', 'banks' => 'nullable|sometimes', 'start_time' => 'date', 'end_time' => 'date', 'status' => 'required|integer', ], [ 'name' => '试卷名', 'body' => '试卷简介', 'banks' => '试卷内容', 'start_time' => '开始时间', 'end_time' => '结束时间', 'status' => '状态', ]); $paper = $this->paperService->handleUpdate($data); return $this->response->success($paper, '更新成功'); } /** * 删除 * @param Request $request */ public function destroy(Request $request) { $this->validate($request, ['id' => 'required|integer']); $re = $this->paperService->handleDelete($request->get('id')); if ($re) { return $this->response->ok('删除成功'); } return $this->response->fail('删除失败'); } /** * 关联班级 * @param Request $request * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource * @throws \Illuminate\Validation\ValidationException * @throws \Prettus\Validator\Exceptions\ValidatorException */ public function updateGrades(Request $request) { $data = $this->validateData($request, [ 'id' => 'required|integer', 'grades' => 'required|array', ], [ 'grades' => '班级 ids', ]); $paper = $this->paperService->handleUpdateGrades($data); return $this->response->success($paper, '更新成功'); } /** * 保存题库 * @param Request $request * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource * @throws \Illuminate\Validation\ValidationException * @throws \Prettus\Validator\Exceptions\ValidatorException */ public function updateBanks(Request $request) { $data = $this->validateData($request, [ 'id' => 'required|integer', 'banks' => 'required|array', ], [ 'banks' => '试卷内容', ]); $paper = $this->paperService->handleUpdateBanks($data); return $this->response->success($paper, '更新成功'); } }