RoleService.php 4.8 KB

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