package dao import ( "fmt" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-print/globals" "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) { fmt.Println("print======================================") globals.SugarLogger.Debug("print=============", "========") sqlCount := `SELECT COUNT(id) count ` sql := `SELECT * ` 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) } //查总数 count := 0 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) var printers []model.Printer if err = db.Select(&printers, sql+sqlOther, sqlParams...); err != nil { return nil, err } return &model.PagedInfo{TotalCount: count, Data: printers}, 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 }