dicGroupModel = new dicGroupModel; $this->dicModel = new dicModel; } /** * @title: 统一创建查询条件 * @desc: * @param {*} * @return {*} * @Author: Rock * @Date: 2021-12-04 10:58:55 * @LastEditTime: Do not edit */ private function createWhere() { $data = $this->request->param(); $where = []; if (!empty($data['pid'])) { $where[] = ['pid', '=', $data['pid']]; } if (!empty($data['type'])) { if ($data['type'] == 'GOODTYPE') { $where[] = ['pid', '=', 1]; } elseif ($data['type'] == 'INDUSTRY') { $where[] = ['pid', '=', 12]; } } if (!empty($data['keyword'])) { $keyword = $data['keyword']; $where[] = ['group_name|group_code', 'LIKE', "%$keyword%"]; } return $where; } /** * @title: 获取字典分组列表 * @desc: * @param {int} {pageNo} {0} {页码,为0时不分页} * @param {int} {pageSize} {10} {每页数量} * @return {*} * @Author: Rock * @Date: 2021-12-04 10:16:04 * @LastEditTime: Do not edit */ public function getList($pageNo = 0, $pageSize = 1) { $where = $this->createWhere(); if ($pageNo) { $res = $this->dicGroupModel->where($where)->paginate(['page' => $pageNo, 'list_rows' => $pageSize]); $list = $res->items(); $total = $res->total(); $list = array2Tree($list,'pid','group_id'); return pageRes(1, "获取成功", $total, $list); } else { $list = $this->dicGroupModel->where($where)->select()->toArray(); $list = array2Tree($list,'pid','group_id'); return res(1, "获取成功", $list); } } /** * @title: 新增/编辑字典分组 * @desc: * @param {*} * @return {*} * @Author: Rock * @Date: 2021-12-04 10:52:22 * @LastEditTime: Do not edit */ public function doEdit() { $data = $this->request->param(); try { dicGroupModel::startTrans(); if (!empty($data['group_id'])) { $info = $this->dicGroupModel->where('group_id', $data['group_id'])->find(); $old_code = $info->group_code; $this->dicModel->where('group_code', $old_code)->update(['group_code' => $data['group_code']]); } $this->dicGroupModel->replace()->save($data); dicGroupModel::commit(); slog(1, "编辑了字典分组" . $data['group_name']); return res(1, "保存成功"); } catch (\Exception $e) { dicGroupModel::rollback(); slog(2, "编辑了字典分组" . $data['group_name']); return res(2, "保存失败"); } } /** * @title: 删除分组 * @desc: 会同时删除分组下的字典,注意提示 * @param {int} {group_id} {必填} {分组ID} * @return {*} * @Author: Rock * @Date: 2021-12-04 10:52:53 * @LastEditTime: Do not edit */ public function doDelete($group_id) { $where = []; $where[] = ['group_id', '=', $group_id]; $info = $this->dicGroupModel->where($where)->find(); try { dicGroupModel::startTrans(); dicGroupModel::where($where)->delete(); dicModel::where('group_code', $info->group_code)->delete(); dicGroupModel::commit(); slog(1, "删除了字典分组" . $info->group_name); return res(1, "删除成功"); } catch (\Exception $e) { dicGroupModel::rollback(); slog(2, "删除了字典分组" . $info->group_name); return res(2, "删除失败" . $e->getMessage()); } } /** * @title: 改变状态 * @desc: 描述 * @param {int} $id {} {} * @return {*} * @author: wangjunchong * @method: Post * @Date: 2023-03-11 09:37:43 */ public function changeStatus(int $group_id = 0) { $info = $this->dicGroupModel->find($group_id); if ($info->status == 1) { $info->status = 2; } elseif ($info->status == 2) { $info->status = 1; } $info->save(); return res(1, "操作成功"); } }