Files
jx-print/dao/print_dao.go
邹宗楠 abc02ff7f5 1
2022-07-28 18:20:03 +08:00

235 lines
6.0 KiB
Go

package dao
import (
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-print/model"
"github.com/jmoiron/sqlx"
"time"
)
func GetPrinters(db *sqlx.DB, appID int, printNo string, status, statusNeq, flowFlag int) (printers []*model.Printer, err error) {
sql := `
SELECT *
FROM printer
WHERE 1 = 1 AND deleted_at = ?
`
sqlParams := []interface{}{utils.DefaultTimeValue}
if appID != 0 {
sql += " AND app_id = ?"
sqlParams = append(sqlParams, appID)
}
if printNo != "" {
sql += " AND print_no = ?"
sqlParams = append(sqlParams, printNo)
}
if status != 0 {
sql += " AND status = ?"
sqlParams = append(sqlParams, status)
}
if statusNeq != 0 {
sql += " AND status <> ?"
sqlParams = append(sqlParams, statusNeq)
}
if flowFlag != 0 {
sql += " AND flow_flag = ?"
sqlParams = append(sqlParams, flowFlag)
}
if err = db.Select(&printers, sql, sqlParams...); err == nil {
return printers, err
}
return printers, err
}
func GetPrintersPage(db *sqlx.DB, appID int, printNo, name string, status, isOnline, offset, pageSize int, userId string) (page *model.PagedInfo, err error) {
var (
printers []*model.Printer
count int
)
sqlCount := `
SELECT COUNT(id) count
`
sql := `
SELECT id,created_at,updated_at,deleted_at,last_operator, app_id,print_no,print_key,name,status,is_online,icc_id,sound,volume,flow_flag,offline_count,user_id
`
sqlOther := `FROM printer WHERE 1 = 1 AND deleted_at = ?`
sqlParams := []interface{}{utils.DefaultTimeValue}
if appID != 0 {
sqlOther += " AND app_id = ?"
sqlParams = append(sqlParams, appID)
}
if printNo != "" {
sqlOther += " AND print_no = ?"
sqlParams = append(sqlParams, printNo)
}
if name != "" {
sqlOther += " AND name LIKE ?"
sqlParams = append(sqlParams, "%"+name+"%")
}
if status != model.StatusAll {
sqlOther += " AND status = ?"
sqlParams = append(sqlParams, status)
}
if isOnline != model.StatusAll {
sqlOther += " AND is_online = ?"
sqlParams = append(sqlParams, isOnline)
}
if userId != "" {
sqlOther += " AND user_id = ?"
sqlParams = append(sqlParams, userId)
}
//查总数
row := db.DB.QueryRow(sqlCount+sqlOther, sqlParams...)
if err = row.Scan(&count); err != nil {
return page, err
}
sqlOther += " LIMIT ? OFFSET ?"
sqlParams = append(sqlParams, pageSize, offset)
if err = db.Select(&printers, sql+sqlOther, sqlParams...); err == nil {
return &model.PagedInfo{
TotalCount: count,
Data: printers,
}, err
}
return page, err
}
func GetPrintMessagesPage(db *sqlx.DB, printNo, msgID, beginAt, endAt string, offset, pageSize int) (page *model.PagedInfo, err error) {
var (
printMsgs []*model.PrintMsg
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)
}
//查总数
row := db.DB.QueryRow(sqlCount+sqlOhter, sqlParams...)
if err = row.Scan(&count); err != nil {
return page, err
}
sqlOhter += " LIMIT ? OFFSET ?"
sqlParams = append(sqlParams, pageSize, offset)
if err = db.Select(&printMsgs, sql+sqlOhter, sqlParams...); err == nil {
return &model.PagedInfo{
TotalCount: count,
Data: printMsgs,
}, err
}
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
)
sql := `
SELECT *
FROM printer
WHERE 1 = 1 AND deleted_at = ?
`
sqlParams := []interface{}{utils.DefaultTimeValue}
if printNo != "" {
sql += " AND print_no = ?"
sqlParams = append(sqlParams, printNo)
}
if iccID != "" {
sql += " AND icc_id = ?"
sqlParams = append(sqlParams, iccID)
}
if err = db.Select(&printers, sql, sqlParams...); err == nil && len(printers) > 0 {
return printers[0], err
}
return printer, err
}