AdController.php 7.9 KB

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