AddonsAlbumStatistics.php 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. <?php
  2. namespace addons\Album\common\models;
  3. use common\models\user\User;
  4. use Yii;
  5. use yii\db\Exception;
  6. /**
  7. * This is the model class for table "qimall_addons_album_statistics".
  8. *
  9. * @property int $id ID
  10. * @property int $mall_id 商城ID
  11. * @property int|null $visit_count 访问量,一个会员最多占一个访问量
  12. * @property int $views_count 浏览量
  13. * @property int $shares_click_count 分享后用户点击访问商品统计
  14. * @property int $shares_count 分享量
  15. * @property int $stop_time 停留时长单位(秒)
  16. * @property int|null $goods_click_count 商品点击
  17. * @property int|null $goods_views_count 商品访问统计
  18. * @property int|null $order_count 订单统计
  19. * @property int $created_at 创建时间
  20. * @property int $updated_at 更新时间
  21. * @property float|null $goods_amount 成交金额
  22. * @property int|null $album_id 智能画册ID
  23. * @property int|null $pay_count 支付人数
  24. */
  25. class AddonsAlbumStatistics extends \common\models\base\BaseActiveRecord
  26. {
  27. /**
  28. * {@inheritdoc}
  29. */
  30. public static function tableName()
  31. {
  32. return '{{%addons_album_statistics}}';
  33. }
  34. /**
  35. * {@inheritdoc}
  36. */
  37. public function rules()
  38. {
  39. return [
  40. [['mall_id'], 'required'],
  41. [['mall_id', 'visit_count', 'views_count', 'shares_click_count', 'shares_count', 'stop_time', 'goods_click_count', 'goods_views_count', 'order_count', 'created_at', 'updated_at', 'album_id', 'pay_count'], 'integer'],
  42. [['goods_amount'], 'number'],
  43. ];
  44. }
  45. /**
  46. * {@inheritdoc}
  47. */
  48. public function attributeLabels()
  49. {
  50. return [
  51. 'id' => 'ID',
  52. 'mall_id' => '商城ID',
  53. 'visit_count' => '访问量,一个会员最多占一个访问量',
  54. 'views_count' => '浏览量',
  55. 'shares_click_count' => '分享后用户点击访问商品统计',
  56. 'shares_count' => '分享量',
  57. 'stop_time' => '停留时长单位(秒)',
  58. 'goods_click_count' => '商品点击',
  59. 'goods_views_count' => '商品访问统计',
  60. 'order_count' => '订单统计',
  61. 'created_at' => '创建时间',
  62. 'updated_at' => '更新时间',
  63. 'goods_amount' => '成交金额',
  64. 'album_id' => '智能画册ID',
  65. 'pay_count' => '支付人数',
  66. ];
  67. }
  68. public function getUser()
  69. {
  70. return $this->hasOne(User::class, ['id' => 'user_id'])->select('id,mobile,nickname,avatar_url,parent_id,username');
  71. }
  72. public function getAlbum()
  73. {
  74. return $this->hasOne(AddonsAlbum::class, ['id' => 'album_id'])->select('id,title,goods_count');
  75. }
  76. /**
  77. * 秒数转时分格式
  78. * @param $time int
  79. * @author jack
  80. * @throws string
  81. * @return string
  82. */
  83. public static function sec2Time($time)
  84. {
  85. $value = [
  86. "years" => 0, "days" => 0, "hours" => 0,
  87. "minutes" => 0, "seconds" => 0,
  88. ];
  89. if ($time >= 31556926) {
  90. $value["years"] = floor($time/31556926);
  91. $time = ($time%31556926);
  92. }
  93. if ($time >= 86400) {
  94. $value["days"] = floor($time/86400);
  95. $time = ($time%86400);
  96. }
  97. if ($time >= 3600) {
  98. $value["hours"] = floor($time/3600);
  99. $time = ($time%3600);
  100. }
  101. if ($time >= 60) {
  102. $value["minutes"] = floor($time/60);
  103. $time = ($time%60);
  104. }
  105. $value["seconds"] = floor($time);
  106. $t = '';
  107. if($value["years"]>0) $t .= $value["years"] . "年";
  108. if($value["days"]>0) $t .= $value["days"] . "天";
  109. if($value["hours"]>0) $t .= $value["hours"] . "小时";
  110. if($value["minutes"]>0) $t .= $value["minutes"] . "分";
  111. if($value["seconds"]>0) $t .= $value["seconds"] . "秒";
  112. return $t;
  113. }
  114. /**
  115. * @Author: ltm
  116. * @DateTime: 2022/2/15 0015 11:43
  117. * @Copyright: copyright (c) 2021 广东七件事集团
  118. * @param $data
  119. * @return string
  120. */
  121. public static function setData(array $params){
  122. try{
  123. $model = self::findOne(['album_id'=>$params['album_id'],'mall_id'=>$params['mall_id']]);
  124. if (!$model){
  125. $model = new self();
  126. $model->created_at = time();
  127. $model->loadDefaultValues();
  128. }else{
  129. $model->updated_at = time();
  130. if(!$params['album_visit']) $model->visit_count += $params['visit_count'];
  131. if($params['views_count']) $model->views_count += $params['views_count'];
  132. if($params['shares_count']) $model->shares_count += $params['shares_count'];
  133. if($params['shares_click_count']) $model->shares_click_count += $params['shares_click_count'];
  134. if($params['goods_views_count']) $model->goods_views_count += $params['goods_views_count'];
  135. if($params['goods_click_count']) $model->goods_click_count += $params['goods_click_count'];
  136. if($params['order_count']) $model->order_count += $params['order_count'];
  137. if($params['goods_amount']) $model->goods_amount += $params['goods_amount'];
  138. if($params['pay_count']) $model->pay_count += $params['pay_count'];
  139. if($params['stop_time']) $model->stop_time += $params['stop_time'];
  140. unset($params['album_visit'],$params['order_count'],$params['goods_amount'],$params['pay_count'],$params['visit_count']);
  141. unset($params['views_count'],$params['shares_count'],$params['shares_click_count'],$params['goods_views_count'],$params['goods_click_count'],$params['stop_time']);
  142. }
  143. $model->mall_id = $params['mall_id'];
  144. if(!$model->load($params,'') || !$model->save()){
  145. throw new Exception($model->getErrorMessage());
  146. }
  147. return $model;
  148. }catch(\Exception $e){
  149. self::$static_error = $e->getMessage();
  150. return false;
  151. }
  152. }
  153. }