middleware('checkUserPermission'); $this->areaService = $areaService; } /** * 列表 * @param Request $request * * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource * @throws \Prettus\Repository\Exceptions\RepositoryException */ public function index(Request $request) { $areas = $this->areaService->handleList($request); return $this->response->success($areas); } /** * 新增 * @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|max:200', 'sort' => 'required|integer', 'status' => 'required|integer', ], []); $area = $this->areaService->handleStore($data); return $this->response->created($area, '创建成功'); } /** * 详情 * @param Request $request * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource */ public function show(Request $request) { $this->validate($request, ['id' => 'required|integer']); $area = $this->areaService->handleProfile($request->get('id')); return $this->response->success($area); } /** * 更新 * @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|max:200', 'sort' => 'required|integer', 'status' => 'required|integer', ], []); $area = $this->areaService->handleUpdate($data); return $this->response->success($area, '更新成功'); } /** * 删除 * @param Request $request */ public function destroy(Request $request) { $this->validate($request, ['id' => 'required|integer']); $re = $this->areaService->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 */ public function selectOptions(Request $request) { $data = $this->validateData($request, [ 'code' => 'nullable', 'pid' => 'nullable', 'name' => 'nullable', ], [ 'pid' => '父 id', 'name' => '名称', ]); $model = Area::query(); if (isset($data['code']) && $data['code']) { $pid = Area::query()->where('code', $data['code'])->value('id') ?? 0; $model = $model->where('parent_id', $pid); } if (isset($data['pid']) && $data['pid']) { $model = $model->where('parent_id', $data['pid']); } if (isset($data['name']) && $data['name']) { $name = $data['name']; $model = $model->where('name', 'like', "%{$name}%"); } $da = $model->select(['name', 'code', 'id'])->get(); return $this->response->success($da); } }