AddonsXhsStatistics.php 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. <?php
  2. namespace addons\Xhs\common\models;
  3. use common\enums\StatusEnum;
  4. use Yii;
  5. use yii\db\Exception;
  6. /**
  7. * This is the model class for table "qimall_addons_xhs_statistics".
  8. *
  9. * @property int $id ID
  10. * @property int $mall_id 商城ID
  11. * @property int $push_count 发布量
  12. * @property int $views_count 浏览量
  13. * @property int $stars_count 点赞量
  14. * @property int $shares_count 分享量
  15. * @property int $discuss_count 评论量
  16. * @property int|null $goods_views_count 商品访问统计
  17. * @property int|null $order_count 订单统计
  18. * @property int $created_at 创建时间
  19. * @property int $updated_at 更新时间
  20. * @property float|null $goods_amount 成交金额
  21. */
  22. class AddonsXhsStatistics extends \common\models\base\BaseActiveRecord
  23. {
  24. /**
  25. * {@inheritdoc}
  26. */
  27. public static function tableName()
  28. {
  29. return '{{%addons_xhs_statistics}}';
  30. }
  31. /**
  32. * {@inheritdoc}
  33. */
  34. public function rules()
  35. {
  36. return [
  37. [['mall_id'], 'required'],
  38. [['mall_id', 'push_count', 'views_count', 'stars_count', 'shares_count', 'discuss_count', 'goods_views_count', 'order_count', 'created_at', 'updated_at'], 'integer'],
  39. [['goods_amount'], 'number'],
  40. ];
  41. }
  42. /**
  43. * {@inheritdoc}
  44. */
  45. public function attributeLabels()
  46. {
  47. return [
  48. 'id' => 'ID',
  49. 'mall_id' => '商城ID',
  50. 'push_count' => '发布量',
  51. 'views_count' => '浏览量',
  52. 'stars_count' => '点赞量',
  53. 'shares_count' => '分享量',
  54. 'discuss_count' => '评论量',
  55. 'goods_views_count' => '商品访问统计',
  56. 'order_count' => '订单统计',
  57. 'created_at' => '创建时间',
  58. 'updated_at' => '更新时间',
  59. 'goods_amount' => '成交金额',
  60. ];
  61. }
  62. /**
  63. * 保存数据
  64. * @Author: ltm
  65. * @DateTime: 2021/01/05 0022 17:13
  66. * @Copyright: copyright (c) 2021 广东七件事集团
  67. * @param array $params
  68. * @return AddonsMaterial|bool
  69. */
  70. public static function setData(array $params){
  71. try{
  72. $beginTodate = mktime(0,0,0,date('m'),date('d'),date('Y'));
  73. $model = self::find()->where(['mall_id'=>$params['mall_id']])->andWhere(['>','created_at',$beginTodate])->one();
  74. if (!$model) {
  75. $model = new self();
  76. $model->loadDefaultValues();
  77. $model->mall_id = $params['mall_id'];
  78. $model->created_at = time();
  79. }else{
  80. if($params['push_count']) {
  81. $model->push_count = $model->push_count + $params['push_count'];
  82. unset($params['push_count']);
  83. }
  84. if($params['views_count']) {
  85. $model->views_count = $model->views_count + $params['views_count'];
  86. unset($params['views_count']);
  87. }
  88. if($params['stars_count']) {
  89. $model->stars_count = $model->stars_count + $params['stars_count'];
  90. unset($params['stars_count']);
  91. }
  92. if($params['shares_count']) {
  93. $model->shares_count = $model->shares_count + $params['shares_count'];
  94. unset($params['shares_count']);
  95. }
  96. if($params['discuss_count']) {
  97. $model->discuss_count = $model->discuss_count + $params['discuss_count'];
  98. unset($params['discuss_count']);
  99. }
  100. if($params['goods_views_count']) {
  101. $model->goods_views_count = $model->goods_views_count + $params['goods_views_count'];
  102. unset($params['goods_views_count']);
  103. }
  104. if($params['order_count']) {
  105. $model->order_count = $model->order_count + $params['order_count'];
  106. unset($params['order_count']);
  107. }
  108. if($params['goods_amount']) {
  109. $model->goods_amount = $model->goods_amount + $params['goods_amount'];
  110. unset($params['goods_amount']);
  111. }
  112. $model->updated_at = time();
  113. }
  114. if(!$model->load($params,'') || !$model->save()){
  115. throw new Exception($model->getErrorMessage());
  116. }
  117. return $model;
  118. }catch(\Exception $e){
  119. self::$static_error = $e->getMessage();
  120. return false;
  121. }
  122. }
  123. /**
  124. * 保存数据
  125. * @Author: ltm
  126. * @DateTime: 2021/01/05 0022 17:13
  127. * @Copyright: copyright (c) 2021 广东七件事集团
  128. * @param array $params
  129. * @return AddonsMaterial|bool
  130. */
  131. public static function statistics($mall_id,$start_time,$end_time){
  132. if($start_time) $beginThismonth = $start_time; else $beginThismonth = mktime(0,0,0,date('m'),1,date('Y'));
  133. if($start_time) $endThismonth = $end_time; else $endThismonth = mktime(23,59,59,date('m'),date('t'),date('Y'));
  134. $params['where'][] = ['=','mall_id',$mall_id];
  135. $params['where'][] = ['between','created_at',$beginThismonth,$endThismonth];
  136. $params['order'] = 'created_at';
  137. $yesterday_data = AddonsXhsStatistics::lists($params,true);
  138. $data['items'] = ['发布量','分享量','点赞量','浏览量','评论量','商品访问量','订单量'];
  139. if($yesterday_data) foreach (array_column($yesterday_data,'created_at') as $k => $v) $data['dates'][] = date("Y-m-d",$v);
  140. $data['series'][0]['type'] = "line";
  141. $data['series'][0]['name'] = "发布量";
  142. if($yesterday_data) $data['series'][0]['data'] = array_column($yesterday_data,'push_count');
  143. $data['series'][1]['type'] = "line";
  144. $data['series'][1]['name'] = "分享量";
  145. if($yesterday_data) $data['series'][1]['data'] = array_column($yesterday_data,'shares_count');
  146. $data['series'][2]['type'] = "line";
  147. $data['series'][2]['name'] = "点赞量";
  148. if($yesterday_data) $data['series'][2]['data'] = array_column($yesterday_data,'stars_count');
  149. $data['series'][3]['type'] = "line";
  150. $data['series'][3]['name'] = "浏览量";
  151. if($yesterday_data) $data['series'][3]['data'] = array_column($yesterday_data,'views_count');
  152. $data['series'][4]['type'] = "line";
  153. $data['series'][4]['name'] = "评论量";
  154. if($yesterday_data) $data['series'][4]['data'] = array_column($yesterday_data,'discuss_count');
  155. $data['series'][5]['type'] = "line";
  156. $data['series'][5]['name'] = "商品访问量";
  157. if($yesterday_data) $data['series'][5]['data'] = array_column($yesterday_data,'goods_views_count');
  158. $data['series'][6]['type'] = "line";
  159. $data['series'][6]['name'] = "订单量";
  160. if($yesterday_data) $data['series'][6]['data'] = array_column($yesterday_data,'order_count');
  161. return $data;
  162. }
  163. /**
  164. * @Author: ltm
  165. * @DateTime: 2022/1/17 0017 14:29
  166. * @Copyright: copyright (c) 2021 广东七件事集团
  167. * @param $data
  168. * @return string
  169. */
  170. public static function format($data){
  171. $fields = [];
  172. if($data){
  173. $list = array_map(function($v){
  174. if(is_numeric($v)){
  175. if($v>10000) $v = ($v/10000)."万";
  176. }
  177. return $v;
  178. },$data);
  179. }
  180. return $list;
  181. }
  182. }