model = new SysDept(); $this->validate = true; $this->validateClass = new DeptValidate(); } /** * @Desc 营业场所列表 * @Author Gorden * @Date 2024/3/7 13:17 * * @param Request $request * @return Response * @throws BusinessException */ public function select(Request $request): Response { [$where, $format, $limit, $field, $order] = $this->selectInput($request); $order = $request->get('order', 'desc'); $field = $request->get('field', 'dept_addtimes'); $where['dept_super_id'] = 0; $where['dept_category'] = '营业场所'; $query = $this->doSelect($where, $field, $order); return $this->doFormat($query, $format, $limit); } public function afterInfoQuery($item) { if (!empty($item->dept_city)) { $item->dept_city = explode(',', $item->dept_city); } return $item; } /** * @Desc 添加营业场所 * @Author Gorden * @Date 2024/3/7 11:48 * * @param Request $request * @return Response */ public function insert(Request $request): Response { if ($this->validate && !$this->validateClass->scene('add_premises')->check($request->post())) { return json_fail($this->validateClass->getError()); } // 验证编号是否存在 if (SysDept::checkExist('营业场所', 'dept_code', $request->post('dept_code'))) { return json_fail('编号重复,请重新输入'); } Db::beginTransaction(); try { $data = $this->insertInput($request); $data['dept_super_id'] = 0; $deptId = $this->doInsert($data); if (!$deptId) { throw new BusinessException('创建营业场所失败'); } // 更新部门path $path = '/0/' . $deptId . '/'; if (!SysDept::where('dept_id', $deptId)->update(['dept_super_path' => $path])) { throw new BusinessException('创建营业场所失败'); } Db::commit(); } catch (BusinessException $customException) { Db::rollBack(); return json_fail($customException->getMessage()); } catch (\Exception $exception) { Db::rollBack(); return json_fail('创建营业场所失败'); } return json_success('success'); } /** * @Desc 更新 * @Author Gorden * @Date 2024/3/7 13:14 * * @param Request $request * @return Response */ public function update(Request $request): Response { if ($this->validate && !$this->validateClass->scene('update_premises')->check($request->post())) { return json_fail($this->validateClass->getError()); } try { [$id, $data] = $this->updateInput($request); $this->doUpdate($id, $data); } catch (BusinessException $customException) { return json_fail($customException->getMessage()); } catch (\Exception $e) { return json_fail('数据更新失败'); } return json_success('success'); } }