AuthorityService.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  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. $result = Menu::get();
  20. if (empty($result)) {
  21. return Result::error("没有菜单",0,[]);
  22. }
  23. return Result::success($result);
  24. }
  25. /**
  26. * @param array $data
  27. * @return array
  28. */
  29. public function getMenuInfo(array $data): array
  30. {
  31. $result = Menu::where(['id'=>$data['id']])->first();
  32. if (empty($result)) {
  33. return Result::error("没有菜单",0,[]);
  34. }
  35. return Result::success($result);
  36. }
  37. /**
  38. * @param array $data
  39. * @return array
  40. */
  41. public function updateMenu(array $data): array
  42. {
  43. $where = [
  44. 'id'=>$data['id']
  45. ];
  46. unset($data['id']);
  47. $result = Menu::where($where)->update($data);
  48. if($result){
  49. return Result::success($data);
  50. }else{
  51. return Result::error($data);
  52. }
  53. }
  54. /**
  55. * @param array $data
  56. * @return array
  57. */
  58. public function delMenu(array $data): array
  59. {
  60. $result = Menu::where(['id'=>$data['id']])->delete();
  61. if($result){
  62. return Result::success($data);
  63. }else{
  64. return Result::error($data);
  65. }
  66. }
  67. /**
  68. * @param array $data
  69. * @return array
  70. */
  71. public function addMenu(array $data): array
  72. {
  73. $result = Menu::insertGetId($data);
  74. if($result){
  75. return Result::success($data);
  76. }else{
  77. return Result::error($data);
  78. }
  79. }
  80. /**
  81. * @param array $data
  82. * @return array
  83. */
  84. public function getRecursionMenu(array $data): array
  85. {
  86. //根据角色查询权限信息
  87. $roleWhere = [
  88. 'role_user.user_id'=>$data['user_id']
  89. ];
  90. $roleInfo = RoleUser::where($roleWhere)
  91. ->leftJoin('role', 'role.id', '=', 'role_user.role_id')
  92. ->first();
  93. if(empty($roleInfo)){
  94. return Result::error("没有权限",0);
  95. }
  96. $roleArr = json_decode($roleInfo['rule']);
  97. $result = Menu::whereIn('id',$roleArr)->get();
  98. if (empty($result)) {
  99. return Result::error("没有菜单",0,[]);
  100. }
  101. return Result::success($result);
  102. }
  103. /**
  104. * 获取所有的权限
  105. * @param array $data
  106. * @return array
  107. */
  108. public function getAllMenuList(array $data): array
  109. {
  110. $result = Menu::get();
  111. if($result){
  112. return Result::success($result);
  113. }else{
  114. return Result::error("没有权限",0,[]);
  115. }
  116. }
  117. }