123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- <?php
- namespace app\admin\controller\base\dic;
- /**
- * @title : 字典分组控制器
- * @desc :
- * @Author : Rock
- * @Date : 2021-12-04 10:12:21
- * @LastEditTime: 2023-03-11 11:40:38
- */
- use app\admin\controller\Base;
- use app\common\model\base\dic\DicGroup as dicGroupModel;
- use app\common\model\base\dic\Dic as dicModel;
- class DicGroup extends Base
- {
- protected $dicGroupModel;
- protected $dicModel;
- protected $noNeedAuth = ['getList'];
- public function initialize()
- {
- parent::initialize();
- $this->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, "操作成功");
- }
- }
|