AuthorityService.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. <?php
  2. namespace App\JsonRpc;
  3. use App\Model\Role;
  4. use App\Model\Menu;
  5. use App\Model\RoleUser;
  6. use App\Model\Website;
  7. use App\Model\WebsiteRoleUser;
  8. use App\Tools\Result;
  9. use Hyperf\RpcServer\Annotation\RpcService;
  10. #[RpcService(name: "AuthorityService", protocol: "jsonrpc-http", server: "jsonrpc-http")]
  11. class AuthorityService implements AuthorityServiceInterface
  12. {
  13. /**
  14. * @param array $data
  15. * @return array
  16. */
  17. public function getMenuList(array $data): array
  18. {
  19. $where = [];
  20. if(isset($data['id']) && $data['id']){
  21. array_push($where,['pid','=',$data['id']]);
  22. }
  23. $result = Menu::where($where)->get();
  24. if (empty($result)) {
  25. return Result::error("没有菜单",0,[]);
  26. }
  27. return Result::success($result);
  28. }
  29. /**
  30. * @param array $data
  31. * @return array
  32. */
  33. public function getMenuInfo(array $data): array
  34. {
  35. $result = Menu::where(['id'=>$data['id']])->first();
  36. if (empty($result)) {
  37. return Result::error("没有菜单",0,[]);
  38. }
  39. return Result::success($result);
  40. }
  41. /**
  42. * @param array $data
  43. * @return array
  44. */
  45. public function updateMenu(array $data): array
  46. {
  47. $where = [
  48. 'id'=>$data['id']
  49. ];
  50. unset($data['id']);
  51. $result = Menu::where($where)->update($data);
  52. if($result){
  53. return Result::success($data);
  54. }else{
  55. return Result::error($data);
  56. }
  57. }
  58. /**
  59. * @param array $data
  60. * @return array
  61. */
  62. public function delMenu(array $data): array
  63. {
  64. $result = Menu::where(['id'=>$data['id']])->delete();
  65. if($result){
  66. return Result::success($data);
  67. }else{
  68. return Result::error($data);
  69. }
  70. }
  71. /**
  72. * @param array $data
  73. * @return array
  74. */
  75. public function addMenu(array $data): array
  76. {
  77. $result = Menu::insertGetId($data);
  78. if($result){
  79. return Result::success($data);
  80. }else{
  81. return Result::error($data);
  82. }
  83. }
  84. /**
  85. * @param array $data
  86. * @return array
  87. */
  88. public function getRecursionMenu(array $data): array
  89. {
  90. //根据角色查询权限信息
  91. $roleWhere = [
  92. 'role_user.user_id'=>$data['user_id']
  93. ];
  94. $roleInfo = RoleUser::where($roleWhere)
  95. ->leftJoin('role', 'role.id', '=', 'role_user.role_id')
  96. ->first();
  97. if(empty($roleInfo)){
  98. return Result::error("没有权限",0);
  99. }
  100. $roleArr = json_decode($roleInfo['rule']);
  101. $result = Menu::whereIn('id',$roleArr)->get();
  102. if (empty($result)) {
  103. return Result::error("没有菜单",0,[]);
  104. }
  105. return Result::success($result);
  106. }
  107. /**
  108. * 获取所有的权限
  109. * @param array $data
  110. * @return array
  111. */
  112. public function getAllMenuList(array $data): array
  113. {
  114. $result = Menu::get();
  115. if($result){
  116. return Result::success($result);
  117. }else{
  118. return Result::error("没有权限",0,[]);
  119. }
  120. }
  121. }