This commit is contained in:
suyl
2021-10-15 18:10:34 +08:00
parent ec971561bb
commit 2a38ee5c42
4 changed files with 125 additions and 0 deletions

View File

@@ -187,3 +187,20 @@ func GetPrintMessages(c *gin.Context) {
}
return
}
//查询打印统计(首页) GET
func GetPrinterReport(c *gin.Context) {
var (
tokenInfo *model.TokenInfo
)
if tokenInfo = checkToken(c); tokenInfo == nil {
return
}
if !callFunc(c, func() (retVal interface{}, errCode string, err error) {
retVal, err = services.GetPrinterReport(c, tokenInfo)
return retVal, "", err
}) {
return
}
return
}

View File

@@ -151,6 +151,63 @@ func GetPrintMessagesPage(db *sqlx.DB, printNo, msgID, beginAt, endAt string, of
return page, err
}
func GetPrintMessages(db *sqlx.DB, printNo, msgID, beginAt, endAt string, statusNeq int) (printMsgs []*model.PrintMsg, err error) {
var (
count int
beginTime, endTime time.Time
)
if beginAt == "" {
beginTime = utils.Time2Date(time.Now().AddDate(0, 0, -7))
} else {
beginTime = utils.Str2Time(beginAt)
}
if endAt == "" {
endTime = utils.Str2Time(utils.Time2Str(utils.Time2Date(time.Now())) + " 23:59:59")
} else {
endTime = utils.Str2Time(endAt)
}
sqlCount := `
SELECT COUNT(id) count
`
sql := `
SELECT *
`
sqlOhter := `
FROM print_msg
WHERE 1 = 1 AND deleted_at = ?
`
sqlParams := []interface{}{utils.DefaultTimeValue}
if printNo != "" {
sqlOhter += " AND print_no = ?"
sqlParams = append(sqlParams, printNo)
}
if msgID != "" {
sqlOhter += " AND msg_id = ?"
sqlParams = append(sqlParams, msgID)
}
if beginTime != utils.ZeroTimeValue {
sqlOhter += " AND created_at > ?"
sqlParams = append(sqlParams, beginTime)
}
if endTime != utils.ZeroTimeValue {
sqlOhter += " AND created_at < ?"
sqlParams = append(sqlParams, endTime)
}
if statusNeq != 0 {
sqlOhter += " AND status <> ?"
sqlParams = append(sqlParams, statusNeq)
}
//查总数
row := db.DB.QueryRow(sqlCount+sqlOhter, sqlParams...)
if err = row.Scan(&count); err != nil {
return printMsgs, err
}
if err = db.Select(&printMsgs, sql+sqlOhter, sqlParams...); err == nil {
return printMsgs, err
}
return printMsgs, err
}
func GetPrinter(db *sqlx.DB, printNo, iccID string) (printer *model.Printer, err error) {
var (
printers []*model.Printer

View File

@@ -26,6 +26,7 @@ func Init(r *gin.Engine) {
print.POST("/updatePrinter", controllers.UpdatePrinter)
print.POST("/testPrint", controllers.TestPrint)
print.GET("/getPrintMessages", controllers.GetPrintMessages)
print.GET("/getPrinterReport", controllers.GetPrinterReport)
//order
order := v2.Group("/order")
order.POST("/createOrder", controllers.CreateOrder)

View File

@@ -186,3 +186,53 @@ func GetPrintMessages(c *gin.Context, appID int, tokenInfo *model.TokenInfo, pri
}
return dao.GetPrintMessagesPage(db, printNo, msgID, beginAt, endAt, offset, pageSize)
}
type GetPrinterReportResult struct {
WeekPrintCount int `json:"week_print_count"`
DayPrintCount int `json:"day_print_count"`
DayUnPrintCount int `json:"day_un_print_count"`
OnlinePrinterCount int `json:"online_printer_count"`
OfflinePrinterCount int `json:"offline_printer_count"`
FlowPrinterCount int `json:"flow_printer_count"`
PaperPrinterCount int `json:"paper_printer_count"`
}
func GetPrinterReport(c *gin.Context, tokenInfo *model.TokenInfo) (getPrinterReportResult *GetPrinterReportResult, err error) {
var (
db = globals.GetDB()
weekCount, DayCount, DayUnCount = 0, 0, 0
onlineC, offlineC, flowC, paperC = 0, 0, 0, 0
)
getPrinterReportResult = &GetPrinterReportResult{}
apps, _ := dao.GetApps(db, 0, tokenInfo.User.UserID, "")
if len(apps) == 0 {
return nil, err
}
for _, app := range apps {
printers, _ := dao.GetPrinters(db, app.ID, "", 0, 0, 0)
for _, printer := range printers {
weeks, _ := dao.GetPrintMessages(db, printer.PrintNo, "", utils.Time2Str(time.Now().AddDate(0, 0, -7)), utils.Time2Str(time.Now()), 0)
weekCount += len(weeks)
days, _ := dao.GetPrintMessages(db, printer.PrintNo, "", utils.Time2Str(time.Now().AddDate(0, 0, -1)), utils.Time2Str(time.Now()), 0)
DayCount += len(days)
dayUns, _ := dao.GetPrintMessages(db, printer.PrintNo, "", utils.Time2Str(time.Now().AddDate(0, 0, -1)), utils.Time2Str(time.Now()), 1)
DayUnCount += len(dayUns)
}
onlines, _ := dao.GetPrinters(db, app.ID, "", model.PrinterOnline, 0, 0)
onlineC += len(onlines)
offlines, _ := dao.GetPrinters(db, app.ID, "", model.PrinterOffline, 0, 0)
offlineC += len(offlines)
flows, _ := dao.GetPrinters(db, app.ID, "", 0, 0, 1)
flowC += len(flows)
papers, _ := dao.GetPrinters(db, app.ID, "", model.PrinterStatusWithouPaper, 0, 0)
paperC += len(papers)
}
getPrinterReportResult.WeekPrintCount = weekCount
getPrinterReportResult.DayPrintCount = DayCount
getPrinterReportResult.DayUnPrintCount = DayUnCount
getPrinterReportResult.OnlinePrinterCount = onlineC
getPrinterReportResult.OfflinePrinterCount = offlineC
getPrinterReportResult.FlowPrinterCount = flowC
getPrinterReportResult.PaperPrinterCount = paperC
return getPrinterReportResult, err
}