repository = $repository; $this->validator = $validator; } public function index() { $lists = $this->repository->paginate(request('per_page', self::PAGE_NUM)); return Response::success($lists); } /** * 添加菜单 * @param Request $request * Author: Mead */ public function store(Request $request) { $this->validate($request, $this->validator->getRules(ValidatorInterface::RULE_CREATE)); if (Admin::query()->where('username', $request->get('account'))->exists()) { return Response::fail('账户已存在'); } if (Student::query()->where('account', $request->get('account'))->exists()) { return Response::fail('账户已存在'); } try { $data = $request->only(array_keys($this->validator->getRules(ValidatorInterface::RULE_CREATE))); $student = $this->repository->create($data); return Response::success($student); } catch (\Exception $e) { return $this->errorStore($e); } } public function update($id, Request $request) { $this->validate($request, $this->validator->getRules(ValidatorInterface::RULE_UPDATE)); try { $data = $request->only(array_keys($this->validator->getRules(ValidatorInterface::RULE_UPDATE))); $student = $this->repository->update($data, $id); return Response::success($student); } catch (\Exception $e) { $this->errorStore($e); } } public function show($id) { $courseCategory = $this->repository->find($id); return Response::success($courseCategory); } public function destroy($id) { try { $re = $this->repository->delete($id); if ($re) { return Response::success(null, T('successfully delete.')); } return Response::fail(T('Delete failed.'), ResponseCodeEnum::SERVICE_UPDATE_DATA_ERROR); } catch (\Exception $exception) { return Response::fail(T('Delete failed.'), ResponseCodeEnum::SERVICE_UPDATE_DATA_ERROR); } } public function delete(Request $request) { try { $this->validate($request, [ 'ids' => 'required|array', ]); $ids = $request->get('ids'); $this->repository->whereIn('id', $ids)->delete(); return Response::success(null, T('successfully delete.')); } catch (\Exception $exception) { return Response::fail(T('Delete failed.'), ResponseCodeEnum::SERVICE_UPDATE_DATA_ERROR); } } public function import(Request $request) { $this->validate($request, [ 'id' => 'required|integer', ]); $resource = Resource::query()->where('id', $request->get('id'))->first(); if (!$resource) { return $this->errorFail(); } // Excel::import(new StudentsImport(), Storage::disk($resource['disk'])->path($resource['path'])); $this->dispatch(new ImportStudentJob($resource['disk'], $resource['path'])); return Response::success(null, '正在导入,请稍后'); } /** * 导出 * Author: Mead */ public function export(Request $request) { $this->validate($request, [ 'ids' => 'required|array', 'fields' => 'sometimes|array', ]); $ids = $request->get('ids'); $name = time(); return (new StudentExport($request->get('fields', [0, 1, 2, 3, 4, 5, 6, 7])))->forIds($ids)->download($name . '.xlsx', null, [ 'Access-Control-Allow-Origin' => '*', 'Access-Control-Allow-Methods' => '*', 'Access-Control-Allow-Headers' => 'Content-Type, Authorization, X-Requested-With', 'Access-Control-Expose-Headers' => 'Content-Disposition', 'Content-type' => 'application/octet-stream', 'Content-Disposition' => 'attachment; filename=' . $name . '.xlsx', ]); } }