RoleService.php 5.6 KB

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