Files
jx-callback/business/model/dao/dao_print.go
邹宗楠 2e261aab4b 1
2025-12-24 16:18:23 +08:00

168 lines
4.5 KiB
Go

package dao
import (
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/globals"
"time"
)
func GetPrintMsgNoPage(db *DaoDB, printNo string, orderNo int64) (prints []*model.PrintMsg, err error) {
sql := `
SELECT *
FROM print_msg
WHERE 1 = 1
`
sqlParams := []interface{}{}
if printNo != "" {
sql += ` AND print_no = ?`
sqlParams = append(sqlParams, printNo)
}
if orderNo != 0 {
sql += ` AND order_no = ?`
sqlParams = append(sqlParams, orderNo)
}
sql += " ORDER BY created_at DESC LIMIT 1"
err = GetRows(db, &prints, sql, sqlParams)
return prints, err
}
func GetPrintMsgs(db *DaoDB, printNo string, statuss []int, beginAt, endAt time.Time, offset, pageSize int) (prints []*model.PrintMsg, err error) {
sql := `
SELECT a.*
FROM print_msg a
WHERE 1 = 1 AND a.deleted_at = ?
`
sqlParams := []interface{}{utils.DefaultTimeValue}
if printNo != "" {
sql += " AND a.print_no = ?"
sqlParams = append(sqlParams, printNo)
}
if len(statuss) > 0 {
sql += " AND a.status IN(" + GenQuestionMarks(len(statuss)) + ")"
sqlParams = append(sqlParams, statuss)
}
if !utils.IsTimeZero(beginAt) {
sql += " AND a.created_at > ?"
sqlParams = append(sqlParams, beginAt)
}
if !utils.IsTimeZero(endAt) {
sql += " AND a.created_at < ?"
sqlParams = append(sqlParams, endAt)
}
sql += " ORDER BY a.created_at LIMIT ? OFFSET ?"
sqlParams = append(sqlParams, pageSize, offset)
err = GetRows(db, &prints, sql, sqlParams)
return prints, err
}
func GetPrintMsg2(db *DaoDB, printNo, msgID string, status, statusNeq int) (printMsgs []*model.PrintMsg, err error) {
sql := `
SELECT *
FROM print_msg
WHERE 1 = 1 AND deleted_at = ?
`
sqlParams := []interface{}{
utils.DefaultTimeValue,
}
if status != model.PrintMsgAll {
sql += " AND status = ?"
sqlParams = append(sqlParams, status)
}
if statusNeq != model.PrintMsgAll {
sql += " AND status <> ?"
sqlParams = append(sqlParams, statusNeq)
}
if printNo != "" {
sql += " AND print_no = ?"
sqlParams = append(sqlParams, printNo)
}
if msgID != "" {
sql += " AND msg_id = ?"
sqlParams = append(sqlParams, msgID)
}
err = GetRows(db, &printMsgs, sql, sqlParams)
return printMsgs, err
}
func GetPrintMsgsFail(db *DaoDB, beginAt, endAt time.Time) (prints []*model.PrintMsg, err error) {
sql := `
SELECT *
FROM print_msg
WHERE 1 = 1 AND deleted_at = ?
AND status <> ?
`
sqlParams := []interface{}{utils.DefaultTimeValue, 1}
if !utils.IsTimeZero(beginAt) {
sql += " AND created_at > ?"
sqlParams = append(sqlParams, beginAt)
}
if !utils.IsTimeZero(endAt) {
sql += " AND created_at < ?"
sqlParams = append(sqlParams, endAt)
}
err = GetRows(db, &prints, sql, sqlParams)
return prints, err
}
func GetPrinter(db *DaoDB, printNo string) (print *model.Printer, err error) {
sql := `
SELECT * FROM printer WHERE print_no = ? AND deleted_at = ?
`
sqlParams := []interface{}{printNo, utils.DefaultTimeValue}
err = GetRow(db, &print, sql, sqlParams)
return print, err
}
// DeletePrintMsg 删除超过一个月时间的打印订单信息
func DeletePrintMsg() {
sql := ` DELETE FROM print_msg WHERE created_at < ?`
num, err := ExecuteSQL(GetDB(), sql, []interface{}{time.Now().AddDate(0, -1, 0)}...)
if err != nil {
globals.SugarLogger.Debugf("定时删除超过一个月的打印信息错误:%v", err)
}
globals.SugarLogger.Debugf("定时删除超过一个月的打印信息:%d 条", num)
return
}
func QueryPrintList(db *DaoDB, printNo, printKey string, status, isOnline int64, page, size int64) (print []*model.Printer, count int, err error) {
sql := `
SELECT * FROM printer WHERE 1=1
`
sqlParams := []interface{}{}
if printNo != "" {
sql += ` AND print_no = ?`
sqlParams = append(sqlParams, printNo)
}
if printKey != "" {
sql += ` AND print_key = ?`
sqlParams = append(sqlParams, printKey)
}
if status != model.PrintMsgAll {
sql += ` AND status = ?`
sqlParams = append(sqlParams, status)
}
if isOnline != model.PrintMsgAll {
sql += ` AND is_online = ?`
sqlParams = append(sqlParams, isOnline)
}
sql += ` AND deleted_at = ?`
sqlParams = append(sqlParams, utils.DefaultTimeValue)
sql += ` ORDER BY status desc,is_online desc LIMIT ? OFFSET ? `
sqlParams = append(sqlParams, size, page)
tx, _ := Begin(db)
defer func() {
if r := recover(); r != nil {
Rollback(db, tx)
}
}()
defer Commit(db, tx)
if err = GetRowsTx(tx, &print, sql, sqlParams...); err != nil {
Rollback(db, tx)
return nil, 0, err
}
count = GetLastTotalRowCountTx(tx)
return print, count, err
}