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++;
          }
        }

    }

  }