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(¶m); 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(¶m); 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(¶m); 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(¶m); 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(¶m); 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(¶m); 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 }) }