testprint

This commit is contained in:
suyl
2021-07-08 15:52:50 +08:00
parent 986005d40e
commit 94bf08fecc
5 changed files with 81 additions and 1 deletions

View File

@@ -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(&param); 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
}

View File

@@ -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"` //失败原因
}

View File

@@ -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")

View File

@@ -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
}

View File

@@ -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