diff --git a/apis/dashboard/dashboard.go b/apis/dashboard/dashboard.go index 3a505a5..b22e6ad 100644 --- a/apis/dashboard/dashboard.go +++ b/apis/dashboard/dashboard.go @@ -13,17 +13,32 @@ import ( func InitData(c *gin.Context) { var ( - err error - workOrderCount map[string]int // 工单数量统计 + err error + count map[string]int // 工单数量统计 + ranks []service.Ranks ) - workOrderCount, err = service.WorkOrderCount(c) + statistics := service.Statistics{ + StartTime: "", + EndTime: "", + } + + // 查询工单类型数据统计 + count, err = statistics.WorkOrderCount(c) if err != nil { - app.Error(c, -1, err, "") + app.Error(c, -1, err, "查询工单类型数据统计失败") + return + } + + // 查询工单数据排名 + ranks, err = statistics.WorkOrderRanks() + if err != nil { + app.Error(c, -1, err, "查询提交工单排名数据失败") return } app.OK(c, map[string]interface{}{ - "workOrderCount": workOrderCount, + "count": count, + "ranks": ranks, }, "") } diff --git a/pkg/service/dashboard.go b/pkg/service/dashboard.go index 81e6dab..31ee44c 100644 --- a/pkg/service/dashboard.go +++ b/pkg/service/dashboard.go @@ -3,6 +3,7 @@ package service import ( "database/sql" "ferry/global/orm" + "ferry/models/process" "ferry/pkg/pagination" "github.com/gin-gonic/gin" @@ -12,6 +13,23 @@ import ( @Author : lanyulei */ +type Ranks struct { + Name string `json:"name"` + Total int `json:"total"` +} + +type Statistics struct { + StartTime string `json:"start_time"` + EndTime string `json:"end_time"` +} + +func NewStatistics(startTime string, endTime string) *Statistics { + return &Statistics{ + StartTime: startTime, + EndTime: endTime, + } +} + // 查询周统计数据 func WeeklyStatistics() (statisticsData map[string][]interface{}, err error) { var ( @@ -145,7 +163,7 @@ func SubmitRanking() (submitRankingData map[string][]interface{}, err error) { } // 查询工单数量统计 -func WorkOrderCount(c *gin.Context) (countList map[string]int, err error) { +func (s *Statistics) WorkOrderCount(c *gin.Context) (countList map[string]int, err error) { var ( w *WorkOrder result interface{} @@ -179,3 +197,20 @@ func WorkOrderCount(c *gin.Context) (countList map[string]int, err error) { return } + +// 查询指定范围内的提交工单折线图统计 + +// 查询指定范围内的提交工单排名数据 +func (s *Statistics) WorkOrderRanks() (ranks []Ranks, err error) { + ranks = make([]Ranks, 0) + + err = orm.Eloquent.Model(&process.WorkOrderInfo{}). + Joins("left join p_process_info on p_process_info.id = p_work_order_info.process"). + Select("p_process_info.name as name, count(p_work_order_info.id) as total"). + Group("p_work_order_info.process"). + Order("total desc"). + Limit(10). + Scan(&ranks).Error + + return +}