update print, del print

This commit is contained in:
suyl
2021-07-08 15:24:02 +08:00
parent 9be410cec6
commit 986005d40e
4 changed files with 143 additions and 18 deletions

View File

@@ -32,7 +32,7 @@ func AddPrinters(c *gin.Context) {
return return
} }
if !callFunc(c, func() (retVal interface{}, errCode string, err error) { if !callFunc(c, func() (retVal interface{}, errCode string, err error) {
err = services.AddPrinters(c, tokenInfo.User.UserID, param.AppID, printInfos) err = services.AddPrinters(c, tokenInfo, param.AppID, printInfos)
return retVal, "", err return retVal, "", err
}) { }) {
return return
@@ -51,7 +51,7 @@ func GetPrinters(c *gin.Context) {
Name string `json:"name" form:"name"` //打印机备注,模糊 Name string `json:"name" form:"name"` //打印机备注,模糊
Status int `json:"status" form:"status"` //打印机状态。正常还是缺纸 Status int `json:"status" form:"status"` //打印机状态。正常还是缺纸
IsOnline int `json:"is_online" form:"is_online"` //在线状态。1在线0离线 IsOnline int `json:"is_online" form:"is_online"` //在线状态。1在线0离线
Offset int `json:"offset" form:"offset" binding:"required"` Offset int `json:"offset" form:"offset"`
PageSize int `json:"page_size" form:"page_size" binding:"required"` PageSize int `json:"page_size" form:"page_size" binding:"required"`
}{} }{}
) )
@@ -71,3 +71,64 @@ func GetPrinters(c *gin.Context) {
} }
return return
} }
//删除打印机 POST
func DelPrinters(c *gin.Context) {
var (
err error
tokenInfo *model.TokenInfo
param = &struct {
AppID int `json:"app_id" form:"app_id" binding:"required"`
PrintNos string `json:"print_nos" form:"print_nos" binding:"required"` //打印机编号s
}{}
printNos []string
)
globals.SugarLogger.Debugf("Begin API :%s params: %v ip: %s", c.Request.URL, c.Params, c.ClientIP())
if err = c.Bind(&param); err != nil {
buildErrJson(c, err)
return
}
if tokenInfo = checkToken(c); tokenInfo == nil {
return
}
if err = utils.UnmarshalUseNumber([]byte(param.PrintNos), &printNos); err != nil {
buildErrJson(c, err)
return
}
if !callFunc(c, func() (retVal interface{}, errCode string, err error) {
err = services.DelPrinters(c, param.AppID, tokenInfo, printNos)
return retVal, "", err
}) {
return
}
return
}
//更新打印机 POST
func UpdatePrinter(c *gin.Context) {
var (
err error
tokenInfo *model.TokenInfo
param = &struct {
AppID int `json:"app_id" form:"app_id" binding:"required"`
PrintNo string `json:"print_no" form:"print_no" binding:"required"` //打印机编号
Name string `json:"name" form:"name"` //打印机备注,模糊
SIM string `json:"sim" form:"sim"` //sim卡
}{}
)
globals.SugarLogger.Debugf("Begin API :%s params: %v ip: %s", c.Request.URL, c.Params, c.ClientIP())
if err = c.Bind(&param); err != nil {
buildErrJson(c, err)
return
}
if tokenInfo = checkToken(c); tokenInfo == nil {
return
}
if !callFunc(c, func() (retVal interface{}, errCode string, err error) {
err = services.UpdatePrinter(c, param.AppID, tokenInfo, param.PrintNo, param.Name, param.SIM)
return retVal, "", err
}) {
return
}
return
}

View File

