审查视图

app/portal/controller/AdminStatisticsController.php 3.2 KB
董瑞恩 authored
1 2 3 4 5 6 7 8 9 10 11 12
<?php
/**
 * Created by PhpStorm.
 * User: ruidiudiu
 * Date: 2018/11/21
 * Time: 17:20
 */

namespace app\portal\controller;


use cmf\controller\AdminBaseController;
董瑞恩 authored
13 14
use think\Db;
董瑞恩 authored
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
/**
 * 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(){
董瑞恩 authored
31
        //医院总体时长统计
董瑞恩 authored
32 33 34 35 36
        $data=Db::name('order')
            ->alias('a')
            ->field('b.hospital,count(*) as num')
            ->join('equipment b','a.eq_name=b.name')
            ->group('b.hospital')
董瑞恩 authored
37 38 39 40
            ->select()->toArray();
        $hospital=array();
        $num=array();
        foreach ($data as $k=>$v){
董瑞恩 authored
41 42
            $hospital[$k]=$v['hospital'];
            $num[$k]=$v['num'];
董瑞恩 authored
43
        }
董瑞恩 authored
44
董瑞恩 authored
45 46
        $this->assign('hospital',json_encode($hospital));
        $this->assign('num',json_encode($num));
董瑞恩 authored
47
董瑞恩 authored
48
        //周统计
董瑞恩 authored
49
        $week=array();
董瑞恩 authored
50 51
        for ($i = 0; $i <= 30; $i++){
            $week[30-$i]=strtotime(date('Ymd',strtotime("-$i week")));
董瑞恩 authored
52
        }
董瑞恩 authored
53
        $Week=array();
董瑞恩 authored
54
        for ($i = 0; $i<30; $i++){
董瑞恩 authored
55
            $Week[$i]=[$week[$i],$week[$i+1]];
董瑞恩 authored
56
        }
董瑞恩 authored
57
        $Week_statistics=array();
董瑞恩 authored
58
        for ($i = 0; $i<30; $i++){
董瑞恩 authored
59
            $Week_statistics[]=Db::name('order')->where('start_time','between',$Week[$i])->count();
董瑞恩 authored
60
        }
董瑞恩 authored
61
        $this->assign('weekData',json_encode($Week_statistics));
董瑞恩 authored
62
        //月统计
董瑞恩 authored
63 64
        $month=array();
        for ($i = 0; $i <= 24; $i++){
董瑞恩 authored
65
            $month[24-$i]=strtotime(date('Y-m-1',strtotime("-$i Month")));
董瑞恩 authored
66
        }
董瑞恩 authored
67 68 69 70 71
        $Month=array();
        for ($i = 0; $i<24; $i++){
            $Month[$i]=[$month[$i],$month[$i+1]];
        }
        $Month_statistics=array();
董瑞恩 authored
72
        for ($i = 0; $i<24; $i++){
董瑞恩 authored
73 74 75 76
            $Month_statistics[]=Db::name('order')->where('start_time','between',$Month[$i])->count();
        }
        $this->assign('monthData',json_encode($Month_statistics));
董瑞恩 authored
77
        //时间段统计
董瑞恩 authored
78
        $interval=array();
董瑞恩 authored
79
        $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'";
董瑞恩 authored
80
        $interval[0]=Db::query($sql);
董瑞恩 authored
81
        $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'";
董瑞恩 authored
82
        $interval[1]=Db::query($sql);
董瑞恩 authored
83
        $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'";
董瑞恩 authored
84
        $interval[2]=Db::query($sql);
董瑞恩 authored
85
        $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'";
董瑞恩 authored
86
        $interval[3]=Db::query($sql);
董瑞恩 authored
87 88 89
        foreach ($interval as $k=>$v){
            $interval[$k]=$interval[$k][0]['num'];
        }
董瑞恩 authored
90
        $this->assign('interval',json_encode($interval));
董瑞恩 authored
91 92 93 94 95 96 97
        return $this->fetch();
    }




}