SystemDeptController.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | saiadmin [ saiadmin快速开发框架 ]
  4. // +----------------------------------------------------------------------
  5. // | Author: sai <1430792918@qq.com>
  6. // +----------------------------------------------------------------------
  7. namespace plugin\saiadmin\app\controller\system;
  8. use plugin\saiadmin\app\cache\UserInfoCache;
  9. use plugin\saiadmin\app\model\system\SystemUser;
  10. use plugin\saiadmin\app\validate\system\SystemDeptValidate;
  11. use plugin\saiadmin\basic\BaseController;
  12. use plugin\saiadmin\app\logic\system\SystemDeptLogic;
  13. use support\Request;
  14. use support\Response;
  15. /**
  16. * 部门控制器
  17. */
  18. class SystemDeptController extends BaseController
  19. {
  20. /**
  21. * 构造
  22. */
  23. public function __construct()
  24. {
  25. $this->logic = new SystemDeptLogic();
  26. $this->validate = new SystemDeptValidate;
  27. parent::__construct();
  28. }
  29. /**
  30. * 数据列表
  31. * @param Request $request
  32. * @return Response
  33. */
  34. public function index(Request $request) : Response
  35. {
  36. $where = $request->more([
  37. ['name', ''],
  38. ['leader', ''],
  39. ['phone', ''],
  40. ['status', ''],
  41. ]);
  42. $data = $this->logic->tree($where);
  43. return $this->success($data);
  44. }
  45. /**
  46. * 数据改变后执行
  47. * @param $type
  48. * @param $args
  49. * @return void
  50. */
  51. protected function afterChange($type, $args): void
  52. {
  53. // 批量清理用户缓存
  54. if ($type == 'update') {
  55. $dept_id = request()->input('id', '');
  56. $userIds = SystemUser::where('dept_id', $dept_id)->column('id');
  57. foreach ($userIds as $userId) {
  58. $userInfoCache = new UserInfoCache($userId);
  59. $userInfoCache->clearUserInfo();
  60. }
  61. }
  62. if ($type == 'destroy') {
  63. $dept_ids = request()->input('ids', '');
  64. if (is_array($dept_ids)) {
  65. $userIds = SystemUser::whereIn('dept_id', $dept_ids)->column('id');
  66. foreach ($userIds as $userId) {
  67. $userInfoCache = new UserInfoCache($userId);
  68. $userInfoCache->clearUserInfo();
  69. }
  70. }
  71. }
  72. }
  73. /**
  74. * 可操作部门
  75. * @param Request $request
  76. * @return Response
  77. */
  78. public function accessDept(Request $request) : Response
  79. {
  80. $where = [];
  81. $data = $this->logic->accessDept($where);
  82. return $this->success($data);
  83. }
  84. /**
  85. * 组长列表
  86. * @param Request $request
  87. * @return Response
  88. */
  89. public function leaders(Request $request) : Response
  90. {
  91. $where = $request->more([
  92. ['dept_id', ''],
  93. ['username', ''],
  94. ['nickname', ''],
  95. ['status', ''],
  96. ]);
  97. $data = $this->logic->leaders($where);
  98. return $this->success($data);
  99. }
  100. /**
  101. * 添加组长
  102. * @param Request $request
  103. * @return Response
  104. */
  105. public function addLeader(Request $request) : Response
  106. {
  107. $id = $request->post('id');
  108. $users = $request->post('users');
  109. if (empty($users)) {
  110. return $this->fail('请选择人员');
  111. }
  112. $this->logic->addLeader($id, $users);
  113. return $this->success('操作成功');
  114. }
  115. /**
  116. * 删除组长
  117. * @param Request $request
  118. * @return Response
  119. */
  120. public function delLeader(Request $request) : Response
  121. {
  122. $id = $request->post('id');
  123. $ids = $request->post('ids');
  124. if (!empty($id)) {
  125. $this->logic->delLeader($id, $ids);
  126. return $this->success('操作成功');
  127. } else {
  128. return $this->fail('参数错误,请检查');
  129. }
  130. }
  131. }