AdminStatisticsController.php
2.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<?php
/**
* Created by PhpStorm.
* User: ruidiudiu
* Date: 2018/11/21
* Time: 17:20
*/
namespace app\portal\controller;
use cmf\controller\AdminBaseController;
use think\Db;
/**
* Class AdminStatisticsController
* @package app\portal\controller
* @adminMenuRoot(
* 'name' =>'数据统计',
* 'action' =>'index',
* 'parent' =>'',
* 'display'=> true,
* 'order' => 1,
* 'icon' =>'th',
* 'remark' =>'数据统计'
* )
*/
class AdminStatisticsController extends AdminBaseController{
public function index(){
//周统计
$week=array();
for ($i = 0; $i <= 15; $i++){
$week[15-$i]=strtotime(date('Ymd',strtotime("-$i week")));
}
$Week=array();
for ($i = 0; $i<15; $i++){
$Week[$i]=[$week[$i],$week[$i+1]];
}
$Week_statistics=array();
for ($i = 0; $i<15; $i++){
$Week_statistics[]=Db::name('order')->where('start_time','between',$Week[$i])->count();
}
$this->assign('weekData',json_encode($Week_statistics));
//月统计
$month=array();
for ($i = 0; $i <= 24; $i++){
$month[24-$i]=strtotime(date('Y-m-1',strtotime("-$i Month")));
}
$Month=array();
for ($i = 0; $i<24; $i++){
$Month[$i]=[$month[$i],$month[$i+1]];
}
$Month_statistics=array();
for ($i = 0; $i<24; $i++){
$Month_statistics[]=Db::name('order')->where('start_time','between',$Month[$i])->count();
}
$this->assign('monthData',json_encode($Month_statistics));
//时间段统计
$interval=array();
$sql="SELECT count(*) as num FROM sleep_order where FROM_UNIXTIME(start_time,'%H:%i:%S')>'00:00:00' AND FROM_UNIXTIME(start_time,'%H:%i:%S')<'07:00:00' OR FROM_UNIXTIME(start_time,'%H:%i:%S')>'21:00:00' AND FROM_UNIXTIME(start_time,'%H:%i:%S')<'24:00:00'";
$interval[0]=Db::query($sql);
$sql="SELECT count(*) as num FROM sleep_order where FROM_UNIXTIME(start_time,'%H:%i:%S')>'07:00:00' AND FROM_UNIXTIME(start_time,'%H:%i:%S')<'12:00:00'";
$interval[1]=Db::query($sql);
$sql="SELECT count(*) as num FROM sleep_order where FROM_UNIXTIME(start_time,'%H:%i:%S')>'12:00:00' AND FROM_UNIXTIME(start_time,'%H:%i:%S')<'17:00:00'";
$interval[2]=Db::query($sql);
$sql="SELECT count(*) as num FROM sleep_order where FROM_UNIXTIME(start_time,'%H:%i:%S')>'17:00:00' AND FROM_UNIXTIME(start_time,'%H:%i:%S')<'21:00:00'";
$interval[3]=Db::query($sql);
foreach ($interval as $k=>$v){
$interval[$k]=$interval[$k][0]['num'];
}
$this->assign('interval',json_encode($interval));
dump($interval);
return $this->fetch();
}
}