RoleService.php 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. <?php
  2. namespace app\admin\service\sys_manage;
  3. use app\model\SysRole;
  4. use support\Request;
  5. class RoleService
  6. {
  7. /**
  8. * @Desc 角色列表
  9. * @Author Gorden
  10. * @Date 2024/2/20 16:29
  11. *
  12. * @param $page
  13. * @param $limit
  14. * @param $keyword
  15. * @return \support\Response
  16. */
  17. public static function roleList(Request $request)
  18. {
  19. $page = intval($request->get('page', 1));
  20. $pageSize = intval($request->get('pageSize', 10));
  21. $keyword = format_string($request->get('keyword', ''));
  22. $roleStatus = $request->get('role_status', '');
  23. $rows = SysRole::select('*')
  24. ->when($keyword != '', function ($query) use ($keyword) {
  25. $query->where('role_name', 'like', '%' . $keyword . '%');
  26. })
  27. ->when($roleStatus != '', function ($query) use ($roleStatus) {
  28. $query->where('role_status', $roleStatus);
  29. })
  30. ->orderBy('role_addtimes', 'DESC')
  31. ->forPage($page, $pageSize)
  32. ->get()
  33. ->toArray();
  34. $total = SysRole::when($keyword != '', function ($query) use ($keyword) {
  35. $query->where('role_name', 'like', '%' . $keyword . '%');
  36. })->count();
  37. foreach ($rows as &$row) {
  38. if (!empty($row['role_permission']) && is_json($row['role_permission'])) {
  39. $row['role_permission'] = json_decode($row['role_permission']);
  40. }
  41. }
  42. return json_success('', compact('rows', 'page', 'pageSize', 'total'));
  43. }
  44. /**
  45. * @Desc 角色详情
  46. * @Author Gorden
  47. * @Date 2024/2/20 16:37
  48. *
  49. * @param $id
  50. * @return \support\Response
  51. */
  52. public static function roleInfo($id)
  53. {
  54. $role = SysRole::find($id);
  55. if (!$role) {
  56. return json_fail('角色不存在');
  57. }
  58. $role = $role->toArray();
  59. return json_success('', $role);
  60. }
  61. /**
  62. * @Desc 添加角色
  63. * @Author Gorden
  64. * @Date 2024/2/20 16:02
  65. *
  66. * @param $params
  67. * @return \support\Response
  68. */
  69. public static function insertRole($params)
  70. {
  71. try {
  72. $data = [
  73. 'role_status' => $params['role_status'],
  74. 'role_category' => $params['role_category'],
  75. 'role_name' => $params['role_name'],
  76. 'role_remark' => $params['role_remark'] ? format_string($params['role_remark']) : null,
  77. 'role_extend_json' => $params['role_extend_json'] ?? null,
  78. 'role_permission' => '[]',
  79. 'role_addtimes' => time()
  80. ];
  81. // 入库
  82. if (!SysRole::insert($data)) {
  83. throw new \Exception('角色添加失败');
  84. }
  85. } catch (\Exception $e) {
  86. return json_fail('角色添加失败');
  87. }
  88. return json_success('角色添加成功');
  89. }
  90. /**
  91. * @Desc 修改角色
  92. * @Author Gorden
  93. * @Date 2024/2/20 16:02
  94. *
  95. * @param $id
  96. * @param $params
  97. * @return \support\Response
  98. */
  99. public static function updateRole($id, $params)
  100. {
  101. $role = SysRole::find($id);
  102. if (!$role) {
  103. return json_fail('角色不存在');
  104. }
  105. try {
  106. $data = [
  107. 'role_status' => $params['role_status'],
  108. 'role_category' => $params['role_category'],
  109. 'role_name' => $params['role_name'],
  110. 'role_remark' => $params['role_remark'] ? format_string($params['role_remark']) : null,
  111. 'role_extend_json' => $params['role_extend_json'] ?? '{}',
  112. ];
  113. if (!SysRole::where('role_id', $id)->update($data)) {
  114. throw new \Exception('角色修改失败');
  115. }
  116. } catch (\Exception $e) {
  117. return json_fail($e->getMessage());
  118. }
  119. return json_success('角色修改成功');
  120. }
  121. public static function updatePermission($id, $params)
  122. {
  123. $role = SysRole::find($id);
  124. if (!$role) {
  125. return json_fail('角色不存在');
  126. }
  127. try {
  128. $data = [
  129. 'role_permission' => $params['role_permission'],
  130. ];
  131. if (!SysRole::where('role_id', $id)->update($data)) {
  132. throw new \Exception('角色修改失败');
  133. }
  134. } catch (\Exception $e) {
  135. return json_fail($e->getMessage());
  136. }
  137. return json_success('角色修改成功');
  138. }
  139. /**
  140. * @Desc 删除角色
  141. * @Author Gorden
  142. * @Date 2024/2/20 16:40
  143. *
  144. * @param $id
  145. * @return \support\Response
  146. */
  147. public static function delRole($params)
  148. {
  149. try {
  150. if (!SysRole::whereIn('role_id', $params)->delete()) {
  151. throw new \Exception('角色删除失败');
  152. }
  153. } catch (\Exception $e) {
  154. return json_fail('角色删除失败');
  155. }
  156. return json_success('角色删除成功');
  157. }
  158. /**
  159. * @Desc 修改角色状态
  160. * @Author Gorden
  161. * @Date 2024/2/20 16:50
  162. *
  163. * @param $id
  164. * @param $roleStatus
  165. * @return \support\Response
  166. */
  167. public static function updateStatus($id, $roleStatus)
  168. {
  169. try {
  170. if (!SysRole::where('role_id', $id)->update(['role_status' => $roleStatus])) {
  171. throw new \Exception('角色状态修改失败');
  172. }
  173. } catch (\Exception $e) {
  174. return json_fail('角色状态修改失败');
  175. }
  176. return json_success('角色状态修改成功');
  177. }
  178. /**
  179. * @Desc 检查角色是否存在
  180. * @Author Gorden
  181. * @Date 2024/2/21 13:36
  182. *
  183. * @param $roleId
  184. * @return bool
  185. */
  186. public static function checkRoleExist($roleId)
  187. {
  188. return SysRole::where('role_id', $roleId)->exists();
  189. }
  190. }