WebController.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Controller;
  4. use App\JsonRpc\NewsServiceInterface;
  5. use App\JsonRpc\WebsiteServiceInterface;
  6. use App\Tools\PublicData;
  7. use Hyperf\Di\Annotation\Inject;
  8. use Hyperf\HttpServer\Annotation\AutoController;
  9. use App\Tools\Result;
  10. use Hyperf\Validation\Contract\ValidatorFactoryInterface;
  11. use App\Constants\ErrorCode;
  12. use Hyperf\Context\Context;
  13. /**
  14. * Class WebController
  15. * @package App\Controller
  16. */
  17. class WebController extends AbstractController
  18. {
  19. #[Inject]
  20. protected ValidatorFactoryInterface $validationFactory;
  21. /**
  22. * @var NewsServiceInterface
  23. */
  24. #[Inject]
  25. private $newsServiceClient;
  26. /**
  27. * @var WebsiteServiceInterface
  28. */
  29. #[Inject]
  30. private $websiteServiceClient;
  31. protected $siteId;
  32. public function __construct(){
  33. $websiteInfo = $this->getWebsiteId();
  34. if($websiteInfo['code'] == 200){
  35. $this->siteId = $websiteInfo['data']['id'];
  36. }
  37. }
  38. /**
  39. * 获取栏目导航
  40. * @return array
  41. */
  42. public function getWebsiteCategory()
  43. {
  44. // var_dump("网站id:",$this->siteId);
  45. $data = [
  46. 'website_id'=>$this->siteId
  47. ];
  48. $result = $this->websiteServiceClient->getWebsiteCategory($data);
  49. if ($result['code'] != ErrorCode::SUCCESS) {
  50. return Result::error($result['message'],0,[]);
  51. }
  52. return Result::success($result['data']);
  53. }
  54. /**
  55. * @return array
  56. */
  57. public function getWebsiteId()
  58. {
  59. $header = $this->request->getHeaders();
  60. // var_dump("获取header:",$header);
  61. if(!isset($header['origin'])){
  62. return Result::error("header请配置origin");
  63. }
  64. $origin = $header['origin'][0];
  65. $logindevice = explode("//", $origin);
  66. $data = [
  67. 'website_url'=>$logindevice[1]
  68. ];
  69. $result = $this->websiteServiceClient->getWebsiteId($data);
  70. if ($result['code'] != ErrorCode::SUCCESS) {
  71. return Result::error($result['message'],0,[]);
  72. }
  73. return Result::success($result['data']);
  74. }
  75. }