add printer get printers

This commit is contained in:
suyl
2021-07-08 14:53:20 +08:00
parent ace0d7e5f3
commit 9be410cec6
7 changed files with 265 additions and 0 deletions

82
dao/print_dao.go Normal file
View File

@@ -0,0 +1,82 @@
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 = &struct {
Count int `json:"count"`
}{}
)
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.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.Count,
Data: printers,
}, err
}
return page, err
}