1
This commit is contained in:
@@ -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}
|
||||
|
||||
@@ -95,7 +95,11 @@ type PrintInfo struct {
|
||||
type PagedInfo struct {
|
||||
TotalCount int `json:"totalCount"`
|
||||
Data interface{} `json:"data"`
|
||||
PrintBill map[string]int64 `json:"printBill"`
|
||||
}
|
||||
|
||||
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 {
|
||||
|
||||
@@ -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
|
||||
}
|
||||
globals.SugarLogger.Debugf("============page2 %s", utils.Format4Output(page, false))
|
||||
b.PrintBill = v.PrintBalance
|
||||
}
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user