middleware('checkUserPermission'); $this->dictDetailService = $dictDetailService; } /** * 列表 * @description 类型列表 * @param Request $request * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource * @throws \Prettus\Repository\Exceptions\RepositoryException */ public function index(Request $request) { $dictDetails = $this->dictDetailService->handleList($request); return $this->response->success($dictDetails); } /** * 创建 * @description 类型创建 * @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, [ 'dict_id' => 'required|integer', 'name' => 'required', 'value' => [ 'required', 'integer', function ($attribute, $value, $fail) use ($request) { if (DictDetail::checkValueIsUnique($request->get('dict_id'), $value)) { $fail('键值 已存在'); } }, ], 'remark' => 'nullables', 'sort' => 'required|integer', 'status' => 'required|integer', ], [ 'name' => '字典标签', 'value' => '字典值', 'remark' => '备注', ]); $dictDetail = $this->dictDetailService->handleStore($data); return $this->response->created($dictDetail, '创建成功'); } /** * 详情 * @description 类型详情 * @param int $id * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource */ public function show(Request $request) { $this->validate($request, ['id' => 'required|integer']); $dictDetail = $this->dictDetailService->handleProfile($request->get('id')); return $this->response->success($dictDetail); } /** * 修改 * @description 类型修改 * @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', 'value' => [ 'required', 'integer', function ($attribute, $value, $fail) use ($request) { if (DictDetail::checkValueIsUnique($request->get('dict_id'), $value)) { $fail('键值 已存在'); } }, ], 'remark' => 'nullables', 'sort' => 'required|integer', 'status' => 'required|integer', ], [ 'name' => '字典标签', 'value' => '字典值', 'remark' => '备注', ]); $dictDetail = $this->dictDetailService->handleUpdate($data); return $this->response->success($dictDetail, '更新成功'); } /** * 删除 * @description 类型删除 * @param int $id */ public function destroy(Request $request) { $this->validate($request, ['id' => 'required|integer']); $re = $this->dictDetailService->handleDelete($request->get('id')); if ($re) { return $this->response->ok('删除成功'); } return $this->response->fail('删除失败'); } }