WebController.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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. var_dump($websiteInfo);
  35. if($websiteInfo['code'] == 200){
  36. $this->siteId = $websiteInfo['data']['id'];
  37. }
  38. }
  39. /**
  40. * 获取栏目导航
  41. * @return array
  42. */
  43. public function getWebsiteCategory()
  44. {
  45. var_dump("网站id:",$this->siteId);
  46. $data = [
  47. 'website_id'=>$this->siteId
  48. ];
  49. $result = $this->websiteServiceClient->getWebsiteCategory($data);
  50. if ($result['code'] != ErrorCode::SUCCESS) {
  51. return Result::error($result['message'],0,[]);
  52. }
  53. return Result::success($result['data']);
  54. }
  55. /**
  56. * @return array
  57. */
  58. public function getWebsiteId()
  59. {
  60. $header = $this->request->getHeaders();
  61. var_dump("获取header:",$header);
  62. if(!isset($header['origin'])){
  63. return Result::error("header请配置origin");
  64. }
  65. $origin = $header['origin'][0];
  66. $logindevice = explode("//", $origin);
  67. $data = [
  68. 'website_url'=>$logindevice[1]
  69. ];
  70. var_dump($data);
  71. $result = $this->websiteServiceClient->getWebsiteId($data);
  72. if ($result['code'] != ErrorCode::SUCCESS) {
  73. return Result::error($result['message'],0,[]);
  74. }
  75. return Result::success($result['data']);
  76. }
  77. }