north 8 lat temu
rodzic
commit
3647d373ac
1 zmienionych plików z 44 dodań i 31 usunięć
  1. 44 31
      www/protected/controllers/ROrderController.php

+ 44 - 31
www/protected/controllers/ROrderController.php

@@ -1239,14 +1239,14 @@ class ROrderController extends AdminController{
     }
 
     /**
-     * 根据服务类型导出一个周/月的订单柱形图 同比
+     * 根据服务类型导出一个周/月的订单柱形图 同比 三周的数据  横轴为服务项目
      *
      */
     public function actionExportColumChartForOneMonth()
     {
         Yii::$enableIncludePath = false;
         Yii::import('ext.phpexcel.PHPExcel', 1);
-        $week = Yii::app()->request->getParam('week','');
+        $week = Yii::app()->request->getParam('week','1');
         $objPHPExcel = new PHPExcel();
         $objSheet = $objPHPExcel->getActiveSheet();
         $criteria = new EMongoCriteria();
@@ -1257,11 +1257,24 @@ class ROrderController extends AdminController{
         if($week){
             $days = 7;
             foreach ($product as $key => $value) {
-                $data[0][$key + 1] = $value['type_str'];
+                $data[0][$key + 1] = $value['name'];
                 /**
-                 * 根据获取的产品类型,进行分类,将每一相同服务类型的总订单存储到数组中,
+                 * 根据获取的产品类型,进行分类,将每一相同服务类型的总订单存储到数组中,
                  */
-                for ($i = 1; $i <= $days; $i++) {
+                for ($i=0;$i<=2;$i++){
+                    $order_criteria = new EMongoCriteria();
+                    $order_criteria->type('==', $value['type']);
+                    //1 7 8 14 15 21
+                    $start_time = mktime(0, 0, 0, date('m'), date('d')-(7*$i+1), date('Y'));
+                    $end_time = mktime(23, 59, 59, date('m'), date('d')-(($i+1)*7), date('Y'));
+                    $order_criteria->booking_time('>=', $start_time);
+                    $order_criteria->booking_time('<=', $end_time);
+                    $orders = ROrder::model()->findAll($order_criteria);
+                    $data[$i+1][0] = date('m-d', $start_time);
+                    $data[$i+1][$key+1] = count($orders) == 0?1:count($orders)+1;
+                    $data[$i+1][$key + 1] = count($orders) == 0 ? '0' : count($orders);
+                }
+             /*   for ($i = 1; $i <= $days; $i++) {
                     $order_criteria = new EMongoCriteria();
                     $order_criteria->type('==', $value['type']);
                     $start_time = mktime(0, 0, 0, date('m'), date('d')-$i, date('Y'));
@@ -1270,11 +1283,12 @@ class ROrderController extends AdminController{
                     $order_criteria->booking_time('<=', $end_time);
                     $orders = ROrder::model()->findAll($order_criteria);
                     $data[$i][0] = date('m-d', $start_time);
-                    //$data[$i][$key+1] = count($orders) == 0?1:count($orders)+1;
+                    $data[$i][$key+1] = count($orders) == 0?1:count($orders)+1;
                     $data[$i][$key + 1] = count($orders) == 0 ? '0' : count($orders);
-                }
+                }*/
             }
-            $name = '"同比数据分析(周)柱形图.xlsx"';
+
+            $name = '同比数据分析(周)柱形图.xlsx';
         } else {
             $days = date("t",mktime(0,0,0,date('m')-1,1,date('Y')));//获取上一个月总天数
             foreach ($product as $key => $value){
@@ -1296,18 +1310,17 @@ class ROrderController extends AdminController{
                 }
 
             }
-            $name = '"同比数据分析(月)柱形图.xlsx"';
+            $name = '同比数据分析(月)柱形图.xlsx';
         }
 
-
         $objSheet->fromArray($data);
 
         //图表
         $labels = array(
-            new PHPExcel_Chart_DataSeriesValues('String','Worksheet!$B$1',null,1),//1
-            new PHPExcel_Chart_DataSeriesValues('String','Worksheet!$C$1',null,1),//2
-            new PHPExcel_Chart_DataSeriesValues('String','Worksheet!$D$1',null,1),//3
-            new PHPExcel_Chart_DataSeriesValues('String','Worksheet!$E$1',null,1),//4
+            new PHPExcel_Chart_DataSeriesValues('String','Worksheet!$A$2',null,1),//1
+            new PHPExcel_Chart_DataSeriesValues('String','Worksheet!$A$3',null,1),//2
+            new PHPExcel_Chart_DataSeriesValues('String','Worksheet!$A$4',null,1),//3
+            /*new PHPExcel_Chart_DataSeriesValues('String','Worksheet!$E$1',null,1),//4
             new PHPExcel_Chart_DataSeriesValues('String','Worksheet!$F$1',null,1),//5
             new PHPExcel_Chart_DataSeriesValues('String','Worksheet!$G$1',null,1),//6
             new PHPExcel_Chart_DataSeriesValues('String','Worksheet!$H$1',null,1),//7
@@ -1317,26 +1330,26 @@ class ROrderController extends AdminController{
             new PHPExcel_Chart_DataSeriesValues('String','Worksheet!$L$1',null,1),//11
             new PHPExcel_Chart_DataSeriesValues('String','Worksheet!$M$1',null,1),//12
             new PHPExcel_Chart_DataSeriesValues('String','Worksheet!$N$1',null,1),//13
-            new PHPExcel_Chart_DataSeriesValues('String','Worksheet!$O$1',null,1),//14
+            new PHPExcel_Chart_DataSeriesValues('String','Worksheet!$O$1',null,1),//14*/
         );
         $xLabels = array(
-            new PHPExcel_Chart_DataSeriesValues('String','Worksheet!$A$2:$A$'.($days+1),null,14),//取x轴刻度
+            new PHPExcel_Chart_DataSeriesValues('String','Worksheet!$B$1:$O$1',null,14),//取x轴刻度
         );
         $datas = array(
-            new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$B$2:$B$'.($days+1),null,14),//1
-            new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$C$2:$C$'.($days+1),null,14),//2
-            new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$D$2:$D$'.($days+1),null,14),//3
-            new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$E$2:$E$'.($days+1),null,14),//4
-            new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$F$2:$F$'.($days+1),null,14),//5
-            new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$G$2:$G$'.($days+1),null,14),//6
-            new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$H$2:$H$'.($days+1),null,14),//7
-            new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$I$2:$I$'.($days+1),null,14),//8
-            new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$J$2:$J$'.($days+1),null,14),//9
-            new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$K$2:$K$'.($days+1),null,14),//10
-            new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$L$2:$L$'.($days+1),null,14),//11
-            new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$M$2:$M$'.($days+1),null,14),//12
-            new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$N$2:$N$'.($days+1),null,14),//13
-            new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$O$2:$O$'.($days+1),null,14),//14
+            new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$B$2:$B$15',null,14),//1
+            new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$C$2:$C$15',null,14),//2
+            new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$D$2:$D$15',null,14),//3
+            new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$E$2:$E$15',null,14),//4
+            new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$F$2:$F$15',null,14),//5
+            new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$G$2:$G$15',null,14),//6
+            new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$H$2:$H$15',null,14),//7
+            new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$I$2:$I$15',null,14),//8
+            new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$J$2:$J$15',null,14),//9
+            new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$K$2:$K$15',null,14),//10
+            new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$L$2:$L$15',null,14),//11
+            new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$M$2:$M$15',null,14),//12
+            new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$N$2:$N$15',null,14),//13
+            new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$O$2:$O$15',null,14),//14
         );
 
         /*if($week){
@@ -1420,7 +1433,7 @@ class ROrderController extends AdminController{
             new PHPExcel_Chart_DataSeries(
                 PHPExcel_Chart_DataSeries::TYPE_BARCHART,
                 PHPExcel_Chart_DataSeries::GROUPING_STANDARD,
-                range(0, count($datas)-1),
+                range(0, count($labels)-1),
                 $labels,
                 $xLabels,
                 $datas