chengwl 4 years ago
parent
commit
282a4bca3e
3 changed files with 132 additions and 6 deletions
  1. 38 0
      controllers/HomeController.php
  2. 27 6
      controllers/IndexController.php
  3. 67 0
      lib/GA.php

+ 38 - 0
controllers/HomeController.php

@@ -0,0 +1,38 @@
+<?php
+
+namespace app\controllers;
+
+use Yii;
+use yii\filters\AccessControl;
+use yii\web\Controller;
+use yii\web\Response;
+use yii\filters\VerbFilter;
+use app\lib\GA;
+use app\models\ContentPage;
+use app\models\Trafficsource;
+use yii\data\Pagination;
+
+class HomeController extends Controller
+{
+  public function  json($status=1,$data=[],$msg=''){
+    $response= \Yii::$app->response;
+    $response->format = \yii\web\Response::FORMAT_JSON;
+    $response->data = [
+        'status'=>$status,
+        'data'=>$data,
+        'msg'=>$msg
+    ];
+    $response->send();
+      
+  }   
+
+  
+   
+
+}
+
+    
+
+
+
+

+ 27 - 6
controllers/IndexController.php

@@ -12,7 +12,7 @@ use app\models\ContentPage;
 use app\models\Trafficsource;
 use yii\data\Pagination;
 
-class IndexController extends Controller
+class IndexController extends \app\controllers\HomeController
 {
    
 
@@ -181,17 +181,18 @@ class IndexController extends Controller
         echo "addSource 任务全部完成"."<br/>";
       }
     }
+    
     public function actionStatistic(){
       $ga=new GA();
-      $store="supernova";
       $request = Yii::$app->request;
+      $store=$request->get('store',"supernova");
       $start_day=$request->get('start', date('Y-m-d',time()-3600*24*8));
-       \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;      $end_day = $request->get('end', date('Y-m-d',time()-3600*24));
+      $end_day = $request->get('end', date('Y-m-d',time()-3600*24));
+       \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;     
       //销量
       $sells=$ga->visitors_geo($store,$start_day,$end_day);
       $sellSku=$ga->productSku($store,$start_day,$end_day);
       $visitors=$ga->visitors_type($store,$start_day,$end_day);
-      \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
       return [
         'status'=>1,
         'data'=>[
@@ -200,15 +201,35 @@ class IndexController extends Controller
           'visitor'=>$visitors,
         ],
       ];
+    }
+    public function actionSkuinfo(){
+      $ga=new GA();
+      $request = Yii::$app->request;
+      $store=$request->get('store',"supernova");
+      $sku=$request->get('sku');
+      $sku="STW--Closure-Free Part-16";
+      if(!$sku){
+         $this->json(0,[],'参数错误');
+      }
+      $start_day=$request->get('start', date('Y-m-d',time()-3600*24*8));
+      $end_day = $request->get('end', date('Y-m-d',time()-3600*24));
+      $skuinfo=$ga->skuinfo($sku,$store,$start_day,$end_day);
+      dd($skuinfo);
+
+
+
+
+
+
       
-      echo "<pre>";
-      print_r($visitors);exit;
+
 
     }
 
 
 
 
+
     public function addContentpages($contentpages,$store){
         $i=1;
         $limit=20;

+ 67 - 0
lib/GA.php

@@ -375,11 +375,78 @@ class GA{
 
         $result=$this->getResults($reports);
          return $result;
+    }
+    public function skuinfo($sku,$store,$start_at,$end_at){
+        $analytics=self::getInstance($dp);
+        $dimensionArr=[
+            'productSku'=>'ga:productSku',
+        ];
+        $metricArr=[
+            'users'=>"ga:users",
+            'newUsers'=>"ga:newUsers",
+        ];
+       
+        $VIEW_ID = $this->getViewId($dp);//
+        $dateRange = new \Google_Service_AnalyticsReporting_DateRange();
+        $dateRange->setStartDate($start_at);
+        $dateRange->setEndDate($end_at);
+        $metrics=[];
+        $dimensions=[];
+        foreach($metricArr as $k=>$v){
+            $Metric = new \Google_Service_AnalyticsReporting_Metric();
+            $Metric->setExpression($v);
+            $Metric->setAlias($k);
+            array_push($metrics,$Metric);
+        }
+        foreach($dimensionArr as $k=>$v){
+            $Dimension = new \Google_Service_AnalyticsReporting_Dimension();
+            $Dimension->setName($v);
+            array_push($dimensions,$Dimension);
+        }
+        $skuFilter = new \Google_Service_AnalyticsReporting_DimensionFilter();
+        $skuFilter->setDimensionName("ga:productSku");
+        $skuFilter->setOperator("EXACT");
+        $skuFilter->setExpressions([$sku]);
+
+        $MetricFilterClause=new \Google_Service_AnalyticsReporting_MetricFilterClause();
+        $MetricFilterClause->setFilters(array($skuFilter));
+
+
+        $request = new \Google_Service_AnalyticsReporting_ReportRequest();
+        $request->setViewId($VIEW_ID);
+        $request->setDateRanges($dateRange);
+        $request->setMetrics($metrics);
+        $request->setDimensions($dimensions);
+        $request->setDimensionFilterClauses($MetricFilterClause);
+        // $request->setOrderBys($orderBy);
+
+        $body = new \Google_Service_AnalyticsReporting_GetReportsRequest();
+        $body->setReportRequests( array( $request) );
+        $reports= $analytics->reports->batchGet( $body );
+
+        $result=$this->getResults($reports);
+         return $result;
+
+
+
+
+
+
 
     }
 
 
 
+
+
+
+
+
+
+
+
+
+
     /**
      * Queries the Analytics Reporting API V4.
      *