Dashboard.php 3.2 KB
<?php

namespace app\admin\controller;

use app\admin\model\Admin;
use app\admin\model\User;
use app\common\controller\Backend;
use app\common\model\Attachment;
use fast\Date;
use think\Db;

/**
 * 控制台
 *
 * @icon   fa fa-dashboard
 * @remark 用于展示当前系统中的统计数据、统计报表及重要实时数据
 */
class Dashboard extends Backend
{

    /**
     * 查看
     */
    public function index()
    {
        //项目总览
        $project_overview_chart=Db::name("project")
            ->field("project_name as name,all_working_hours as value")
            ->select();
        //查询所有项目的工作时长
        $project_overview=Db::name("project")
            ->alias("a")
            ->join("user b","a.user_id=b.id")
            ->field("a.*,b.username")
            ->order("all_working_hours desc")
            ->limit(4)
            ->select();
        $project=Db::name("project")
            ->alias("a")
            ->join("user b","a.user_id=b.id")
            ->field("a.*,b.username")
            ->order("all_working_hours desc")
            ->limit(4)
            ->select();

        $quick_entrance=Db::name("project")
            ->alias("a")
            ->join("user b","a.user_id=b.id")
            ->field("a.*,b.username")
            ->order("id desc")
            ->limit(8)
            ->select();

        //工时统计
        $project_statistics=Db::name("project")
            ->order("all_working_hours desc")
            ->field("project_name as name,all_working_hours,starttime")
            ->select();
        $department_statistics=Db::name("department")
            ->alias("a")
            ->join("project b","b.department_id=a.id")
            ->order("all_working_hours desc")
            ->group("a.id")
            ->field("a.name, ROUND(SUM(all_working_hours), 2) as all_working_hours,starttime")
            ->select();
        $admin_statistics=Db::name("user")
            ->alias("a")
            ->join("project b","b.user_id=a.id")
            ->order("all_working_hours desc")
            ->field("username as name,ROUND(SUM(all_working_hours), 2) as all_working_hours,starttime")
            ->group("a.id")
            ->select();
        $work_hour_statistics=[
            'project_statistics'=>$project_statistics,
            'department_statistics'=>$department_statistics,
            'admin_statistics'=>$admin_statistics,
        ];
        $this->view->assign([
            "project_overview"=>$project_overview,
            "quick_entrance"=>$quick_entrance,
            "project"=>$project,
            "work_hour_statistics"=>$work_hour_statistics,
            "project_overview_chart"=>$project_overview_chart
            ]);
        return $this->view->fetch();
    }
    public function projectinfo($id){
        $row=Db::name('project')
            ->alias("a")
            ->join("department b","a.department_id=b.id")
            ->join("user c","a.user_id=c.id")
            ->field("a.id,project_name,image,a.createtime,a.starttime,a.endtime,a.all_working_hours,b.name as department_name, c.username")
            ->where("a.id",$id)
            ->find();
        $this->view->assign("row", $row);
        return $this->view->fetch();
    }
}