This commit is contained in:
邹宗楠
2022-12-19 17:39:58 +08:00
parent dbb12b3e6c
commit f4f77e36db
3 changed files with 64 additions and 16 deletions

View File

@@ -90,6 +90,50 @@ func GetPrintersPage(db *sqlx.DB, appID int, printNo, name string, status, isOnl
return &model.PagedInfo{TotalCount: count, Data: printers}, err
}
func GetPrintAndBill(db *sqlx.DB, appID int, printNo, name string, status, isOnline, offset, pageSize int, userId string) (page *model.PageInfoAndPrintBill, err error) {
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.PageInfoAndPrintBill{TotalCount: count, Data: printers}, err
}
func GetPrintIsUse(printNo string) (bool, string, error) {
sql := `SELECT * FROM printer WHERE deleted_at = ? AND print_no = ?`
param := []interface{}{utils.DefaultTimeValue, printNo}

View File

@@ -93,9 +93,13 @@ type PrintInfo struct {
}
type PagedInfo struct {
TotalCount int `json:"totalCount"`
Data interface{} `json:"data"`
PrintBill map[string]int64 `json:"printBill"`
TotalCount int `json:"totalCount"`
Data interface{} `json:"data"`
}
type PageInfoAndPrintBill struct {
TotalCount int `json:"totalCount"`
Data []*Printer `json:"data"`
}
type ModelIDCULD struct {
@@ -198,6 +202,7 @@ type Printer struct {
FlowFlag int `json:"flow_flag" db:"flow_flag"` //是否超流量了1表示超了
OfflineCount int `json:"offline_count" db:"offline_count"` //掉线次数
UserId string `json:"user_id" db:"user_id"` //打印机所属用户
PrintBill int64 `json:"-" db:"-"` // 账户余额
}
type PrintMsg struct {

View File

@@ -121,31 +121,30 @@ func AddPrinters(txDB *sqlx.Tx, tokenInfo *model.TokenInfo, appID int, printInfo
return err
}
func GetPrinters(appID int, printNo, name string, status, isOnline, offset, pageSize int, userId string) (page *model.PagedInfo, err error) {
page, err = dao.GetPrintersPage(globals.GetDB(), appID, printNo, name, status, isOnline, offset, pageSize, userId)
func GetPrinters(appID int, printNo, name string, status, isOnline, offset, pageSize int, userId string) (page *model.PageInfoAndPrintBill, err error) {
page, err = dao.GetPrintAndBill(globals.GetDB(), appID, printNo, name, status, isOnline, offset, pageSize, userId)
if err != nil {
return nil, err
}
globals.SugarLogger.Debugf("============page1 %s", utils.Format4Output(page, false))
print2 := page.Data.([]model.Printer)
// make([]model.Printer, 0, 0)
//if err := json.Unmarshal([]byte(utils.Interface2String(page.Data)), &print2); err != nil {
// return nil, err
//}
printList := make([]interface{}, 0, len(print2))
for _, v := range print2 {
printList := make([]interface{}, 0, len(page.Data))
for _, v := range page.Data {
printList = append(printList, v.PrintNo)
}
printBillList, err := dao.QueryPrintBillList(userId, printList)
if err != nil {
return nil, err
}
page.PrintBill = make(map[string]int64, len(printBillList))
for _, v := range printBillList {
page.PrintBill[v.PrintNo] = v.PrintBalance
for _, b := range page.Data {
if v.PrintNo != b.PrintNo {
continue
}
b.PrintBill = v.PrintBalance
}
}
globals.SugarLogger.Debugf("============page2 %s", utils.Format4Output(page, false))
return
}