AdClass.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. <?php
  2. namespace biz\ad\classes;
  3. use common\components\util;
  4. use Yii;
  5. use \biz\base\classes\BaseClass;
  6. class AdClass extends BaseClass
  7. {
  8. public static $baseFile = '\biz\ad\models\Ad';
  9. //取出有效的广告 shish 2019.12.13
  10. public static function getValidAdList($merchantId)
  11. {
  12. $time = time();
  13. $list = self::getAllByCondition([
  14. 'merchantId' => $merchantId,
  15. 'delStatus' => 0,
  16. 'type' => 1,
  17. 'status' => 1,
  18. 'startTime<' => $time,
  19. 'endTime>' => $time
  20. ], 'inTurn DESC', '*');
  21. return !empty($list) ? self::groupBaseInfo($list) : [];
  22. }
  23. //广告列表 shish 2019.12.
  24. public static function getAdList($where)
  25. {
  26. $data = self::getList('*', $where, 'inTurn DESC,updateTime DESC');
  27. $list = $data['list'];
  28. if (!empty($list)) {
  29. $imgUrl = Yii::$app->params['imgHost'];
  30. foreach ($list as $key => $val) {
  31. //图片提供完整地址给前端,同时原有addImg字段不占用,定义新字段adImgUrl
  32. $list[$key]['adImgUrl'] = $imgUrl . $val['adImg'];
  33. $style = $val['style'];
  34. $url = $val['url'];
  35. if ($style == 1) {
  36. //商品地址后面再补写
  37. $url = '';
  38. }
  39. $list[$key]['url'] = $url;
  40. }
  41. }
  42. $data['list'] = $list;
  43. return $data;
  44. }
  45. //添加广告
  46. public static function addAd($data)
  47. {
  48. //永久有效
  49. $time = time();
  50. $neverExpireTime = Yii::$app->params['neverExpireTime'];
  51. if (isset($data['endTime']) && empty($data['endTime'])) {
  52. $data['startTime'] = $time;
  53. $data['endTime'] = $neverExpireTime;
  54. } else {
  55. $data['startTime'] = strtotime($data['startTime']);
  56. $data['endTime'] = strtotime($data['endTime']);
  57. }
  58. return self::add($data);
  59. }
  60. //组装通用的信息
  61. public static function groupBaseInfo($list)
  62. {
  63. $imgUrl = Yii::$app->params['imgHost'];
  64. foreach ($list as $key => $val) {
  65. $style = $val['style'];
  66. $url = $val['url'];
  67. if ($style == 1) {
  68. $url = '';
  69. }
  70. $list[$key]['url'] = $url;
  71. $list[$key]['adImgUrl'] = $imgUrl . $val['adImg'];
  72. }
  73. return $list;
  74. }
  75. //单个广告的信息
  76. public static function getDetail($id)
  77. {
  78. $info = self::getById($id);
  79. if (empty($info)) {
  80. util::fail('找不到广告');
  81. }
  82. $list = self::groupBaseInfo([$info]);
  83. return current($list);
  84. }
  85. //点击数+1
  86. public static function clickAd($id)
  87. {
  88. return self::counters(['viewTimes' => 1], ['id' => $id]);
  89. }
  90. //更新广告
  91. public static function updateAd($id, $data)
  92. {
  93. $time = time();
  94. //广告类型不允许修改
  95. unset($data['type']);
  96. $neverExpireTime = Yii::$app->params['neverExpireTime'];
  97. if (isset($data['endTime']) && empty($data['endTime'])) {
  98. $data['startTime'] = $time;
  99. $data['endTime'] = $neverExpireTime;
  100. } else {
  101. $data['startTime'] = strtotime($data['startTime']);
  102. $data['endTime'] = strtotime($data['endTime']);
  103. }
  104. return self::updateById($id, $data);
  105. }
  106. //开店广告初始化 shish 2020.2.14
  107. public static function initAdd($merchantId)
  108. {
  109. $time = time();
  110. $imgHost = Yii::$app->params['imgHost'];
  111. $list = [
  112. ['adName' => '培训图', 'adImg' => $imgHost . '/example/mall/1.jpg', 'type' => 0, 'startTime' => 0, 'endTime' => 4102416000, 'addTime' => $time, 'merchantId' => $merchantId, 'status' => 1],
  113. ['adName' => '花礼', 'adImg' => $imgHost . '/example/mall/2.jpg', 'type' => 0, 'startTime' => 0, 'endTime' => 4102416000, 'addTime' => $time, 'merchantId' => $merchantId, 'status' => 1],
  114. ['adName' => '花艺', 'adImg' => $imgHost . '/example/mall/3.jpg', 'type' => 0, 'startTime' => 0, 'endTime' => 4102416000, 'addTime' => $time, 'merchantId' => $merchantId, 'status' => 1],
  115. ['adName' => '门店图片', 'adImg' => $imgHost . '/example/shop/1.jpg', 'type' => 1, 'startTime' => 0, 'endTime' => 4102416000, 'addTime' => $time, 'merchantId' => $merchantId, 'status' => 1],
  116. ];
  117. foreach ($list as $val) {
  118. self::add($val);
  119. }
  120. }
  121. //删除广告 shish 2020.5.21
  122. public static function deleteAd($id)
  123. {
  124. self::updateById($id, ['delStatus' => 1]);
  125. }
  126. }