|
@@ -1129,6 +1129,445 @@ class ROrderController extends AdminController{
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 根据服务类型导出一个月的订单折线图
|
|
|
|
+ *
|
|
|
|
+ */
|
|
|
|
+ public function actionExportLineChartForOneMonth()
|
|
|
|
+ {
|
|
|
|
+ Yii::$enableIncludePath = false;
|
|
|
|
+ Yii::import('application.extensions.PHPExcel.PHPExcel', 1);
|
|
|
|
+ $objPHPExcel = new PHPExcel();
|
|
|
|
+ $objSheet = $objPHPExcel->getActiveSheet();
|
|
|
|
+ $criteria = new EMongoCriteria();
|
|
|
|
+ $criteria->status('==',1);
|
|
|
|
+ $product = Product::model()->parse(CommonFn::getRowsFromCursor(Product::model()->findAll($criteria)));
|
|
|
|
+ $data = array();
|
|
|
|
+ $data[0][0] = '';
|
|
|
|
+ $days = date("t",mktime(0,0,0,date('m')-1,1,date('Y')));//获取上一个月总天数
|
|
|
|
+ foreach ($product as $key => $value){
|
|
|
|
+ $data[0][$key+1] = $value['type_str'];
|
|
|
|
+ /**
|
|
|
|
+ * 根据获取的产品类型,进行分类,将每一天相同服务类型的总订单存储到数组中,
|
|
|
|
+ */
|
|
|
|
+ for($i=1;$i<=$days;$i++){
|
|
|
|
+ $order_criteria = new EMongoCriteria();
|
|
|
|
+ $order_criteria->type('==',$value['type']);
|
|
|
|
+ $start_time = mktime(0,0,0,date('m')-1,$i,date('Y'));
|
|
|
|
+ $end_time = mktime(23,59,59,date('m')-1,$i,date('Y'));
|
|
|
|
+ $order_criteria->booking_time('>=',$start_time);
|
|
|
|
+ $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?'0':count($orders);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $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!$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
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('String','Worksheet!$I$1',null,1),//8
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('String','Worksheet!$J$1',null,1),//9
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('String','Worksheet!$K$1',null,1),//10
|
|
|
|
+ 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
|
|
|
|
+ );
|
|
|
|
+ $xLabels = array(
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('String','Worksheet!$A$2:$A$'.($days+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
|
|
|
|
+ );
|
|
|
|
+
|
|
|
|
+ $series = array(
|
|
|
|
+ new PHPExcel_Chart_DataSeries(
|
|
|
|
+ PHPExcel_Chart_DataSeries::TYPE_LINECHART,
|
|
|
|
+ PHPExcel_Chart_DataSeries::GROUPING_STANDARD,
|
|
|
|
+ range(0, count($datas)-1),
|
|
|
|
+ $labels,
|
|
|
|
+ $xLabels,
|
|
|
|
+ $datas
|
|
|
|
+ )
|
|
|
|
+ ); //图表框架
|
|
|
|
+
|
|
|
|
+ $layout=new PHPExcel_Chart_Layout();
|
|
|
|
+ $layout->setShowVal(true);
|
|
|
|
+ $areas = new PHPExcel_Chart_PlotArea(null,$series);
|
|
|
|
+ $legend = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_BOTTOM,$layout,false);
|
|
|
|
+ $title = new PHPExcel_Chart_Title("订单数角度对比(月)折线图");
|
|
|
|
+ $ytitle = new PHPExcel_Chart_Title("订单数");
|
|
|
|
+ $chart = new PHPExcel_Chart('line_chart',$title,$legend,$areas,true,false,null,$ytitle);
|
|
|
|
+ $chart->setTopLeftPosition("A1")->setBottomRightPosition("P31"); //图表位置
|
|
|
|
+
|
|
|
|
+ $objSheet->addChart($chart);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ $excel = 'Excel2007';
|
|
|
|
+ $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel,$excel);
|
|
|
|
+ $objWriter->setIncludeCharts(true); //图表必须
|
|
|
|
+ // $objWriter->save($dir.'/export.xls'); //生成excel文件
|
|
|
|
+ CommonFn::browser_export($excel,date('m')."月份订单数角度对比(月)折线图.xlsx"); //浏览器输出
|
|
|
|
+
|
|
|
|
+ CommonFn::SaveViaTempFile($objWriter);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 根据服务类型导出一个周/月的订单柱形图 同比
|
|
|
|
+ *
|
|
|
|
+ */
|
|
|
|
+ public function actionExportColumChartForOneMonth()
|
|
|
|
+ {
|
|
|
|
+ Yii::$enableIncludePath = false;
|
|
|
|
+ Yii::import('application.extensions.PHPExcel.PHPExcel', 1);
|
|
|
|
+ $week = Yii::app()->request->getParam('week','');
|
|
|
|
+ $objPHPExcel = new PHPExcel();
|
|
|
|
+ $objSheet = $objPHPExcel->getActiveSheet();
|
|
|
|
+ $criteria = new EMongoCriteria();
|
|
|
|
+ $criteria->status('==',1);
|
|
|
|
+ $product = Product::model()->parse(CommonFn::getRowsFromCursor(Product::model()->findAll($criteria)));
|
|
|
|
+ $data = array();
|
|
|
|
+ $data[0][0] = '';
|
|
|
|
+ if($week){
|
|
|
|
+ foreach ($product as $key => $value) {
|
|
|
|
+ $data[0][$key + 1] = $value['type_str'];
|
|
|
|
+ /**
|
|
|
|
+ * 根据获取的产品类型,进行分类,将每一天相同服务类型的总订单存储到数组中,
|
|
|
|
+ */
|
|
|
|
+ for ($i = 1; $i <= 7; $i++) {
|
|
|
|
+ $order_criteria = new EMongoCriteria();
|
|
|
|
+ $order_criteria->type('==', $value['type']);
|
|
|
|
+ $start_time = mktime(0, 0, 0, date('m'), date('d')-$i, date('Y'));
|
|
|
|
+ $end_time = mktime(23, 59, 59, date('m'), date('d')-$i, date('Y'));
|
|
|
|
+ $order_criteria->booking_time('>=', $start_time);
|
|
|
|
+ $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 ? '0' : count($orders);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ $days = date("t",mktime(0,0,0,date('m')-1,1,date('Y')));//获取上一个月总天数
|
|
|
|
+ foreach ($product as $key => $value){
|
|
|
|
+ $data[0][$key+1] = $value['type_str'];
|
|
|
|
+ /**
|
|
|
|
+ * 根据获取的产品类型,进行分类,将每一天相同服务类型的总订单存储到数组中,
|
|
|
|
+ */
|
|
|
|
+ for($i=1;$i<=$days;$i++){
|
|
|
|
+ $order_criteria = new EMongoCriteria();
|
|
|
|
+ $order_criteria->type('==',$value['type']);
|
|
|
|
+ $start_time = mktime(0,0,0,date('m')-1,$i,date('Y'));
|
|
|
|
+ $end_time = mktime(23,59,59,date('m')-1,$i,date('Y'));
|
|
|
|
+ $order_criteria->booking_time('>=',$start_time);
|
|
|
|
+ $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?'0':count($orders);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ $objSheet->fromArray($data);
|
|
|
|
+
|
|
|
|
+ //图表
|
|
|
|
+ if($week){
|
|
|
|
+ $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!$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
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('String','Worksheet!$I$1',null,1),//8
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('String','Worksheet!$J$1',null,1),//9
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('String','Worksheet!$K$1',null,1),//10
|
|
|
|
+ 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
|
|
|
|
+ );
|
|
|
|
+ $xLabels = array(
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('String','Worksheet!$A$2:$A$8',null,7),//取x轴刻度
|
|
|
|
+ );
|
|
|
|
+ $datas = array(
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$B$2:$B$8',null,7),//1
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$C$2:$C$8',null,7),//2
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$D$2:$D$8',null,7),//3
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$E$2:$E$8',null,7),//4
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$F$2:$F$8',null,7),//5
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$G$2:$G$8',null,7),//6
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$H$2:$H$8',null,7),//7
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$I$2:$I$8',null,7),//8
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$J$2:$J$8',null,7),//9
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$K$2:$K$8',null,7),//10
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$L$2:$L$8',null,7),//11
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$M$2:$M$8',null,7),//12
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$N$2:$N$8',null,7),//13
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$O$2:$O$8',null,7),//14
|
|
|
|
+ );
|
|
|
|
+ $name = '"同比数据分析(周)柱形图.xlsx"';
|
|
|
|
+ } else {
|
|
|
|
+ $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!$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
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('String','Worksheet!$I$1',null,1),//8
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('String','Worksheet!$J$1',null,1),//9
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('String','Worksheet!$K$1',null,1),//10
|
|
|
|
+ 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
|
|
|
|
+ );
|
|
|
|
+ $xLabels = array(
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('String','Worksheet!$A$2:$A$'.($days+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
|
|
|
|
+ );
|
|
|
|
+ $name = '"同比数据分析(月)柱形图.xlsx"';
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ $series = array(
|
|
|
|
+ new PHPExcel_Chart_DataSeries(
|
|
|
|
+ PHPExcel_Chart_DataSeries::TYPE_BARCHART,
|
|
|
|
+ PHPExcel_Chart_DataSeries::GROUPING_STANDARD,
|
|
|
|
+ range(0, count($datas)-1),
|
|
|
|
+ $labels,
|
|
|
|
+ $xLabels,
|
|
|
|
+ $datas
|
|
|
|
+ )
|
|
|
|
+ ); //图表框架
|
|
|
|
+
|
|
|
|
+ $layout=new PHPExcel_Chart_Layout();
|
|
|
|
+ $layout->setShowVal(true);
|
|
|
|
+ $areas = new PHPExcel_Chart_PlotArea(null,$series);
|
|
|
|
+ $legend = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_RIGHT,$layout,false);
|
|
|
|
+ $title = new PHPExcel_Chart_Title("同比数据分析");
|
|
|
|
+ $ytitle = new PHPExcel_Chart_Title("订单数");
|
|
|
|
+ $chart = new PHPExcel_Chart('line_chart',$title,$legend,$areas,true,false,null,$ytitle);
|
|
|
|
+ $chart->setTopLeftPosition("A1")->setBottomRightPosition("P31"); //图表位置
|
|
|
|
+
|
|
|
|
+ $objSheet->addChart($chart);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ $excel = 'Excel2007';
|
|
|
|
+ $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel,$excel);
|
|
|
|
+ $objWriter->setIncludeCharts(true); //图表必须
|
|
|
|
+ // $objWriter->save($dir.'/export.xls'); //生成excel文件
|
|
|
|
+ CommonFn::browser_export($excel,date('m').$name); //浏览器输出
|
|
|
|
+
|
|
|
|
+ CommonFn::SaveViaTempFile($objWriter);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 根据支付方式导出一个周/月的订单柱形图
|
|
|
|
+ */
|
|
|
|
+ public function actionExportColumChartForOneMonthByChannel()
|
|
|
|
+ {
|
|
|
|
+ Yii::$enableIncludePath = false;
|
|
|
|
+ Yii::import('application.extensions.PHPExcel.PHPExcel', 1);
|
|
|
|
+ $week = Yii::app()->request->getParam('week','');
|
|
|
|
+ $objPHPExcel = new PHPExcel();
|
|
|
|
+ $objSheet = $objPHPExcel->getActiveSheet();
|
|
|
|
+ $criteria = new EMongoCriteria();
|
|
|
|
+ $channel = ROrder::$channel_option;
|
|
|
|
+ $data = array();
|
|
|
|
+ $data[0][0] = '';
|
|
|
|
+ $k =1;
|
|
|
|
+ if($week){
|
|
|
|
+ foreach ($channel as $key => $value) {
|
|
|
|
+
|
|
|
|
+ $data[0][$k] = $value['name'];
|
|
|
|
+ /**
|
|
|
|
+ * 根据获取的产品类型,进行分类,将每一天相同服务类型的总订单存储到数组中,
|
|
|
|
+ */
|
|
|
|
+ for ($i = 1; $i <= 7; $i++) {
|
|
|
|
+ $order_criteria = new EMongoCriteria();
|
|
|
|
+ $order_criteria->channel('==',$key);
|
|
|
|
+ $start_time = mktime(0, 0, 0, date('m'), date('d')-$i, date('Y'));
|
|
|
|
+ $end_time = mktime(23, 59, 59, date('m'), date('d')-$i, date('Y'));
|
|
|
|
+ $order_criteria->booking_time('>=', $start_time);
|
|
|
|
+ $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][$k] = count($orders) == 0 ? '0' : count($orders);
|
|
|
|
+ }
|
|
|
|
+ $k ++;
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ $days = date("t",mktime(0,0,0,date('m')-1,1,date('Y')));//获取上一个月总天数
|
|
|
|
+ foreach ($channel as $key => $value){
|
|
|
|
+ $data[0][$k] = $value['name'];
|
|
|
|
+ /**
|
|
|
|
+ * 根据获取的支付类型,进行分类,将每一天相同服务类型的总订单存储到数组中,
|
|
|
|
+ */
|
|
|
|
+ for($i=1;$i<=$days;$i++){
|
|
|
|
+ $order_criteria = new EMongoCriteria();
|
|
|
|
+ $order_criteria->channel('==',$key);
|
|
|
|
+ $start_time = mktime(0,0,0,date('m')-1,$i,date('Y'));
|
|
|
|
+ $end_time = mktime(23,59,59,date('m')-1,$i,date('Y'));
|
|
|
|
+ $order_criteria->booking_time('>=',$start_time);
|
|
|
|
+ $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][$k] = count($orders) == 0?'0':count($orders);
|
|
|
|
+ }
|
|
|
|
+ $k++;
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ $objSheet->fromArray($data);
|
|
|
|
+
|
|
|
|
+ //图表
|
|
|
|
+ if($week){
|
|
|
|
+ $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!$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
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('String','Worksheet!$I$1',null,1),//8
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('String','Worksheet!$J$1',null,1),//9
|
|
|
|
+ );
|
|
|
|
+ $xLabels = array(
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('String','Worksheet!$A$2:$A$8',null,9),//取x轴刻度
|
|
|
|
+ );
|
|
|
|
+ $datas = array(
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$B$2:$B$8',null,9),//1
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$C$2:$C$8',null,9),//2
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$D$2:$D$8',null,9),//3
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$E$2:$E$8',null,9),//4
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$F$2:$F$8',null,9),//5
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$G$2:$G$8',null,9),//6
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$H$2:$H$8',null,9),//7
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$I$2:$I$8',null,9),//8
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$J$2:$J$8',null,9),//9
|
|
|
|
+ );
|
|
|
|
+ $name = "支付方式分析(周)柱形图.xlsx";
|
|
|
|
+ } else {
|
|
|
|
+ $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!$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
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('String','Worksheet!$I$1',null,1),//8
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('String','Worksheet!$J$1',null,1),//9
|
|
|
|
+ );
|
|
|
|
+ $xLabels = array(
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('String','Worksheet!$A$2:$A$'.($days+1),null,9),//取x轴刻度
|
|
|
|
+ );
|
|
|
|
+ $datas = array(
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$B$2:$B$'.($days+1),null,9),//1
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$C$2:$C$'.($days+1),null,9),//2
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$D$2:$D$'.($days+1),null,9),//3
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$E$2:$E$'.($days+1),null,9),//4
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$F$2:$F$'.($days+1),null,9),//5
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$G$2:$G$'.($days+1),null,9),//6
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$H$2:$H$'.($days+1),null,9),//7
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$I$2:$I$'.($days+1),null,9),//8
|
|
|
|
+ new PHPExcel_Chart_DataSeriesValues('Number','Worksheet!$J$2:$J$'.($days+1),null,9),//9
|
|
|
|
+ );
|
|
|
|
+ $name = "支付方式分析(月)柱形图.xlsx";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ $series = array(
|
|
|
|
+ new PHPExcel_Chart_DataSeries(
|
|
|
|
+ PHPExcel_Chart_DataSeries::TYPE_BARCHART,
|
|
|
|
+ PHPExcel_Chart_DataSeries::GROUPING_STANDARD,
|
|
|
|
+ range(0, count($datas)-1),
|
|
|
|
+ $labels,
|
|
|
|
+ $xLabels,
|
|
|
|
+ $datas
|
|
|
|
+ )
|
|
|
|
+ ); //图表框架
|
|
|
|
+
|
|
|
|
+ $layout=new PHPExcel_Chart_Layout();
|
|
|
|
+ $layout->setShowVal(true);
|
|
|
|
+ $areas = new PHPExcel_Chart_PlotArea(null,$series);
|
|
|
|
+ $legend = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_RIGHT,$layout,false);
|
|
|
|
+ $title = new PHPExcel_Chart_Title("支付方式分析");
|
|
|
|
+ $ytitle = new PHPExcel_Chart_Title("订单数");
|
|
|
|
+ $chart = new PHPExcel_Chart('line_chart',$title,$legend,$areas,true,false,null,$ytitle);
|
|
|
|
+ $chart->setTopLeftPosition("A1")->setBottomRightPosition("P31"); //图表位置
|
|
|
|
+
|
|
|
|
+ $objSheet->addChart($chart);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ $excel = 'Excel2007';
|
|
|
|
+ $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel,$excel);
|
|
|
|
+ $objWriter->setIncludeCharts(true); //图表必须
|
|
|
|
+ // $objWriter->save($dir.'/export.xls'); //生成excel文件
|
|
|
|
+
|
|
|
|
+ CommonFn::browser_export($excel,date('m').$name); //浏览器输出
|
|
|
|
+
|
|
|
|
+ CommonFn::SaveViaTempFile($objWriter);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
|
|