AuthorityService.php 3.9 KB

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