SystemUserController.php 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  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\UserAuthCache;
  9. use plugin\saiadmin\app\cache\UserMenuCache;
  10. use plugin\saiadmin\basic\BaseController;
  11. use plugin\saiadmin\app\cache\UserInfoCache;
  12. use plugin\saiadmin\app\logic\system\SystemUserLogic;
  13. use plugin\saiadmin\app\validate\system\SystemUserValidate;
  14. use plugin\saiadmin\service\Permission;
  15. use support\Request;
  16. use support\Response;
  17. /**
  18. * 用户信息控制器
  19. */
  20. class SystemUserController extends BaseController
  21. {
  22. /**
  23. * 构造
  24. */
  25. public function __construct()
  26. {
  27. $this->logic = new SystemUserLogic();
  28. $this->validate = new SystemUserValidate;
  29. parent::__construct();
  30. }
  31. /**
  32. * 数据列表
  33. * @param Request $request
  34. * @return Response
  35. */
  36. #[Permission('用户数据列表', 'core:user:index')]
  37. public function index(Request $request): Response
  38. {
  39. $where = $request->more([
  40. ['username', ''],
  41. ['phone', ''],
  42. ['email', ''],
  43. ['status', ''],
  44. ['dept_id', ''],
  45. ['create_time', ''],
  46. ]);
  47. $data = $this->logic->indexList($where);
  48. return $this->success($data);
  49. }
  50. /**
  51. * 读取数据
  52. * @param Request $request
  53. * @return Response
  54. */
  55. #[Permission('用户数据读取', 'core:user:read')]
  56. public function read(Request $request): Response
  57. {
  58. $id = $request->input('id', '');
  59. $model = $this->logic->read($id);
  60. if ($model) {
  61. $data = is_array($model) ? $model : $model->toArray();
  62. return $this->success($data);
  63. } else {
  64. return $this->fail('未查找到信息');
  65. }
  66. }
  67. /**
  68. * 保存数据
  69. * @param Request $request
  70. * @return Response
  71. */
  72. #[Permission('用户数据保存', 'core:user:save')]
  73. public function save(Request $request): Response
  74. {
  75. $data = $request->post();
  76. $this->validate('save', $data);
  77. $result = $this->logic->add($data);
  78. if ($result) {
  79. return $this->success('添加成功');
  80. } else {
  81. return $this->fail('添加失败');
  82. }
  83. }
  84. /**
  85. * 更新数据
  86. * @param Request $request
  87. * @return Response
  88. */
  89. #[Permission('用户数据更新', 'core:user:update')]
  90. public function update(Request $request): Response
  91. {
  92. $data = $request->post();
  93. $this->validate('update', $data);
  94. $result = $this->logic->edit($data['id'], $data);
  95. if ($result) {
  96. return $this->success('修改成功');
  97. } else {
  98. return $this->fail('修改失败');
  99. }
  100. }
  101. /**
  102. * 删除数据
  103. * @param Request $request
  104. * @return Response
  105. */
  106. #[Permission('用户数据删除', 'core:user:destroy')]
  107. public function destroy(Request $request): Response
  108. {
  109. $ids = $request->input('ids', '');
  110. if (!empty($ids)) {
  111. $this->logic->destroy($ids);
  112. return $this->success('操作成功');
  113. } else {
  114. return $this->fail('参数错误,请检查');
  115. }
  116. }
  117. /**
  118. * 清理用户缓存
  119. * @param Request $request
  120. * @return Response
  121. */
  122. #[Permission('清理用户缓存', 'core:user:cache')]
  123. public function clearCache(Request $request): Response
  124. {
  125. $id = $request->post('id', '');
  126. UserInfoCache::clearUserInfo($id);
  127. UserAuthCache::clearUserAuth($id);
  128. UserMenuCache::clearUserMenu($id);
  129. return $this->success('操作成功');
  130. }
  131. /**
  132. * 修改用户密码
  133. * @param Request $request
  134. * @return Response
  135. */
  136. #[Permission('修改用户密码', 'core:user:password')]
  137. public function initUserPassword(Request $request): Response
  138. {
  139. $id = $request->post('id', '');
  140. $password = $request->post('password', '');
  141. if ($id == 1) {
  142. return $this->fail('超级管理员不允许重置密码');
  143. }
  144. $data = ['password' => password_hash($password, PASSWORD_DEFAULT)];
  145. $this->logic->authEdit($id, $data);
  146. UserInfoCache::clearUserInfo($id);
  147. return $this->success('操作成功');
  148. }
  149. /**
  150. * 设置用户首页
  151. * @param Request $request
  152. * @return Response
  153. */
  154. #[Permission('设置用户首页', 'core:user:home')]
  155. public function setHomePage(Request $request): Response
  156. {
  157. $id = $request->post('id', '');
  158. $dashboard = $request->post('dashboard', '');
  159. $data = ['dashboard' => $dashboard];
  160. $this->logic->authEdit($id, $data);
  161. UserInfoCache::clearUserInfo($id);
  162. return $this->success('操作成功');
  163. }
  164. /**
  165. * 更新资料
  166. * @param Request $request
  167. * @return Response
  168. */
  169. #[Permission('用户修改资料')]
  170. public function updateInfo(Request $request): Response
  171. {
  172. $data = $request->post();
  173. unset($data['deptList']);
  174. unset($data['postList']);
  175. unset($data['roleList']);
  176. $result = $this->logic->updateInfo($this->adminId, $data);
  177. if ($result) {
  178. UserInfoCache::clearUserInfo($this->adminId);
  179. return $this->success('操作成功');
  180. } else {
  181. return $this->fail('操作失败');
  182. }
  183. }
  184. /**
  185. * 修改密码
  186. * @param Request $request
  187. * @return Response
  188. */
  189. #[Permission('用户修改密码')]
  190. public function modifyPassword(Request $request): Response
  191. {
  192. $oldPassword = $request->input('oldPassword');
  193. $newPassword = $request->input('newPassword');
  194. $this->logic->modifyPassword($this->adminId, $oldPassword, $newPassword);
  195. UserInfoCache::clearUserInfo($this->adminId);
  196. return $this->success('修改成功');
  197. }
  198. }