AuthorityController.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Controller;
  4. use App\JsonRpc\AuthorityServiceInterface;
  5. use Hyperf\Di\Annotation\Inject;
  6. use Hyperf\HttpServer\Annotation\AutoController;
  7. use App\Tools\Result;
  8. use App\Constants\ErrorCode;
  9. use Hyperf\Validation\Contract\ValidatorFactoryInterface;
  10. /**
  11. * Class AuthorityController
  12. * @package App\Controller
  13. */
  14. #[AutoController]
  15. class AuthorityController extends AbstractController
  16. {
  17. #[Inject]
  18. protected ValidatorFactoryInterface $validationFactory;
  19. /**
  20. * @var AuthorityServiceInterface
  21. */
  22. #[Inject]
  23. private $authorityServiceClient;
  24. /**
  25. * 获取菜单列表
  26. * @return array
  27. */
  28. public function getMenuList()
  29. {
  30. $id = (int)$this->request->input("id",0);
  31. $page = (int)$this->request->input("page",1);
  32. $pageSize = (int)$this->request->input("pageSize",10);
  33. $data = [
  34. 'id'=>$id,
  35. 'page'=>$page,
  36. 'pageSize'=>$pageSize
  37. ];
  38. $result = $this->authorityServiceClient->getMenuList($data);
  39. return $result?Result::success($result['data']):Result::error($result['message']);
  40. }
  41. /**
  42. * 删除菜单
  43. * @return array
  44. */
  45. public function delMenu()
  46. {
  47. $id = (int)$this->request->input("id",0);
  48. $data = [
  49. 'id'=>$id,
  50. 'page'=>1,
  51. 'pageSize'=>2
  52. ];
  53. $result = $this->authorityServiceClient->getMenuList($data);
  54. if(count($result['data']['rows'])>0){
  55. return Result::error("有子菜单不能删除");
  56. }
  57. return $this->authorityServiceClient->delMenu($data);
  58. }
  59. /**
  60. * 添加菜单
  61. * @return array|void
  62. */
  63. public function addMent()
  64. {
  65. $requireData = $this->request->all();
  66. $validator = $this->validationFactory->make(
  67. $requireData,
  68. [
  69. 'pid' => 'required',
  70. 'label' => 'required',
  71. 'url' => 'required',
  72. ],
  73. [
  74. 'pid.required' => '父级id不能为空',
  75. 'label.required' => '菜单名称不能为空',
  76. 'url.required' => '路由地址不能为空',
  77. ]
  78. );
  79. if ($validator->fails()){
  80. $errorMessage = $validator->errors()->first();
  81. return Result::error($errorMessage);
  82. }
  83. $result = $this->authorityServiceClient->addMenu($requireData);
  84. return $result?Result::success($result['data']):Result::error($result['message']);
  85. }
  86. /**
  87. * 修改菜单
  88. * @return array|void
  89. */
  90. public function updateMent()
  91. {
  92. $requireData = $this->request->all();
  93. $validator = $this->validationFactory->make(
  94. $requireData,
  95. [
  96. 'id' => 'required',
  97. 'pid' => 'required',
  98. 'label' => 'required',
  99. 'url' => 'required',
  100. ],
  101. [
  102. 'id.required' => 'id不能为空',
  103. 'pid.required' => '父级id不能为空',
  104. 'label.required' => '菜单名称不能为空',
  105. 'url.required' => '路由地址不能为空',
  106. ]
  107. );
  108. if ($validator->fails()){
  109. $errorMessage = $validator->errors()->first();
  110. return Result::error($errorMessage);
  111. }
  112. $result = $this->authorityServiceClient->updateMenu($requireData);
  113. return $result?Result::success($result['data']):Result::error($result['message']);
  114. }
  115. }