RoleController.php 4.8 KB

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