DicGroup.php 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. <?php
  2. namespace app\admin\controller\base\dic;
  3. /**
  4. * @title : 字典分组控制器
  5. * @desc :
  6. * @Author : Rock
  7. * @Date : 2021-12-04 10:12:21
  8. * @LastEditTime: 2023-03-11 11:40:38
  9. */
  10. use app\admin\controller\Base;
  11. use app\common\model\base\dic\DicGroup as dicGroupModel;
  12. use app\common\model\base\dic\Dic as dicModel;
  13. class DicGroup extends Base
  14. {
  15. protected $dicGroupModel;
  16. protected $dicModel;
  17. protected $noNeedAuth = ['getList'];
  18. public function initialize()
  19. {
  20. parent::initialize();
  21. $this->dicGroupModel = new dicGroupModel;
  22. $this->dicModel = new dicModel;
  23. }
  24. /**
  25. * @title: 统一创建查询条件
  26. * @desc:
  27. * @param {*}
  28. * @return {*}
  29. * @Author: Rock
  30. * @Date: 2021-12-04 10:58:55
  31. * @LastEditTime: Do not edit
  32. */
  33. private function createWhere()
  34. {
  35. $data = $this->request->param();
  36. $where = [];
  37. if (!empty($data['pid'])) {
  38. $where[] = ['pid', '=', $data['pid']];
  39. }
  40. if (!empty($data['type'])) {
  41. if ($data['type'] == 'GOODTYPE') {
  42. $where[] = ['pid', '=', 1];
  43. } elseif ($data['type'] == 'INDUSTRY') {
  44. $where[] = ['pid', '=', 12];
  45. }
  46. }
  47. if (!empty($data['keyword'])) {
  48. $keyword = $data['keyword'];
  49. $where[] = ['group_name|group_code', 'LIKE', "%$keyword%"];
  50. }
  51. return $where;
  52. }
  53. /**
  54. * @title: 获取字典分组列表
  55. * @desc:
  56. * @param {int} {pageNo} {0} {页码,为0时不分页}
  57. * @param {int} {pageSize} {10} {每页数量}
  58. * @return {*}
  59. * @Author: Rock
  60. * @Date: 2021-12-04 10:16:04
  61. * @LastEditTime: Do not edit
  62. */
  63. public function getList($pageNo = 0, $pageSize = 1)
  64. {
  65. $where = $this->createWhere();
  66. if ($pageNo) {
  67. $res = $this->dicGroupModel->where($where)->paginate(['page' => $pageNo, 'list_rows' => $pageSize]);
  68. $list = $res->items();
  69. $total = $res->total();
  70. $list = array2Tree($list,'pid','group_id');
  71. return pageRes(1, "获取成功", $total, $list);
  72. } else {
  73. $list = $this->dicGroupModel->where($where)->select()->toArray();
  74. $list = array2Tree($list,'pid','group_id');
  75. return res(1, "获取成功", $list);
  76. }
  77. }
  78. /**
  79. * @title: 新增/编辑字典分组
  80. * @desc:
  81. * @param {*}
  82. * @return {*}
  83. * @Author: Rock
  84. * @Date: 2021-12-04 10:52:22
  85. * @LastEditTime: Do not edit
  86. */
  87. public function doEdit()
  88. {
  89. $data = $this->request->param();
  90. try {
  91. dicGroupModel::startTrans();
  92. if (!empty($data['group_id'])) {
  93. $info = $this->dicGroupModel->where('group_id', $data['group_id'])->find();
  94. $old_code = $info->group_code;
  95. $this->dicModel->where('group_code', $old_code)->update(['group_code' => $data['group_code']]);
  96. }
  97. $this->dicGroupModel->replace()->save($data);
  98. dicGroupModel::commit();
  99. slog(1, "编辑了字典分组" . $data['group_name']);
  100. return res(1, "保存成功");
  101. } catch (\Exception $e) {
  102. dicGroupModel::rollback();
  103. slog(2, "编辑了字典分组" . $data['group_name']);
  104. return res(2, "保存失败");
  105. }
  106. }
  107. /**
  108. * @title: 删除分组
  109. * @desc: 会同时删除分组下的字典,注意提示
  110. * @param {int} {group_id} {必填} {分组ID}
  111. * @return {*}
  112. * @Author: Rock
  113. * @Date: 2021-12-04 10:52:53
  114. * @LastEditTime: Do not edit
  115. */
  116. public function doDelete($group_id)
  117. {
  118. $where = [];
  119. $where[] = ['group_id', '=', $group_id];
  120. $info = $this->dicGroupModel->where($where)->find();
  121. try {
  122. dicGroupModel::startTrans();
  123. dicGroupModel::where($where)->delete();
  124. dicModel::where('group_code', $info->group_code)->delete();
  125. dicGroupModel::commit();
  126. slog(1, "删除了字典分组" . $info->group_name);
  127. return res(1, "删除成功");
  128. } catch (\Exception $e) {
  129. dicGroupModel::rollback();
  130. slog(2, "删除了字典分组" . $info->group_name);
  131. return res(2, "删除失败" . $e->getMessage());
  132. }
  133. }
  134. /**
  135. * @title: 改变状态
  136. * @desc: 描述
  137. * @param {int} $id {} {}
  138. * @return {*}
  139. * @author: wangjunchong
  140. * @method: Post
  141. * @Date: 2023-03-11 09:37:43
  142. */
  143. public function changeStatus(int $group_id = 0)
  144. {
  145. $info = $this->dicGroupModel->find($group_id);
  146. if ($info->status == 1) {
  147. $info->status = 2;
  148. } elseif ($info->status == 2) {
  149. $info->status = 1;
  150. }
  151. $info->save();
  152. return res(1, "操作成功");
  153. }
  154. }