审查视图

app/portal/controller/AdminAllStatisticsController.php 1.9 KB
董瑞恩 authored
1 2 3 4 5 6 7 8 9 10 11 12
<?php
/**
 * Created by PhpStorm.
 * User: ruidiudiu
 * Date: 2018/11/23
 * Time: 11:34
 */

namespace app\portal\controller;


use app\portal\model\EquipmentModel;
董瑞恩 authored
13
use app\portal\model\OrderModel;
董瑞恩 authored
14
use cmf\controller\AdminBaseController;
董瑞恩 authored
15 16
use think\Db;
董瑞恩 authored
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
/**
 * Class AdminAllStatisticsController
 * @package app\portal\controller
 * @adminMenuRoot(
 *     'name'   =>'整体统计',
 *     'action' =>'index',
 *     'parent' =>'',
 *     'display'=> true,
 *     'order'  => 1,
 *     'icon'   =>'th',
 *     'remark' =>'整体统计'
 * )
 */
class AdminAllStatisticsController extends AdminBaseController{

    public function index(){
董瑞恩 authored
33
        $Order=new OrderModel();
董瑞恩 authored
34
        $data=$Order->alias('a')
董瑞恩 authored
35 36 37
            ->field('a.*,b.serial_number,b.hospital,count(a.eq_name) as num,sum(a.time) as sumTime')
            ->join('equipment b','a.eq_name=b.name')
            ->group('a.eq_name')
董瑞恩 authored
38
            ->order('start_time','desc')
董瑞恩 authored
39
            ->paginate(10)->each(function ($item){
董瑞恩 authored
40
                $item['average']=round($item['sumTime']/$item['num']);
董瑞恩 authored
41 42 43 44 45 46 47 48 49 50
                //计费故障次数
                $item['fault_time']=Db::name('fault')->where(['eq_name'=>$item['eq_name'],'fault_type'=>1])->count();
                //锁故障次数
                $item['fault_lock']=Db::name('fault')->where(['eq_name'=>$item['eq_name'],'fault_type'=>5])->count();
                //床故障次数
                $item['fault_bed']=Db::name('fault')->where(['eq_name'=>$item['eq_name'],'fault_type'=>['in',[2,3,4]]])->count();
                //其他故障次数
                $item['fault_other']=Db::name('fault')->where(['eq_name'=>$item['eq_name'],'fault_type'=>6])->count();
                //故障总数
                $item['fault']=Db::name('fault')->where(['eq_name'=>$item['eq_name']])->count();
董瑞恩 authored
51 52
                return $item;
            });
董瑞恩 authored
53 54 55


董瑞恩 authored
56 57 58 59 60 61
        $this->assign('data',$data);
        return $this->fetch();
    }


}