168 lines
4.5 KiB
Go
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
|
|
}
|