App_Controller_AdController.proxy.php 7.3 KB

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