<?php

namespace app\admin\controller\inspection;

use app\common\controller\Backend;
use think\Db;

class Home extends Backend
{

    public function index()
    {
        return view();
    }

public function home(){
        // 今日巡检任务
        $task = count(Db::name('inspection_project')->whereTime('begintime','d')->select());
        // 今日上报隐患
        $warning = count(Db::name('inspection_warning')->whereTime('createtime','d')->select());
        // 总巡检人员
        $staff = count(Db::name('inspection_staff')->where('duty','巡检员')->select());
        // 总巡检任务
        $task_t = count(Db::name('inspection_project')->select());

        $this->assign ([
            'task' => $task,
            'warning' => $warning,
            'staff' => $staff,
            'task_t' => $task_t,

        ]);

        return $this->fetch('home');
    }

    // 巡检任务图
    public function task(){
        // 本周巡检任务总数
        $task = count(Db::name('inspection_project')->whereTime('begintime', 'w')->select());
        // 上周巡检任务总数
        $last_task = count(Db::name('inspection_project')->whereTime('begintime', 'last week')->select());
        // 巡检任务相比上周增长
        $per = $task-$last_task;


        // 本周完成任务总数
        $com_task = count(Db::name('inspection_project')->where('status', 1)
            ->whereTime('begintime', 'w') ->whereTime('endtime', 'w')->select());
        // 上周完成任务总数
        $last_com_task =  count(Db::name('inspection_project')->where('status', 1)
            ->whereTime('begintime', 'last week')->whereTime('endtime', 'last week')->select());
        // 完成任务相比上周增长
        $com_pre = $com_task-$last_com_task;




        // 巡检任务图

        $data = [];
        for ($i=-6; $i<1; ){

            $day = date("Y-m-d",strtotime("$i day"));
            // 日期区间查询
            $res = count(Db::name('inspection_project')
                ->where('begintime','between time',[$day.' 00:00:00', $day.' 23:59:59'])
                ->select());
            $data[$day]=$res;
            $i++;
        }

        $new_data = [];
        foreach ($data as $new_key => $new_val){
            $new_data['key'][] = $new_key;
            $new_data['val'][] = $new_val;
        }

        // 返回接口数据
        return json([
            "task"=>$task,
            "per"=>$per,
            "com_task"=>$com_task,
            "com_pre"=>$com_pre,
            "data"=>$new_data
        ]);

    }







    // 水库隐患图
    public function warning(){
         // 本周水库隐患总数
        $warning = count(Db::name('inspection_warning')->whereTime('createtime', 'w')->select());
        // 上周水库隐患总数
        $last_warning = count(Db::name('inspection_warning')->whereTime('createtime', 'last week')->select());
        // 水库隐患相比上周增长
        $per_warning = $warning-$last_warning;


        // 本周隐患任务总数
        $com_warning = count(Db::name('inspection_warning')
            ->whereTime('createtime', 'w')->select());
        // 上周隐患任务总数
        $last_com_warning =  count(Db::name('inspection_warning')
            ->whereTime('createtime', 'last week')->select());
        // 隐患任务相比上周增长
        $com_pre_warning = $com_warning-$last_com_warning;




        // 隐患任务图

        $data = [];
        for ($i=-6; $i<1; $i++){
            // 日期区间查询
            $day = date("Y-m-d",strtotime("$i day"));
            $res = count(
                Db::name('inspection_warning')
                ->where('createtime','between time',[ $day.' 00:00:00', $day.' 23:59:59'])
                ->select()
            );
            $data[$day]=$res;
        }

        $new_data = [];
        foreach ($data as $new_key => $new_val){
            $new_data['key'][] = $new_key;
            $new_data['val'][] = $new_val;
        }

        // 返回接口数据
        return json([
            "warning"=>$warning,
            "per_warning"=>$per_warning,
            "com_warning"=>$com_warning,
            "com_pre_warning"=>$com_pre_warning,
            "data"=>$new_data
        ]);

    }
}