From 94bf08feccae4f6b698229f295535e37d0605c90 Mon Sep 17 00:00:00 2001 From: suyl <770236076@qq.com> Date: Thu, 8 Jul 2021 15:52:50 +0800 Subject: [PATCH] testprint --- controllers/print_controller.go | 29 +++++++++++++++++++++++++++++ model/model.go | 14 ++++++++++++++ routers/router.go | 1 + services/print.go | 27 +++++++++++++++++++++++++++ utils/utils.go | 11 ++++++++++- 5 files changed, 81 insertions(+), 1 deletion(-) diff --git a/controllers/print_controller.go b/controllers/print_controller.go index df34b6b..2b39cc9 100644 --- a/controllers/print_controller.go +++ b/controllers/print_controller.go @@ -132,3 +132,32 @@ func UpdatePrinter(c *gin.Context) { } return } + +//测试打印 POST +func TestPrint(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"` //打印机编号 + OrderNo int `json:"order_no" form:"order_no" binding:"required"` //订单序号 + Content string `json:"content" form:"content"` //打印内容 + }{} + ) + globals.SugarLogger.Debugf("Begin API :%s params: %v ip: %s", c.Request.URL, c.Params, c.ClientIP()) + if err = c.Bind(¶m); err != nil { + buildErrJson(c, err) + return + } + if tokenInfo = checkToken(c); tokenInfo == nil { + return + } + if !callFunc(c, func() (retVal interface{}, errCode string, err error) { + retVal, err = services.TestPrint(c, param.AppID, tokenInfo, param.PrintNo, param.OrderNo, param.Content) + return retVal, "", err + }) { + return + } + return +} diff --git a/model/model.go b/model/model.go index 5e98b18..3032f92 100644 --- a/model/model.go +++ b/model/model.go @@ -136,3 +136,17 @@ type Printer struct { IsOnline int `json:"is_online" db:"is_online"` //1在线,0离线 SIM string `json:"sim" db:"sim"` //sim卡号 } + +type PrintMsg struct { + ID int `json:"id" db:"id"` + CreatedAt *time.Time `json:"created_at" db:"created_at"` + UpdatedAt *time.Time `json:"updated_at" db:"updated_at"` + LastOperator string `json:"last_operator" db:"last_operator"` + DeletedAt *time.Time `json:"deleted_at" db:"deleted_at"` + MsgID string `json:"msg_id" db:"msg_id"` //消息ID + PrintNo string `json:"print_no" db:"print_no"` //打印机编号 + OrderNo int `json:"order_no" db:"order_no"` //订单序号 + Content string `json:"content"` //订单内容 + Status int `json:"status"` //打印状态 + Comment string `json:"comment"` //失败原因 +} diff --git a/routers/router.go b/routers/router.go index a2acc49..369b21d 100644 --- a/routers/router.go +++ b/routers/router.go @@ -24,6 +24,7 @@ func Init(r *gin.Engine) { print.GET("/getPrinters", controllers.GetPrinters) print.GET("/delPrinters", controllers.DelPrinters) print.GET("/updatePrinter", controllers.UpdatePrinter) + print.GET("/testPrint", controllers.TestPrint) //v1是不需要token的 v1 := r.Group("v1") diff --git a/services/print.go b/services/print.go index 76b2620..79eb5a9 100644 --- a/services/print.go +++ b/services/print.go @@ -117,3 +117,30 @@ func UpdatePrinter(c *gin.Context, appID int, tokenInfo *model.TokenInfo, printN } return err } + +func TestPrint(c *gin.Context, appID int, tokenInfo *model.TokenInfo, printNo string, orderNo int, content string) (msgID string, err error) { + var ( + db = globals.GetDB() + now = time.Now() + ) + msgID = now.Format("20060102150405") + "_" + putils.RandStringBytesWithNumber(8) + 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) + } + printMsg := &model.PrintMsg{ + CreatedAt: &now, + UpdatedAt: &now, + LastOperator: tokenInfo.User.Name, + DeletedAt: &utils.DefaultTimeValue, + PrintNo: printNo, + OrderNo: orderNo, + Content: content, + MsgID: msgID, + } + err = dao.Insert(db, printMsg) + return msgID, err +} diff --git a/utils/utils.go b/utils/utils.go index 7a3dce5..90cda62 100644 --- a/utils/utils.go +++ b/utils/utils.go @@ -31,7 +31,8 @@ func init() { } var ( - letterBytes = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" + letterBytes = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" + letterBytesNum = "0123456789" ) func RandStringBytes(n int) string { @@ -42,6 +43,14 @@ func RandStringBytes(n int) string { return string(b) } +func RandStringBytesWithNumber(n int) string { + b := make([]byte, n) + for i := range b { + b[i] = letterBytesNum[rand.Intn(len(letterBytesNum))] + } + return string(b) +} + func Captcha(c *gin.Context, length ...int) { l := captcha.DefaultLen w, h := 107, 36