request; \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; $store = $request->get('store', "supernova"); $limit = $request->get('limit', "10"); $page = $request->get('page', "1"); $page=$page-1>=0?$page-1:0; $where=[]; if(!$store){ return ['status'=>false,'msg'=>"参数异常"]; } $where['store']=$store; $query=ContentPage::find()->where(["store"=>$where]); $count = $query->count(); $pagination = new Pagination(['totalCount' => $count,'pageSize'=>$limit,'page'=>$page]); $items = $query->offset($pagination->offset) ->limit($pagination->limit) ->orderBy([ 'pageviews'=>SORT_DESC, 'id'=>SORT_DESC ]) ->all(); foreach($items as $k=>$v){ $items[$k]['created_at']=date('Y-m-d H:i:s',$v['created_at']); } $data=[ 'total'=>$count, 'items'=>$items, ]; return [ 'code' => 200, 'data'=>$data, 'status'=>true ]; } public function actionSynsdata(){ $ga=new GA(); $store="supernova"; // $start_day= $data=$ga->trafficsource($store); $this->addSource($data,$store); exit; // $contentpages=$ga->contentpages($store); // $this->addContentpages($contentpages,$store); } public function addSource($data,$store){ $i=1; $limit=200; $modelKey=[ 'date', 'store', 'source', 'channelGrouping', 'landingPagePath', 'keyword', 'socialNetwork', 'users', 'newUsers', 'sessions', 'bounceRate', 'pageviewsPerSession', 'avgSessionDuration', 'transactionsPerVisit', 'transactions', 'transactionRevenue', 'created_at', ]; if(!empty($data)){ $list=[]; foreach($data as $k=>$v){ $item=[ date('Y-m-d',strtotime($v['date'])), $store, $v['source'], $v['channelGrouping'], $v['landingPagePath']!=="(not set)"?$v["landingPagePath"]:"", $v['keyword']!=="(not set)"?$v['keyword']:"", $v['socialNetwork']!=="(not set)"?$v['socialNetwork']:"", $v['users'], $v['uniquePageviews'], $v['sessions'], $v['bounceRate'], $v['pageviewsPerSession'], $v['avgSessionDuration'], $v['transactionsPerVisit'], $v['transactions'], $v['transactionRevenue'], time(), ]; $list[]=$item; if($i%$limit==0||$i==count($data)){ echo "
"; print_r($list);exit; \Yii::$app->db->createCommand()->batchInsert(Trafficsource::tableName(), $modelKey, $list)->execute(); $list=[]; } $i++; } } } public function addContentpages($contentpages,$store){ $i=1; $limit=20; $modelKey=[ 'pagePath', 'store', 'date', 'pageviews', 'uniquePageviews', 'avgTimeOnPage', 'entrances', 'bounceRate', 'exitRate', 'pageValue', 'created_at', ]; if(!empty($contentpages)){ $list=[]; foreach($contentpages as $k=>$v){ $item=[ $v['pagePath'], $store, date('Y-m-d',strtotime($v['date'])), $v['pageviews'], $v['uniquePageviews'], $v['avgTimeOnPage'], $v['entrances'], $v['bounceRate'], $v['exitRate'], $v['pageValue'], time(), ]; $list[]=$item; if($i%$limit==0||$i==count($contentpages)){ \Yii::$app->db->createCommand()->batchInsert(ContentPage::tableName(), $modelKey, $list)->execute(); $list=[]; } $i++; } } } }