'ID', 'album_id' => '画册ID', 'album_page_id' => '画册页ID', 'mall_id' => 'Mall ID', 'user_id' => 'User ID', 'begin_time' => '浏览开始时间', 'end_time' => '浏览结束时间', 'stay_time' => '浏览时长', 'date' => '日期', 'created_at' => '创建时间', 'updated_at' => '更新时间', ]; } public function getUser() { return $this->hasOne(User::class, ['id' => 'user_id'])->select('id,mobile,nickname,avatar_url,parent_id,username'); } public function getAlbum() { return $this->hasOne(AddonsAlbum::class, ['id' => 'album_id'])->select('id,title,goods_count'); } public function getorder() { return $this->hasOne(AddonsAlbumOrder::class, ['user_id' => 'user_id'])->select('id,amount,order_count,user_id'); } /** * @Author: ltm * @DateTime: 2022/2/15 0015 11:43 * @Copyright: copyright (c) 2021 广东七件事集团 * @param $data * @return string */ public static function setData(array $params){ try{ $is_again = 1; $todate = date("Y-m-d"); $visit_data = AddonsAlbumVisit::findOne(['album_id' => $params['album_id'],'mall_id'=>$params['mall_id'],'user_id'=>$params['user_id']]); $model = self::findOne(['album_id' => $params['album_id'],'album_page_id' => $params['album_page_id'],'user_id'=>$params['user_id'],'mall_id'=>$params['mall_id'],'date' => $todate]); if (!$model){ $model = new self(); $model->begin_time = time(); $model->stay_time = 0; $model->date = $todate; $model->created_at = time(); $model->loadDefaultValues(); }else{ $is_again = 2; $model->end_time = time(); if($params['post_type'] == 2){ $time_s = time() - $model->begin_time; if($time_s>500){ //挂页面不计数 $time_s = 500; } $model->stay_time = $time_s + $model->stay_time; $old_stay_time = ($time_s); $model->begin_time = 0; }else{ $old_stay_time = 0; $model->begin_time = time(); } } $model->mall_id = $params['mall_id']; if(!$model->load($params,'') || !$model->save()){ throw new Exception($model->getErrorMessage()); } $msg['status'] = $is_again; $msg['album_visit'] = $visit_data; $msg['stay_time'] = $old_stay_time; return $msg; }catch(\Exception $e){ self::$static_error = $e->getMessage(); return false; } } public static function handle($params){ $find = AddonsAlbum::getOne([['id' => $params['album_id'],'status' => StatusEnum::ENABLED]],true); $find_page = AddonsAlbumPage::getOne([['id'=> $params['album_page_id'],'status' => StatusEnum::ENABLED]],true); if(!$find||!$find_page){ self::$static_error = "画册不存在"; return false; } switch ($params['type']){ case 'views'; $user_res = AddonsAlbumVisit::setData($params); if($user_res['status'] == 1){ $params['visit_count'] = 1; } //智能画册汇总统计 if($params['post_type'] == 1){ //统计浏览时长发送了两次接口请求,过滤掉一次 $params['views_count'] = 1; }else{ $params['views_count'] = 0; } $params['album_visit'] = $user_res['album_visit']; $params['stop_time'] = $user_res['stay_time']??5; break; case 'shares'; $params['shares_count'] = 1; AddonsAlbumPageShare::setData($params); break; case 'shares_click'; $params['shares_click_count'] = 1; AddonsAlbumPageShare::setData($params); break; case 'goods_views'; $params['visit_count'] = 1; $params['goods_views_count'] = 1; AddonsAlbumGoodsVisit::setData($params); break; case 'goods_click'; $params['visit_count'] = 1; $params['goods_views_count'] = 1; AddonsAlbumGoodsVisit::setData($params); break; case 'order'; $res = AddonsAlbumOrder::setData($params); if($res['id']){ $params['pay_count'] = 0; }else{ $params['pay_count'] = 1; } AddonsAlbumGoodsVisit::setData($params); break; } $res = AddonsAlbumDateStatistics::setData($params); //单个画册进行统计 $album_id = AddonsAlbumStatistics::setData($params); return true; } }