App_Controller_AdController.proxy.php 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. <?php
  2. declare (strict_types=1);
  3. namespace App\Controller;
  4. use App\JsonRpc\AdServiceInterface;
  5. use App\Tools\PublicData;
  6. use Hyperf\Di\Annotation\Inject;
  7. use Hyperf\HttpServer\Annotation\AutoController;
  8. use App\Tools\Result;
  9. use App\Constants\ErrorCode;
  10. use Hyperf\Logger;
  11. use Hyperf\Validation\Contract\ValidatorFactoryInterface;
  12. /**
  13. * Class AdController
  14. * @package App\Controller
  15. */
  16. //#[AutoController]
  17. class AdController extends AbstractController
  18. {
  19. use \Hyperf\Di\Aop\ProxyTrait;
  20. use \Hyperf\Di\Aop\PropertyHandlerTrait;
  21. function __construct(\Hyperf\Logger\LoggerFactory $loggerFactory)
  22. {
  23. if (method_exists(parent::class, '__construct')) {
  24. parent::__construct(...func_get_args());
  25. }
  26. $this->__handlePropertyHandler(__CLASS__);
  27. }
  28. #[Inject]
  29. protected ValidatorFactoryInterface $validationFactory;
  30. /**
  31. * @var AdServiceInterface
  32. */
  33. #[Inject]
  34. private $adServiceClient;
  35. public function createAd()
  36. {
  37. $requireData = $this->request->all();
  38. $validator = $this->validationFactory->make($requireData, ['name' => 'required', 'website_id' => 'required', 'price' => 'required'], ['name.required' => '名称不能为空', 'website_id.required' => '站点不能为空', 'price.required' => '价格不能为空']);
  39. if ($validator->fails()) {
  40. $errorMessage = $validator->errors()->first();
  41. return Result::error($errorMessage);
  42. }
  43. $result = $this->adServiceClient->createAd($requireData);
  44. return $result ? Result::success($result['data']) : Result::error($result['message']);
  45. }
  46. /**
  47. * @return array|void
  48. */
  49. public function getAdInfo()
  50. {
  51. $requireData = $this->request->all();
  52. $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['id.required' => 'id不能为空']);
  53. if ($validator->fails()) {
  54. $errorMessage = $validator->errors()->first();
  55. return Result::error($errorMessage);
  56. }
  57. $id = (int) $requireData['id'];
  58. $result = $this->adServiceClient->getAdInfo($id);
  59. if ($result['code'] != ErrorCode::SUCCESS) {
  60. return Result::error($result['message'], 0);
  61. }
  62. return Result::success($result['data']);
  63. }
  64. public function getAdList()
  65. {
  66. $requireData = $this->request->all();
  67. $nowTime = date("Y-m-d H:i:s");
  68. $result = $this->adServiceClient->getAdList($requireData);
  69. if ($result['data']) {
  70. $typeList = ['1' => '文字', '2' => '图文'];
  71. $statusName = ['1' => '通过', '2' => '待审'];
  72. foreach ($result['data']['rows'] as $k => $v) {
  73. $result['data']['rows'][$k]['type_name'] = $typeList[$v['typeid']];
  74. $result['data']['rows'][$k]['status_name'] = $statusName[$v['status']];
  75. $result['data']['rows'][$k]['day'] = PublicData::residueDay(date("Y-m-d H:i:s"), $v['totime']);
  76. if ($nowTime < $v['fromtime']) {
  77. $result['data']['rows'][$k]['runing_name'] = '未开始';
  78. } else {
  79. if ($nowTime > $v['totime']) {
  80. $result['data']['rows'][$k]['runing_name'] = '已过期';
  81. } else {
  82. $result['data']['rows'][$k]['runing_name'] = '投放中';
  83. }
  84. }
  85. }
  86. }
  87. return $result ? Result::success($result['data']) : Result::error($result['message']);
  88. }
  89. public function updateAd()
  90. {
  91. $requireData = $this->request->all();
  92. $validator = $this->validationFactory->make($requireData, ['name' => 'required', 'status' => 'required'], ['name.required' => '名称不能为空', 'status.required' => '状态不能为空']);
  93. if ($validator->fails()) {
  94. $errorMessage = $validator->errors()->first();
  95. return Result::error($errorMessage);
  96. }
  97. $requireData = $this->request->all();
  98. $result = $this->adServiceClient->updateAd($requireData);
  99. return $result ? Result::success($result['data']) : Result::error($result['message']);
  100. }
  101. public function delAd()
  102. {
  103. $requireData = $this->request->all();
  104. $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['id.required' => 'id不能为空']);
  105. if ($validator->fails()) {
  106. $errorMessage = $validator->errors()->first();
  107. return Result::error($errorMessage);
  108. }
  109. $result = $this->adServiceClient->delAd($requireData);
  110. var_dump($result);
  111. return $result ? Result::success($result['data']) : Result::error($result['message']);
  112. }
  113. /**
  114. * 获取广告位列表
  115. * @return array
  116. */
  117. public function getAdPlaceList()
  118. {
  119. $requireData = $this->request->all();
  120. var_dump($requireData);
  121. $result = $this->adServiceClient->getAdPlaceList($requireData);
  122. if ($result['data']) {
  123. $typeList = ['1' => '文字', '2' => '图文'];
  124. $statusName = ['1' => '通过', '2' => '待审'];
  125. foreach ($result['data']['rows'] as $k => $v) {
  126. $result['data']['rows'][$k]['type_name'] = $typeList[$v['typeid']];
  127. $result['data']['rows'][$k]['status_name'] = $statusName[$v['status']];
  128. }
  129. }
  130. return $result ? Result::success($result['data']) : Result::error($result['message']);
  131. }
  132. public function createAdPlace()
  133. {
  134. $requireData = $this->request->all();
  135. $validator = $this->validationFactory->make($requireData, ['name' => 'required', 'website_id' => 'required', 'price' => 'required'], ['name.required' => '名称不能为空', 'website_id.required' => '站点不能为空', 'price.required' => '价格不能为空']);
  136. if ($validator->fails()) {
  137. $errorMessage = $validator->errors()->first();
  138. return Result::error($errorMessage);
  139. }
  140. $result = $this->adServiceClient->createAdPlace($requireData);
  141. return $result ? Result::success($result['data']) : Result::error($result['message']);
  142. }
  143. public function updateAdPlace()
  144. {
  145. $requireData = $this->request->all();
  146. $validator = $this->validationFactory->make($requireData, ['id' => 'required', 'name' => 'required', 'website_id' => 'required', 'price' => 'required'], ['id.required' => 'id不能为空', 'name.required' => '名称不能为空', 'website_id.required' => '站点不能为空', 'price.required' => '价格不能为空']);
  147. if ($validator->fails()) {
  148. $errorMessage = $validator->errors()->first();
  149. return Result::error($errorMessage);
  150. }
  151. $result = $this->adServiceClient->updateAdPlace($requireData);
  152. return $result ? Result::success($result['data']) : Result::error($result['message']);
  153. }
  154. public function delAdPlace()
  155. {
  156. $requireData = $this->request->all();
  157. $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['id.required' => 'id不能为空']);
  158. if ($validator->fails()) {
  159. $errorMessage = $validator->errors()->first();
  160. return Result::error($errorMessage);
  161. }
  162. $result = $this->adServiceClient->delAdPlace($requireData);
  163. var_dump($result);
  164. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  165. }
  166. }