package dao import ( "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-print/model" "github.com/jmoiron/sqlx" ) func GetPrinters(db *sqlx.DB, appID int, printNo string) (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 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) (page *model.PagedInfo, err error) { var ( printers []*model.Printer count int ) sqlCount := ` SELECT COUNT(*) count ` sql := ` SELECT * ` sqlOhter := ` FROM printer WHERE 1 = 1 AND deleted_at = ? ` sqlParams := []interface{}{utils.DefaultTimeValue} if appID != 0 { sqlOhter += " AND app_id = ?" sqlParams = append(sqlParams, appID) } if printNo != "" { sqlOhter += " AND print_no = ?" sqlParams = append(sqlParams, printNo) } if name != "" { sqlOhter += " AND name LIKE ?" sqlParams = append(sqlParams, "%"+name+"%") } if status != model.StatusAll { sqlOhter += " AND status = ?" sqlParams = append(sqlParams, status) } if isOnline != model.StatusAll { sqlOhter += " AND is_online = ?" sqlParams = append(sqlParams, isOnline) } //查总数 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(&printers, sql+sqlOhter, sqlParams...); err == nil { return &model.PagedInfo{ TotalCount: count, Data: printers, }, err } return page, err }