SystemRoleController.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  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\model\system\SystemUserRole;
  9. use plugin\saiadmin\basic\BaseController;
  10. use plugin\saiadmin\app\cache\UserInfoCache;
  11. use plugin\saiadmin\app\model\system\SystemUser;
  12. use plugin\saiadmin\app\validate\system\SystemRoleValidate;
  13. use plugin\saiadmin\app\logic\system\SystemRoleLogic;
  14. use plugin\saiadmin\service\Permission;
  15. use support\Request;
  16. use support\Response;
  17. /**
  18. * 角色控制器
  19. */
  20. class SystemRoleController extends BaseController
  21. {
  22. /**
  23. * 构造
  24. */
  25. public function __construct()
  26. {
  27. $this->logic = new SystemRoleLogic();
  28. $this->validate = new SystemRoleValidate;
  29. parent::__construct();
  30. }
  31. /**
  32. * 数据列表
  33. * @param Request $request
  34. * @return Response
  35. */
  36. #[Permission('角色数据列表', 'core:role:index')]
  37. public function index(Request $request): Response
  38. {
  39. $where = $request->more([
  40. ['name', ''],
  41. ['code', ''],
  42. ['status', ''],
  43. ]);
  44. $query = $this->logic->search($where);
  45. $levelArr = array_column($this->adminInfo['roleList'], 'level');
  46. $maxLevel = max($levelArr);
  47. $query->where('level', '<', $maxLevel);
  48. $data = $this->logic->getList($query);
  49. return $this->success($data);
  50. }
  51. /**
  52. * 读取数据
  53. * @param Request $request
  54. * @return Response
  55. */
  56. #[Permission('角色数据读取', 'core:role:read')]
  57. public function read(Request $request): Response
  58. {
  59. $id = $request->input('id', '');
  60. $model = $this->logic->read($id);
  61. if ($model) {
  62. $data = is_array($model) ? $model : $model->toArray();
  63. return $this->success($data);
  64. } else {
  65. return $this->fail('未查找到信息');
  66. }
  67. }
  68. /**
  69. * 保存数据
  70. * @param Request $request
  71. * @return Response
  72. */
  73. #[Permission('角色数据添加', 'core:role:save')]
  74. public function save(Request $request): Response
  75. {
  76. $data = $request->post();
  77. $this->validate('save', $data);
  78. $result = $this->logic->add($data);
  79. if ($result) {
  80. return $this->success('添加成功');
  81. } else {
  82. return $this->fail('添加失败');
  83. }
  84. }
  85. /**
  86. * 更新数据
  87. * @param Request $request
  88. * @return Response
  89. */
  90. #[Permission('角色数据修改', 'core:role:update')]
  91. public function update(Request $request): Response
  92. {
  93. $data = $request->post();
  94. $this->validate('update', $data);
  95. $result = $this->logic->edit($data['id'], $data);
  96. if ($result) {
  97. return $this->success('修改成功');
  98. } else {
  99. return $this->fail('修改失败');
  100. }
  101. }
  102. /**
  103. * 删除数据
  104. * @param Request $request
  105. * @return Response
  106. */
  107. #[Permission('角色数据删除', 'core:role:destroy')]
  108. public function destroy(Request $request): Response
  109. {
  110. $ids = $request->post('ids', '');
  111. if (empty($ids)) {
  112. return $this->fail('请选择要删除的数据');
  113. }
  114. $result = $this->logic->destroy($ids);
  115. if ($result) {
  116. return $this->success('删除成功');
  117. } else {
  118. return $this->fail('删除失败');
  119. }
  120. }
  121. /**
  122. * 根据角色获取菜单
  123. * @param Request $request
  124. * @return Response
  125. */
  126. #[Permission('角色数据列表', 'core:role:index')]
  127. public function getMenuByRole(Request $request): Response
  128. {
  129. $id = $request->get('id');
  130. $data = $this->logic->getMenuByRole($id);
  131. return $this->success($data);
  132. }
  133. /**
  134. * 菜单权限
  135. * @param Request $request
  136. * @return Response
  137. */
  138. #[Permission('角色菜单权限', 'core:role:menu')]
  139. public function menuPermission(Request $request): Response
  140. {
  141. $id = $request->post('id');
  142. $menu_ids = $request->post('menu_ids');
  143. $this->logic->saveMenuPermission($id, $menu_ids);
  144. return $this->success('操作成功');
  145. }
  146. /**
  147. * 可操作角色
  148. * @param Request $request
  149. * @return Response
  150. */
  151. public function accessRole(Request $request): Response
  152. {
  153. $where = ['status' => 1];
  154. $data = $this->logic->accessRole($where);
  155. return $this->success($data);
  156. }
  157. }