AdController.php 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245
  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. #[Inject]
  20. protected ValidatorFactoryInterface $validationFactory;
  21. /**
  22. * @var AdServiceInterface
  23. */
  24. #[Inject]
  25. private $adServiceClient;
  26. public function createAd()
  27. {
  28. $requireData = $this->request->all();
  29. $validator = $this->validationFactory->make(
  30. $requireData,
  31. [
  32. 'name' => 'required',
  33. 'website_id' => 'required',
  34. 'price' => 'required',
  35. ],
  36. [
  37. 'name.required' => '名称不能为空',
  38. 'website_id.required' => '站点不能为空',
  39. 'price.required' => '价格不能为空',
  40. ]
  41. );
  42. if ($validator->fails()){
  43. $errorMessage = $validator->errors()->first();
  44. return Result::error($errorMessage);
  45. }
  46. $result = $this->adServiceClient->createAd($requireData);
  47. return $result?Result::success($result['data']):Result::error($result['message']);
  48. }
  49. /**
  50. * @return array|void
  51. */
  52. public function getAdInfo()
  53. {
  54. $requireData = $this->request->all();
  55. $validator = $this->validationFactory->make(
  56. $requireData,
  57. [
  58. 'id' => 'required',
  59. ],
  60. [
  61. 'id.required' => 'id不能为空',
  62. ]
  63. );
  64. if ($validator->fails()){
  65. $errorMessage = $validator->errors()->first();
  66. return Result::error($errorMessage);
  67. }
  68. $id = (int)$requireData['id'];
  69. $result = $this->adServiceClient->getAdInfo($id);
  70. if ($result['code'] != ErrorCode::SUCCESS) {
  71. return Result::error($result['message'],0);
  72. }
  73. return Result::success($result['data']);
  74. }
  75. public function getAdList()
  76. {
  77. $requireData = $this->request->all();
  78. $nowTime = date("Y-m-d H:i:s");
  79. $result = $this->adServiceClient->getAdList($requireData);
  80. if($result['data']){
  81. $typeList = ['1'=>'文字','2'=>'图文'];
  82. $statusName = ['1'=>'通过','2'=>'待审'];
  83. foreach ($result['data']['rows'] as $k=>$v) {
  84. $result['data']['rows'][$k]['type_name'] = $typeList[$v['typeid']];
  85. $result['data']['rows'][$k]['status_name'] = $statusName[$v['status']];
  86. $result['data']['rows'][$k]['day'] = PublicData::residueDay(date("Y-m-d H:i:s"),$v['totime']);
  87. if($nowTime<$v['fromtime']){
  88. $result['data']['rows'][$k]['runing_name'] = '未开始';
  89. }else if($nowTime>$v['totime']){
  90. $result['data']['rows'][$k]['runing_name'] = '已过期';
  91. }else{
  92. $result['data']['rows'][$k]['runing_name'] = '投放中';
  93. }
  94. }
  95. }
  96. return $result?Result::success($result['data']):Result::error($result['message']);
  97. }
  98. public function updateAd()
  99. {
  100. $requireData = $this->request->all();
  101. $validator = $this->validationFactory->make(
  102. $requireData,
  103. [
  104. 'name' => 'required',
  105. 'status' => 'required',
  106. ],
  107. [
  108. 'name.required' => '名称不能为空',
  109. 'status.required' => '状态不能为空',
  110. ]
  111. );
  112. if ($validator->fails()){
  113. $errorMessage = $validator->errors()->first();
  114. return Result::error($errorMessage);
  115. }
  116. $requireData = $this->request->all();
  117. $result = $this->adServiceClient->updateAd($requireData);
  118. return $result?Result::success($result['data']):Result::error($result['message']);
  119. }
  120. public function delAd()
  121. {
  122. $requireData = $this->request->all();
  123. $validator = $this->validationFactory->make(
  124. $requireData,
  125. [
  126. 'id' => 'required',
  127. ],
  128. [
  129. 'id.required' => 'id不能为空',
  130. ]
  131. );
  132. if ($validator->fails()){
  133. $errorMessage = $validator->errors()->first();
  134. return Result::error($errorMessage);
  135. }
  136. $result = $this->adServiceClient->delAd($requireData);
  137. var_dump($result);
  138. return $result?Result::success($result['data']):Result::error($result['message']);
  139. }
  140. /**
  141. * 获取广告位列表
  142. * @return array
  143. */
  144. public function getAdPlaceList()
  145. {
  146. $requireData = $this->request->all();
  147. var_dump($requireData);
  148. $result = $this->adServiceClient->getAdPlaceList($requireData);
  149. if($result['data']){
  150. $typeList = ['1'=>'文字','2'=>'图文'];
  151. $statusName = ['1'=>'通过','2'=>'待审'];
  152. foreach ($result['data']['rows'] as $k=>$v) {
  153. $result['data']['rows'][$k]['type_name'] = $typeList[$v['typeid']];
  154. $result['data']['rows'][$k]['status_name'] = $statusName[$v['status']];
  155. }
  156. }
  157. return $result?Result::success($result['data']):Result::error($result['message']);
  158. }
  159. public function createAdPlace()
  160. {
  161. $requireData = $this->request->all();
  162. $validator = $this->validationFactory->make(
  163. $requireData,
  164. [
  165. 'name' => 'required',
  166. 'website_id' => 'required',
  167. 'price' => 'required',
  168. ],
  169. [
  170. 'name.required' => '名称不能为空',
  171. 'website_id.required' => '站点不能为空',
  172. 'price.required' => '价格不能为空',
  173. ]
  174. );
  175. if ($validator->fails()){
  176. $errorMessage = $validator->errors()->first();
  177. return Result::error($errorMessage);
  178. }
  179. $result = $this->adServiceClient->createAdPlace($requireData);
  180. return $result?Result::success($result['data']):Result::error($result['message']);
  181. }
  182. public function updateAdPlace()
  183. {
  184. $requireData = $this->request->all();
  185. $validator = $this->validationFactory->make(
  186. $requireData,
  187. [
  188. 'id' => 'required',
  189. 'name' => 'required',
  190. 'website_id' => 'required',
  191. 'price' => 'required',
  192. ],
  193. [
  194. 'id.required' => 'id不能为空',
  195. 'name.required' => '名称不能为空',
  196. 'website_id.required' => '站点不能为空',
  197. 'price.required' => '价格不能为空',
  198. ]
  199. );
  200. if ($validator->fails()){
  201. $errorMessage = $validator->errors()->first();
  202. return Result::error($errorMessage);
  203. }
  204. $result = $this->adServiceClient->updateAdPlace($requireData);
  205. return $result?Result::success($result['data']):Result::error($result['message']);
  206. }
  207. public function delAdPlace()
  208. {
  209. $requireData = $this->request->all();
  210. $validator = $this->validationFactory->make(
  211. $requireData,
  212. [
  213. 'id' => 'required',
  214. ],
  215. [
  216. 'id.required' => 'id不能为空',
  217. ]
  218. );
  219. if ($validator->fails()){
  220. $errorMessage = $validator->errors()->first();
  221. return Result::error($errorMessage);
  222. }
  223. $result = $this->adServiceClient->delAdPlace($requireData);
  224. var_dump($result);
  225. return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
  226. }
  227. }