RoleController.php 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Models;
  4. use Illuminate\Http\Request;
  5. use Illuminate\Support\Facades\Log;
  6. use Illuminate\Support\Facades\Validator;
  7. class RoleController extends Controller
  8. {
  9. /**
  10. * 创建一个新的角色
  11. *
  12. * @param Request $request
  13. * @return \Illuminate\Http\JsonResponse
  14. */
  15. public function CreateRole(Request $request)
  16. {
  17. $validator = Validator::make($request->all(), [
  18. "name" => "required|between:1,64",
  19. "description" => "max:255",
  20. ]);
  21. if ($validator->fails()) {
  22. return $this->fail(REQUEST_PARAM_ERROR, $this->error[REQUEST_PARAM_ERROR], $validator->errors());
  23. }
  24. $params = [];
  25. $params["name"] = $request->input("name");
  26. $params["description"] = $request->input("description");
  27. $role = new Models\Role();
  28. $result = $role->CreateRole($params);
  29. if ($result["code"] == 0) {
  30. return $this->success($result["data"]);
  31. }
  32. return $this->fail($result["code"], $this->error[$result["code"]]);;
  33. }
  34. /**
  35. * 修改某个角色的信息
  36. *
  37. * @param Request $request
  38. * @return \Illuminate\Http\JsonResponse
  39. */
  40. public function ModifyRole(Request $request)
  41. {
  42. $validator = Validator::make($request->all(), [
  43. "id" => "required|integer|min:1",
  44. "name" => "between:1,64",
  45. "description" => "max:255",
  46. ]);
  47. if ($validator->fails()) {
  48. return $this->fail(REQUEST_PARAM_ERROR, $this->error[REQUEST_PARAM_ERROR], $validator->errors());
  49. }
  50. $params = [];
  51. $params["id"] = $request->input("id");
  52. $params["name"] = $request->input("name");
  53. $params["description"] = $request->input("description");
  54. $role = new Models\Role();
  55. $result = $role->ModifyRole($params);
  56. $code = $result["code"];
  57. if ($code == 0) {
  58. return $this->success($result["data"]);
  59. }
  60. return $this->fail($code, $this->error[$code]);
  61. }
  62. /**
  63. * 删除某个角色
  64. *
  65. * @param Request $request
  66. * @return \Illuminate\Http\JsonResponse
  67. */
  68. public function DeleteRole(Request $request)
  69. {
  70. $validator = Validator::make($request->all(), [
  71. "id" => "required|integer|min:1",
  72. ]);
  73. if ($validator->fails()) {
  74. return $this->fail(REQUEST_PARAM_ERROR, $this->error[REQUEST_PARAM_ERROR], $validator->errors());
  75. }
  76. $params = [];
  77. $params["id"] = $request->input("id");
  78. $role = new Models\Role();
  79. $code = $role->DeleteRole($params);
  80. if ($code == 0) {
  81. return $this->success("success");
  82. }
  83. return $this->fail($code, $this->error[$code]);
  84. }
  85. /**
  86. * 列出所有的角色信息
  87. *
  88. * @param Request $request
  89. * @return \Illuminate\Http\JsonResponse|mixed
  90. */
  91. public function ListRole(Request $request)
  92. {
  93. $validator = Validator::make($request->all(), [
  94. "page" => "integer|min:1",
  95. "pageCount" => "integer|min:1"
  96. ]);
  97. if ($validator->fails()) {
  98. return $this->fail(REQUEST_PARAM_ERROR, $this->error[REQUEST_PARAM_ERROR], $validator->errors());
  99. }
  100. $params = [];
  101. $params["page"] = (int)$request->input("page");
  102. $params["pageCount"] = (int)$request->input("pageCount");
  103. $params["keyword"] = $request->input("keyword");
  104. $role = new Models\Role();
  105. $roleData = $role->ListRole($params);
  106. return $this->success($roleData);
  107. }
  108. /**
  109. * 加载当前用户的角色信息
  110. *
  111. * @param Request $request
  112. * @return \Illuminate\Http\JsonResponse
  113. */
  114. public function LoadRole(Request $request)
  115. {
  116. $uid = (int)$request->input("currentUid");
  117. if ($uid < 1) {
  118. $this->fail(INVALID_USER_ID, $this->error[INVALID_USER_ID]);
  119. }
  120. $role = new Models\UserRole();
  121. $data = $role->LoadRole($uid);
  122. if ($data["code"] == 0){
  123. return $this->success($data["data"]);
  124. }
  125. return $this->fail($data["code"], $this->error[$data["code"]]);
  126. }
  127. /**
  128. * 管理员加载用户的角色信息
  129. *
  130. * @param Request $request
  131. * @return \Illuminate\Http\JsonResponse
  132. */
  133. public function AdminLoadRole(Request $request)
  134. {
  135. $uid = (int)$request->input("userId");
  136. if ($uid < 1) {
  137. $this->fail(INVALID_USER_ID, $this->error[INVALID_USER_ID]);
  138. }
  139. $role = new Models\UserRole();
  140. $data = $role->LoadRole($uid);
  141. if ($data["code"] == 0){
  142. return $this->success($data["data"]);
  143. }
  144. return $this->fail($data["code"], $this->error[$data["code"]]);
  145. }
  146. /**
  147. * 列出角色下的用户
  148. *
  149. * @param Request $request
  150. * @return array|\Illuminate\Http\JsonResponse
  151. */
  152. public function LoadRoleUsers(Request $request)
  153. {
  154. $validator = Validator::make($request->all(), [
  155. "keyword" => "max: 255",
  156. "page" => "integer|min:1",
  157. "pageCount" => "integer|min:1",
  158. "ukeyword" => "max: 255",
  159. "upage" => "integer|min:1",
  160. "upageCount" => "integer|min:1"
  161. ]);
  162. if ($validator->fails()) {
  163. return $this->fail(REQUEST_PARAM_ERROR, $this->error[REQUEST_PARAM_ERROR], $validator->errors());
  164. }
  165. $keyword = $request->input("keyword");
  166. $page = (int)$request->input("page");
  167. $pageCount = (int)$request->input("pageCount");
  168. $ukeyword = $request->input("ukeyword");
  169. $upage = (int)$request->input("page");
  170. $upageCount = (int)$request->input("pageCount");
  171. $role = new Models\Role();
  172. $data = $role->LoadRoleUsers($keyword, $page, $pageCount, $ukeyword, $upage, $upageCount);
  173. return $this->success($data);
  174. }
  175. }