Files
jx-print/controllers/app/wx_print.go
邹宗楠 e552efc2ad 打印机
2022-08-03 09:04:28 +08:00

229 lines
7.0 KiB
Go

package app
import (
"git.rosy.net.cn/jx-print/controllers"
"git.rosy.net.cn/jx-print/model"
printModel "git.rosy.net.cn/jx-print/model/app_model"
"git.rosy.net.cn/jx-print/putils"
print "git.rosy.net.cn/jx-print/services/print_server"
printServer "git.rosy.net.cn/jx-print/services/print_server/app_server"
"github.com/gin-gonic/gin"
)
type Print struct{}
var PrintController = new(Print)
// AddPrinters 添加打印机 POST
// @Title 添加打印机
// @Description 添加打印机
// @Param token cookie string true "用户登录token"
// @Param data body app_model.AddPrintReq true "请求参数"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /addPrinters [post]
func (p *Print) AddPrinters(c *gin.Context) {
var (
err error
tokenInfo *model.TokenInfo
param = printModel.AddPrintReq{}
printInfo []*model.PrintInfo
setting = printServer.PrintSettingInfoServer
)
if err = c.ShouldBind(&param); err != nil {
controllers.BuildErrJson(c, err)
return
}
if tokenInfo = controllers.CheckToken(c); tokenInfo == nil {
return
}
if err = putils.UnmarshalUseNumber([]byte(param.Prints), &printInfo); err != nil {
controllers.BuildErrJson(c, err)
return
}
controllers.CallFunc(c, func() (retVal interface{}, errCode string, err error) {
// 添加打印机
if err := printServer.AddPrinters(tokenInfo, param.AppID, printInfo); err != nil {
return nil, "", err
}
// 赋予默认配置
if err := setting.SystemInitPrintSetting(printInfo[0].PrintNo); err != nil {
return nil, "", err
}
return "", "", nil
})
}
// GetPrinters 查询打印机 GET
// @Title 查询打印机
// @Description 查询打印机
// @Param token cookie string true "用户登录token"
// @Param data body app_model.QueryPrintReq true "请求参数"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /getPrinters [get]
func (p *Print) GetPrinters(c *gin.Context) {
var (
err error
tokenInfo *model.TokenInfo
param = printModel.QueryPrintReq{}
)
if err = c.ShouldBind(&param); err != nil {
controllers.BuildErrJson(c, err)
return
}
if tokenInfo = controllers.CheckToken(c); tokenInfo == nil {
return
}
controllers.CallFunc(c, func() (retVal interface{}, errCode string, err error) {
retVal, err = printServer.GetPrinters(param.AppID, param.PrintNo, param.Name, param.Status, param.IsOnline, param.Offset, param.PageSize, "")
return retVal, "", err
})
}
// DelPrinters 删除打印机 POST
// @Title 删除打印机
// @Description 删除打印机
// @Param token cookie string true "用户登录token"
// @Param data body app_model.QueryPrintReq true "请求参数"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /delPrinters [post]
func (p *Print) DelPrinters(c *gin.Context) {
var (
err error
tokenInfo *model.TokenInfo
param = printModel.DeletePrintReq{}
printNos []string
tempServer = printServer.TempServer{}
settingServer = printServer.PrintSettingServer{}
)
if err = c.ShouldBind(&param); err != nil {
controllers.BuildErrJson(c, err)
return
}
if tokenInfo = controllers.CheckToken(c); tokenInfo == nil {
return
}
if err = putils.UnmarshalUseNumber([]byte(param.PrintNos), &printNos); err != nil {
controllers.BuildErrJson(c, err)
return
}
controllers.CallFunc(c, func() (retVal interface{}, errCode string, err error) {
// 删除打印机
if err := printServer.DelPrinters(param.AppID, tokenInfo, printNos); err != nil {
return nil, "", err
}
// 删除模板
err = tempServer.DeleteAllTemp(tokenInfo.User.UserID, printNos)
// 删除设置
err = settingServer.DeletePrintSetting(printNos)
// 删除打印消息
err = print.DeletePrintMsg(printNos)
return retVal, "", err
})
}
// UpdatePrinter 更新打印机 POST
// @Title 查询打印机
// @Description 查询打印机
// @Param token cookie string true "用户登录token"
// @Param data body app_model.UpdatePrintReq true "请求参数"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /updatePrinter [post]
func (p *Print) UpdatePrinter(c *gin.Context) {
var (
err error
tokenInfo *model.TokenInfo
param = printModel.UpdatePrintReq{}
)
if err = c.ShouldBind(&param); err != nil {
controllers.BuildErrJson(c, err)
return
}
if tokenInfo = controllers.CheckToken(c); tokenInfo == nil {
return
}
if !controllers.CallFunc(c, func() (retVal interface{}, errCode string, err error) {
err = printServer.UpdatePrinter(param.AppID, tokenInfo, param.PrintNo, param.Name, param.Sound, param.Volume)
return retVal, "", err
}) {
return
}
return
}
// TestPrint 测试打印 POST
// @Title 测试打印
// @Description 测试打印
// @Param token cookie string true "用户登录token"
// @Param data body app_model.UpdatePrintReq true "请求参数"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /testPrinter [post]
func (p *Print) TestPrint(c *gin.Context) {
var (
err error
tokenInfo *model.TokenInfo
param = printModel.TestPrintReq{}
)
if err = c.ShouldBind(&param); err != nil {
controllers.BuildErrJson(c, err)
return
}
if tokenInfo = controllers.CheckToken(c); tokenInfo == nil {
return
}
controllers.CallFunc(c, func() (retVal interface{}, errCode string, err error) {
retVal, err = printServer.TestPrint(param.AppID, tokenInfo, param.PrintNo, param.OrderNo, param.Content)
return retVal, "", err
})
}
// GetPrintMessages 获取打印机消息 POST
// @Title 获取打印机消息
// @Description 获取打印机消息
// @Param token cookie string true "用户登录token"
// @Param data body app_model.UpdatePrintReq true "请求参数"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /getPrintMessages [get]
func (p *Print) GetPrintMessages(c *gin.Context) {
var (
err error
tokenInfo *model.TokenInfo
param = printModel.GetPrintMsg{}
)
if err = c.ShouldBind(&param); err != nil {
controllers.BuildErrJson(c, err)
return
}
if tokenInfo = controllers.CheckToken(c); tokenInfo == nil {
return
}
controllers.CallFunc(c, func() (retVal interface{}, errCode string, err error) {
retVal, err = printServer.GetPrintMessages(param.AppID, tokenInfo, param.PrintNo, param.MsgID, param.BeginAt, param.EndAt, param.Offset, param.PageSize)
return retVal, "", err
})
}
// StatPrinterReport 查询打印统计(首页) GET
func (p *Print) StatPrinterReport(c *gin.Context) {
var (
tokenInfo *model.TokenInfo
)
if tokenInfo = controllers.CheckToken(c); tokenInfo == nil {
return
}
controllers.CallFunc(c, func() (retVal interface{}, errCode string, err error) {
retVal, err = printServer.GetPrinterReport(tokenInfo)
return retVal, "", err
})
}