AdService.php 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. <?php
  2. namespace App\JsonRpc;
  3. use App\Model\Ad;
  4. use App\Model\AdPlace;
  5. use Hyperf\RpcServer\Annotation\RpcService;
  6. use App\Tools\Result;
  7. #[RpcService(name: "AdService", protocol: "jsonrpc-http", server: "jsonrpc-http")]
  8. class AdService implements AdServiceInterface
  9. {
  10. /**
  11. * @param array $data
  12. * @return string
  13. */
  14. public function createAd(array $data): array
  15. {
  16. $insertData = [
  17. 'name'=>$data['name']??'',
  18. 'pid'=>$data['pid']??0,
  19. 'areaid'=>$data['areaid']??0,
  20. 'amount'=>$data['amount']??0,//浏览数量
  21. 'introduce'=>$data['introduce']??'',
  22. 'hits'=>$data['hits']??0, //点击数量
  23. 'fromtime'=>$data['f_t_date'][0]??0,
  24. 'totime'=>$data['f_t_date'][1]??0,
  25. 'text_name'=>$data['text_name']??'',
  26. 'text_url'=>$data['text_url']??'',
  27. 'text_title'=>$data['text_title']??'',
  28. 'image_src'=>$data['image_src']??'',
  29. 'image_url'=>$data['image_url']??'',
  30. 'image_alt'=>$data['image_alt']??'',
  31. 'video_src'=>$data['video_src']??'',//视频
  32. 'video_url'=>$data['video_url']??'',
  33. 'video_auto'=>$data['video_auto'] ??0,
  34. 'video_loop'=>$data['video_loop'] ??0,
  35. 'status'=>$data['status']??2,
  36. 'remark'=>$data['remark']??'',
  37. ];
  38. $result = Ad::query()->insertGetId($insertData);
  39. if($result){
  40. return Result::success();
  41. }else{
  42. return Result::error("创建广告失败",500);
  43. }
  44. }
  45. /**
  46. * @param int $id
  47. * @return array
  48. */
  49. public function getAdInfo(int $id): array
  50. {
  51. $adInfo = Ad::query()->find($id);
  52. if (empty($adInfo)) {
  53. return Result::error("没有数据",0);
  54. }
  55. return Result::success($adInfo->toArray());
  56. }
  57. public function getAdList(array $data): array
  58. {
  59. $where = [
  60. ['ad.name','like','%'.$data['keyWord'].'%'],
  61. ];
  62. if(isset($data['pid'])){
  63. $where[]= ['ad.pid','=',$data['pid']];
  64. }
  65. $rep = Ad::where($where)
  66. ->leftJoin("ad_place","ad.pid","ad_place.id")
  67. ->select("ad.*","ad_place.name as place_name","ad_place.typeid")
  68. ->limit($data['pageSize'])->orderBy("id","asc")->offset(($data['page']-1)*$data['pageSize'])->get();
  69. $count = Ad::where($where)->count();
  70. $data = [
  71. 'rows'=>$rep->toArray(),
  72. 'count'=>$count
  73. ];
  74. if(empty($rep->toArray())){
  75. return Result::error("没有数据");
  76. }
  77. return Result::success($data);
  78. }
  79. public function updateAd(array $data): array
  80. {
  81. $where = [
  82. 'id'=>$data['id']
  83. ];
  84. $insertData = [
  85. 'name'=>$data['name']??'',
  86. 'pid'=>$data['pid']??0,
  87. 'areaid'=>$data['areaid']??0,
  88. 'amount'=>$data['amount']??0,//浏览数量
  89. 'introduce'=>$data['introduce']??'',
  90. 'hits'=>$data['hits']??0, //点击数量
  91. 'fromtime'=>$data['f_t_date'][0]??0,
  92. 'totime'=>$data['f_t_date'][1]??0,
  93. 'text_name'=>$data['text_name']??'',
  94. 'text_url'=>$data['text_url']??'',
  95. 'text_title'=>$data['text_title']??'',
  96. 'image_src'=>$data['image_src']??'',
  97. 'image_url'=>$data['image_url']??'',
  98. 'image_alt'=>$data['image_alt']??'',
  99. 'video_src'=>$data['video_src']??'',//视频
  100. 'video_url'=>$data['video_url']??'',
  101. 'video_auto'=>isset($data['video_auto']) && empty($data['video_auto'])?0:$data['video_auto'],
  102. 'video_loop'=>isset($data['video_loop']) && empty($data['video_loop'])?0:$data['video_loop'],
  103. 'status'=>$data['status']??2,
  104. 'remark'=>$data['remark']??'',
  105. ];
  106. $result = Ad::where($where)->update($insertData);
  107. if($result){
  108. return Result::success($result);
  109. }else{
  110. return Result::error("更新失败");
  111. }
  112. }
  113. public function delAd(array $data): array
  114. {
  115. $result = Ad::where($data)->delete();
  116. if(!$result){
  117. return Result::error("删除失败");
  118. }
  119. return Result::success($result);
  120. }
  121. public function getAdPlaceList(array $data): array
  122. {
  123. $where = [
  124. ['name','like','%'.$data['keyWord'].'%'],
  125. ];
  126. if(isset($data['website_id'])){
  127. $where[]= ['website_id','=',$data['website_id']];
  128. }
  129. $rep = AdPlace::where($where)->limit($data['pageSize'])->orderBy("id","desc")->offset(($data['page']-1)*$data['pageSize'])->get();
  130. $count = AdPlace::where($where)->count();
  131. $data = [
  132. 'rows'=>$rep->toArray(),
  133. 'count'=>$count
  134. ];
  135. if(empty($rep->toArray())){
  136. return Result::error("没有数据");
  137. }
  138. return Result::success($data);
  139. }
  140. public function createAdPlace(array $data): array
  141. {
  142. unset($data['size']);
  143. $result = AdPlace::query()->insertGetId($data);
  144. if($result){
  145. return Result::success();
  146. }else{
  147. return Result::error("创建广告位失败",500);
  148. }
  149. }
  150. public function updateAdPlace(array $data): array
  151. {
  152. $where = [
  153. 'id'=>$data['id']
  154. ];
  155. $Insdata = [
  156. 'website_id'=>$data['website_id']??'',
  157. 'typeid'=>$data['typeid']??1,
  158. 'status'=>$data['status']??2,
  159. 'name'=>$data['name']??'',
  160. 'thumb'=>$data['thumb']??'',
  161. 'introduce'=>$data['introduce']??'',
  162. 'code'=>$data['code']??'',
  163. 'width'=>empty($data['width'])?0:$data['width'],
  164. 'height'=>empty($data['height'])?0:$data['height'],
  165. 'price'=>$data['price']??0,
  166. ];
  167. var_dump($Insdata);
  168. $result = AdPlace::where($where)->update($Insdata);
  169. if($result){
  170. return Result::success($result);
  171. }else{
  172. return Result::error("更新失败");
  173. }
  174. }
  175. public function delAdPlace(array $data): array
  176. {
  177. $adList = Ad::where(['pid'=>$data['id']])->get();
  178. if($adList->toArray()){
  179. return Result::error("广告位里面还有广告,不能删除广告位");
  180. }
  181. $result = AdPlace::where($data)->delete();
  182. if(!$result){
  183. return Result::error("删除失败");
  184. }
  185. return Result::success($result);
  186. }
  187. }