App_Controller_LinkController.proxy.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?php
  2. declare (strict_types=1);
  3. namespace App\Controller;
  4. use App\JsonRpc\LinkServiceInterface;
  5. use Hyperf\Di\Annotation\Inject;
  6. use Hyperf\HttpServer\Annotation\AutoController;
  7. use App\Tools\Result;
  8. use Hyperf\Context\Context;
  9. use Hyperf\Logger;
  10. use Hyperf\Validation\Contract\ValidatorFactoryInterface;
  11. /**
  12. * Class LinkController
  13. * @package App\Controller
  14. */
  15. //#[AutoController]
  16. class LinkController extends AbstractController
  17. {
  18. use \Hyperf\Di\Aop\ProxyTrait;
  19. use \Hyperf\Di\Aop\PropertyHandlerTrait;
  20. function __construct(\Hyperf\Logger\LoggerFactory $loggerFactory)
  21. {
  22. if (method_exists(parent::class, '__construct')) {
  23. parent::__construct(...func_get_args());
  24. }
  25. $this->__handlePropertyHandler(__CLASS__);
  26. }
  27. #[Inject]
  28. protected ValidatorFactoryInterface $validationFactory;
  29. /**
  30. * @var LinkServiceInterface
  31. */
  32. #[Inject]
  33. private $linkServiceClient;
  34. /**
  35. * 友情链接列表
  36. * @return array
  37. */
  38. public function getLinkList()
  39. {
  40. $requireData = $this->request->all();
  41. $result = $this->linkServiceClient->getLinkList($requireData);
  42. if ($result['data']) {
  43. $statusList = ['1' => "通过", '2' => "待审"];
  44. foreach ($result['data']['rows'] as $k => $v) {
  45. $result['data']['rows'][$k]['status_name'] = $statusList[$v['status']];
  46. }
  47. }
  48. return $result ? Result::success($result['data']) : Result::error($result['message']);
  49. }
  50. /**
  51. * 创建友情链接
  52. * @return array
  53. */
  54. public function createLink()
  55. {
  56. $requireData = $this->request->all();
  57. $validator = $this->validationFactory->make($requireData, ['title' => 'required'], ['title.required' => '名称不能为空']);
  58. if ($validator->fails()) {
  59. $errorMessage = $validator->errors()->first();
  60. return Result::error($errorMessage);
  61. }
  62. $result = $this->linkServiceClient->createLink($requireData);
  63. return $result ? Result::success($result['data']) : Result::error($result['message']);
  64. }
  65. /**
  66. * 更新友情链接
  67. * @return array
  68. */
  69. public function updateLink()
  70. {
  71. $requireData = $this->request->all();
  72. $validator = $this->validationFactory->make($requireData, ['id' => 'required', 'title' => 'required', 'url' => 'required'], ['id.required' => 'id不能为空', 'title.required' => '名称不能为空', 'url.required' => 'url不能为空']);
  73. if ($validator->fails()) {
  74. $errorMessage = $validator->errors()->first();
  75. return Result::error($errorMessage);
  76. }
  77. $requireData = $this->request->all();
  78. $result = $this->linkServiceClient->updateLink($requireData);
  79. return $result ? Result::success($result['data']) : Result::error($result['message']);
  80. }
  81. /**
  82. * 删除友情链接
  83. * @return array
  84. */
  85. public function delLink()
  86. {
  87. $requireData = $this->request->all();
  88. $result = $this->linkServiceClient->delLink($requireData);
  89. return $result ? Result::success($result['data']) : Result::error($result['message']);
  90. }
  91. }