@@ -30,9 +30,7 @@ func GetPrinters(db *sqlx.DB, appID int, printNo string) (printers []*model.Prin
func GetPrintersPage(db *sqlx.DB, appID int, printNo, name string, status, isOnline, offset, pageSize int) (page *model.PagedInfo, err error) { func GetPrintersPage(db *sqlx.DB, appID int, printNo, name string, status, isOnline, offset, pageSize int) (page *model.PagedInfo, err error) {
var ( var (
printers []*model.Printer printers []*model.Printer
count = &struct { count int
Count int `json:"count"`
}{}
) )
sqlCount := ` sqlCount := `
SELECT COUNT(*) count SELECT COUNT(*) count
@@ -67,14 +65,14 @@ func GetPrintersPage(db *sqlx.DB, appID int, printNo, name string, status, isOnl
} }
//查总数 //查总数
row := db.DB.QueryRow(sqlCount+sqlOhter, sqlParams...) row := db.DB.QueryRow(sqlCount+sqlOhter, sqlParams...)
if err = row.Scan(count.Count); err != nil { if err = row.Scan(&count); err != nil {
return page, err return page, err
} }
sqlOhter += " LIMIT ? OFFSET ?" sqlOhter += " LIMIT ? OFFSET ?"
sqlParams = append(sqlParams, pageSize, offset) sqlParams = append(sqlParams, pageSize, offset)
if err = db.Select(&printers, sql+sqlOhter, sqlParams...); err == nil { if err = db.Select(&printers, sql+sqlOhter, sqlParams...); err == nil {
return &model.PagedInfo{ return &model.PagedInfo{
TotalCount: count.Count, TotalCount: count,
Data: printers, Data: printers,
}, err }, err
} }

View File

@@ -22,6 +22,8 @@ func Init(r *gin.Engine) {
print := v2.Group("/print") print := v2.Group("/print")
print.GET("/addPrinters", controllers.AddPrinters) print.GET("/addPrinters", controllers.AddPrinters)
print.GET("/getPrinters", controllers.GetPrinters) print.GET("/getPrinters", controllers.GetPrinters)
print.GET("/delPrinters", controllers.DelPrinters)
print.GET("/updatePrinter", controllers.UpdatePrinter)
//v1是不需要token的 //v1是不需要token的
v1 := r.Group("v1") v1 := r.Group("v1")

View File

@@ -11,7 +11,7 @@ import (
"time" "time"
) )
func AddPrinters(c *gin.Context, userID string, appID int, printInfos []*model.PrintInfo) (err error) { func AddPrinters(c *gin.Context, tokenInfo *model.TokenInfo, appID int, printInfos []*model.PrintInfo) (err error) {
var ( var (
db = globals.GetDB() db = globals.GetDB()
errs []error errs []error
@@ -20,7 +20,7 @@ func AddPrinters(c *gin.Context, userID string, appID int, printInfos []*model.P
if len(printInfos) > 50 { if len(printInfos) > 50 {
return fmt.Errorf("每次最多添加50台") return fmt.Errorf("每次最多添加50台")
} }
if apps, _ := dao.GetApps(db, appID, userID, ""); len(apps) == 0 { if apps, _ := dao.GetApps(db, appID, tokenInfo.User.UserID, ""); len(apps) == 0 {
return fmt.Errorf("未查询到此应用app_id:%d", appID) return fmt.Errorf("未查询到此应用app_id:%d", appID)
} }
for _, v := range printInfos { for _, v := range printInfos {
@@ -30,15 +30,16 @@ func AddPrinters(c *gin.Context, userID string, appID int, printInfos []*model.P
continue continue
} }
printer := &model.Printer{ printer := &model.Printer{
CreatedAt: &now, CreatedAt: &now,
UpdatedAt: &now, UpdatedAt: &now,
DeletedAt: &utils.DefaultTimeValue, DeletedAt: &utils.DefaultTimeValue,
AppID: appID, LastOperator: tokenInfo.User.Name,
PrintNo: v.PrintNo, AppID: appID,
Name: v.Name, PrintNo: v.PrintNo,
SIM: v.SIM, Name: v.Name,
Status: model.PrinterStatusNormal, SIM: v.SIM,
IsOnline: model.PrinterOffline, Status: model.PrinterStatusNormal,
IsOnline: model.PrinterOffline,
} }
if err = dao.Insert(db, printer); err != nil { if err = dao.Insert(db, printer); err != nil {
errs = append(errs, err) errs = append(errs, err)
@@ -53,3 +54,66 @@ func AddPrinters(c *gin.Context, userID string, appID int, printInfos []*model.P
func GetPrinters(c *gin.Context, appID int, printNo, name string, status, isOnline, offset, pageSize int) (page *model.PagedInfo, err error) { func GetPrinters(c *gin.Context, appID int, printNo, name string, status, isOnline, offset, pageSize int) (page *model.PagedInfo, err error) {
return dao.GetPrintersPage(globals.GetDB(), appID, printNo, name, status, isOnline, offset, pageSize) return dao.GetPrintersPage(globals.GetDB(), appID, printNo, name, status, isOnline, offset, pageSize)
} }
func DelPrinters(c *gin.Context, appID int, tokenInfo *model.TokenInfo, printNos []string) (err error) {
var (
db = globals.GetDB()
errs []error
now = time.Now()
)
if len(printNos) > 50 {
return fmt.Errorf("每次最多删除50台")
}
if apps, _ := dao.GetApps(db, appID, tokenInfo.User.UserID, ""); len(apps) == 0 {
return fmt.Errorf("未查询到此应用app_id:%d", appID)
}
for _, v := range printNos {
printers, _ := dao.GetPrinters(db, appID, v)
if len(printers) == 0 {
errs = append(errs, fmt.Errorf("未在该应用下查到此打印机app_id: %d, print_no: %s", appID, v))
continue
}
printer := printers[0]
printer.DeletedAt = &now
printer.LastOperator = tokenInfo.User.Name
if err = dao.Update(db, printer, model.FieldDeletedAt, model.FieldLastOperator); err != nil {
errs = append(errs, err)
}
}
if len(errs) > 0 {
err = putils.BuildErr(errs)
}
return err
}
func UpdatePrinter(c *gin.Context, appID int, tokenInfo *model.TokenInfo, printNo, name, sim string) (err error) {
var (
db = globals.GetDB()
now = time.Now()
fields []string
)
if apps, _ := dao.GetApps(db, appID, tokenInfo.User.UserID, ""); len(apps) == 0 {
return fmt.Errorf("未查询到此应用app_id:%d", appID)
}
printers, _ := dao.GetPrinters(db, appID, printNo)
if len(printers) == 0 {
return fmt.Errorf("未在该应用下查到此打印机app_id: %d, print_no: %s", appID, printNo)
}
printer := printers[0]
if name != printer.Name {
printer.Name = name
fields = append(fields, "name")
}
if sim != printer.SIM {
printer.SIM = sim
fields = append(fields, "sim")
}
printer.DeletedAt = &now
printer.LastOperator = tokenInfo.User.Name
fields = append(fields, model.FieldLastOperator, model.FieldDeletedAt)
if err = dao.Update(db, printer, fields...); err != nil {
return err
}
return err
}