1
This commit is contained in:
109
controllers/app/print_bind_store.go
Normal file
109
controllers/app/print_bind_store.go
Normal file
@@ -0,0 +1,109 @@
|
||||
package app
|
||||
|
||||
import (
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/jx-print/controllers"
|
||||
"git.rosy.net.cn/jx-print/globals"
|
||||
"git.rosy.net.cn/jx-print/model"
|
||||
tempModel "git.rosy.net.cn/jx-print/model/app_model"
|
||||
printServer "git.rosy.net.cn/jx-print/services/print_server/app_server"
|
||||
"github.com/gin-gonic/gin"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
type PrinterBindStore struct {
|
||||
}
|
||||
|
||||
var PrinterBindStoreController = new(PrinterBindStore)
|
||||
|
||||
// AddPrinterBindStore 记录授权成功的门店信息
|
||||
// @Title 记录授权成功的门店信息
|
||||
// @Description 记录授权成功的门店信息
|
||||
// @Param token cookie string true "用户登录token"
|
||||
// @Param data body app_model.AddBindStore true "请求参数"
|
||||
// @Success 200 {object} controllers.CallResult
|
||||
// @Failure 200 {object} controllers.CallResult
|
||||
// @router /bindingStore [post]
|
||||
func (p *PrinterBindStore) AddPrinterBindStore(c *gin.Context) {
|
||||
var (
|
||||
err error
|
||||
tokenInfo *model.TokenInfo
|
||||
param = &tempModel.AddBindStore{}
|
||||
bindServer = printServer.PrintBindStore{}
|
||||
)
|
||||
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) {
|
||||
err = bindServer.AddStoreBind(tokenInfo.User.UserID, param)
|
||||
return retVal, "", err
|
||||
})
|
||||
}
|
||||
|
||||
// CheckStoreBindStatus 检查用户是否可以取消门店打印机绑定
|
||||
// @Title 检查用户是否可以取消门店打印机绑定
|
||||
// @Description 检查用户是否可以取消门店打印机绑定
|
||||
// @Param token cookie string true "用户登录token"
|
||||
// @Param data body app_model.RelieveStore true "请求参数"
|
||||
// @Success 200 {object} controllers.CallResult
|
||||
// @Failure 200 {object} controllers.CallResult
|
||||
// @router /checkBindingStore [post]
|
||||
func (p *PrinterBindStore) CheckStoreBindStatus(c *gin.Context) {
|
||||
var (
|
||||
err error
|
||||
tokenInfo *model.TokenInfo
|
||||
param = &tempModel.RelieveStore{}
|
||||
bindServer = printServer.PrintBindStore{}
|
||||
)
|
||||
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) {
|
||||
have, err := bindServer.QueryStoreAndUser(param)
|
||||
return map[string]bool{"bind": have}, "", err
|
||||
})
|
||||
}
|
||||
|
||||
// LoseStoreAuthorize 失去授权回调
|
||||
// @Title 失去授权回调
|
||||
// @Description 失去授权回调
|
||||
// @Param token cookie string true "用户登录token"
|
||||
// @Param data body app_model.RelieveStore true "请求参数"
|
||||
// @Success 200 {object} controllers.CallResult
|
||||
// @Failure 200 {object} controllers.CallResult
|
||||
// @router /loseAuthorize [post]
|
||||
func (p *PrinterBindStore) LoseStoreAuthorize(c *gin.Context) {
|
||||
if c.Request.Method == http.MethodPost {
|
||||
var (
|
||||
bindServer = printServer.PrintBindStore{}
|
||||
)
|
||||
storeId, err := bindServer.AnalysisStore(c.Request)
|
||||
if err != nil {
|
||||
globals.SugarLogger.Errorf("京西菜市门店失去授权回调错误:%v", err)
|
||||
c.JSON(http.StatusNotFound, "")
|
||||
}
|
||||
|
||||
if storeId == "" {
|
||||
globals.SugarLogger.Errorf("京西菜市门店失去授权回调错误,门店id不能小于等于0:%v", err)
|
||||
c.JSON(http.StatusNotFound, "")
|
||||
}
|
||||
if err := bindServer.LoseAuthorize(utils.Str2Int64(storeId)); err != nil {
|
||||
globals.SugarLogger.Errorf("通联支付,回调函数错误处理异常:%v", err)
|
||||
c.JSON(http.StatusNotFound, "")
|
||||
}
|
||||
|
||||
c.JSON(http.StatusOK, "")
|
||||
} else {
|
||||
c.JSON(http.StatusNotFound, "")
|
||||
}
|
||||
}
|
||||
@@ -27,12 +27,47 @@ func (p *PrintSetting) UpdatePrintSetting(c *gin.Context) {
|
||||
param = &tempModel.UpdatePrintSetting{}
|
||||
server = app_server.PrintSettingInfoServer
|
||||
)
|
||||
if tokenInfo = controllers.CheckToken(c); tokenInfo == nil {
|
||||
return
|
||||
}
|
||||
|
||||
if err = c.ShouldBind(param); err != nil {
|
||||
controllers.BuildErrJson(c, err)
|
||||
return
|
||||
}
|
||||
|
||||
controllers.CallFunc(c, func() (retVal interface{}, errCode string, err error) {
|
||||
err = server.UpdatePrintSetting(tokenInfo.User.UserID, param)
|
||||
return "", "", err
|
||||
})
|
||||
}
|
||||
|
||||
// GetPrintSetting 获取当前打印机设置
|
||||
// @Title 获取当前打印机设置
|
||||
// @Description 获取当前打印机设置
|
||||
// @Param token cookie string true "用户登录token"
|
||||
// @Param data body app_model.GetPrintSetting true "请求参数"
|
||||
// @Success 200 {object} controllers.CallResult
|
||||
// @Failure 200 {object} controllers.CallResult
|
||||
// @router /getPrintSetting [get]
|
||||
func (p *PrintSetting) GetPrintSetting(c *gin.Context) {
|
||||
var (
|
||||
err error
|
||||
param = &tempModel.GetPrintSetting{}
|
||||
server = app_server.PrintSettingInfoServer
|
||||
tokenInfo *model.TokenInfo
|
||||
)
|
||||
|
||||
if tokenInfo = controllers.CheckToken(c); tokenInfo == nil {
|
||||
return
|
||||
}
|
||||
|
||||
if err = c.ShouldBind(param); err != nil {
|
||||
controllers.BuildErrJson(c, err)
|
||||
return
|
||||
}
|
||||
controllers.CallFunc(c, func() (retVal interface{}, errCode string, err error) {
|
||||
retVal, err = server.QueryPrintSetting(param.PrintNo)
|
||||
return retVal, "", err
|
||||
})
|
||||
}
|
||||
|
||||
@@ -75,6 +75,7 @@ func (p *PrinterTemp) DeleteTemp(c *gin.Context) {
|
||||
// @Title 获取用户模板
|
||||
// @Description 获取用户模板
|
||||
// @Param token cookie string true "用户登录token"
|
||||
// @Param data body app_model.QueryUserTemp true "请求参数"
|
||||
// @Success 200 {object} controllers.CallResult
|
||||
// @Failure 200 {object} controllers.CallResult
|
||||
// @router /getUserTempList [get]
|
||||
@@ -82,7 +83,7 @@ func (p *PrinterTemp) GetUserTempList(c *gin.Context) {
|
||||
var (
|
||||
err error
|
||||
tokenInfo *model.TokenInfo
|
||||
param = tempModel.DeleteTemp{}
|
||||
param = tempModel.QueryUserTemp{}
|
||||
tempServer = printServer.TempServer{}
|
||||
)
|
||||
if err = c.ShouldBind(¶m); err != nil {
|
||||
@@ -92,8 +93,9 @@ func (p *PrinterTemp) GetUserTempList(c *gin.Context) {
|
||||
if tokenInfo = controllers.CheckToken(c); tokenInfo == nil {
|
||||
return
|
||||
}
|
||||
|
||||
controllers.CallFunc(c, func() (retVal interface{}, errCode string, err error) {
|
||||
retVal, err = tempServer.QueryTempList(tokenInfo.User.UserID)
|
||||
retVal, err = tempServer.QueryTempList(tokenInfo.User.UserID, param.PrintSn)
|
||||
return retVal, "", err
|
||||
})
|
||||
}
|
||||
@@ -117,8 +119,13 @@ func (p *PrinterTemp) SwitchTemp(c *gin.Context) {
|
||||
controllers.BuildErrJson(c, err)
|
||||
return
|
||||
}
|
||||
|
||||
if tokenInfo = controllers.CheckToken(c); tokenInfo == nil {
|
||||
return
|
||||
}
|
||||
|
||||
controllers.CallFunc(c, func() (retVal interface{}, errCode string, err error) {
|
||||
err = tempServer.SwitchTemp(tokenInfo.User.UserID, param.ID)
|
||||
err = tempServer.SwitchTemp(tokenInfo.User.UserID, param.PrintSn, param.ID)
|
||||
return "", "", err
|
||||
})
|
||||
}
|
||||
|
||||
71
controllers/app/tonglian_pay.go
Normal file
71
controllers/app/tonglian_pay.go
Normal file
@@ -0,0 +1,71 @@
|
||||
package app
|
||||
|
||||
import (
|
||||
"git.rosy.net.cn/jx-print/controllers"
|
||||
"git.rosy.net.cn/jx-print/globals"
|
||||
"git.rosy.net.cn/jx-print/model"
|
||||
"git.rosy.net.cn/jx-print/model/app_model"
|
||||
"git.rosy.net.cn/jx-print/services/api"
|
||||
"git.rosy.net.cn/jx-print/services/print_server/app_server"
|
||||
"github.com/gin-gonic/gin"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
// Pay4Order 充值打印机
|
||||
// @Title 充值打印机
|
||||
// @Description 充值打印机
|
||||
// @Param token header string true "认证token"
|
||||
// @Param data body app_model.PayOrder true "请求参数"
|
||||
// @Success 200 {object} controllers.CallResult
|
||||
// @Failure 200 {object} controllers.CallResult
|
||||
// @router /pay4Order [post]
|
||||
func (a *Auth2Controller) Pay4Order(c *gin.Context) {
|
||||
// 参数绑定
|
||||
var (
|
||||
err error
|
||||
params *app_model.PayOrder
|
||||
service = app_server.PrintPayServer
|
||||
tokenInfo *model.TokenInfo
|
||||
)
|
||||
|
||||
if err = c.ShouldBind(¶ms); err != nil {
|
||||
c.JSON(http.StatusOK, &model.CallBack{
|
||||
Code: model.ErrCodeNormal,
|
||||
Desc: err.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
if tokenInfo = controllers.CheckToken(c); tokenInfo == nil {
|
||||
return
|
||||
}
|
||||
|
||||
controllers.CallFunc(c, func() (retVal interface{}, errCode string, err error) {
|
||||
pay, err := service.Pay4Order(tokenInfo.User, service.GetRealRemoteIP(c), params.TotalFee, params.PayType, params.VendorPayType, params.PrintNo)
|
||||
if err != nil {
|
||||
return nil, "", err
|
||||
}
|
||||
|
||||
return map[string]interface{}{"pay": pay}, "", nil
|
||||
})
|
||||
}
|
||||
|
||||
func (a *Auth2Controller) PayCallBack(c *gin.Context) {
|
||||
if c.Request.Method == http.MethodPost {
|
||||
call, err := api.TLpayAPI.GetCallbackMsg(c.Request)
|
||||
if err != nil {
|
||||
globals.SugarLogger.Errorf("通联支付,结构体转换错误:%v", err)
|
||||
c.JSON(http.StatusNotFound, "")
|
||||
}
|
||||
|
||||
var service = app_server.PrintPayServer
|
||||
if err := service.OnTLPayCallback(call); err != nil {
|
||||
globals.SugarLogger.Errorf("通联支付,回调函数错误处理异常:%v", err)
|
||||
c.JSON(http.StatusNotFound, "")
|
||||
}
|
||||
|
||||
c.JSON(http.StatusOK, call)
|
||||
} else {
|
||||
c.JSON(http.StatusNotFound, "")
|
||||
}
|
||||
}
|
||||
@@ -2,13 +2,16 @@ package app
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"git.rosy.net.cn/jx-print/controllers"
|
||||
"git.rosy.net.cn/jx-print/globals"
|
||||
"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"
|
||||
"time"
|
||||
)
|
||||
|
||||
type Print struct{}
|
||||
@@ -30,6 +33,8 @@ func (p *Print) AddPrinters(c *gin.Context) {
|
||||
param = printModel.AddPrintReq{}
|
||||
printInfo []*model.PrintInfo
|
||||
setting = printServer.PrintSettingInfoServer
|
||||
bill = printServer.PrintBillServer
|
||||
txDB = globals.GetTxDb()
|
||||
)
|
||||
|
||||
if err = c.ShouldBind(¶m); err != nil {
|
||||
@@ -45,18 +50,48 @@ func (p *Print) AddPrinters(c *gin.Context) {
|
||||
}
|
||||
|
||||
controllers.CallFunc(c, func() (retVal interface{}, errCode string, err error) {
|
||||
// 校验打印机绑定用户
|
||||
if err := printServer.QueryPrintKeyIsExit(printInfo[0], param.Phone, param.BizId, param.Code, param.AppID); err != nil {
|
||||
// 查询打印机心跳,服务器接收到打印机心跳请求,才可以继续绑定!防止用户无休止绑定打印机!
|
||||
// 只有开机联网成功的打印机才可以绑定用户
|
||||
have, err := printServer.PrintActivationServer.QueryPrintHeard(printInfo[0].PrintNo)
|
||||
if err != nil {
|
||||
return nil, "", err
|
||||
}
|
||||
if !have {
|
||||
return nil, "", fmt.Errorf("未检测到打印机心跳,请激活打印机,链接无线网络")
|
||||
}
|
||||
|
||||
// 添加打印机
|
||||
if err := printServer.AddPrinters(tokenInfo, param.AppID, printInfo); err != nil {
|
||||
if err := printServer.AddPrinters(txDB, tokenInfo, param.AppID, printInfo, param.Phone); err != nil {
|
||||
txDB.Rollback()
|
||||
return nil, "", err
|
||||
}
|
||||
|
||||
// 赋予默认配置
|
||||
if err := setting.SystemInitPrintSetting(printInfo[0].PrintNo); err != nil {
|
||||
if err := setting.SystemInitPrintSetting(txDB, printInfo[0].PrintNo); err != nil {
|
||||
txDB.Rollback()
|
||||
return nil, "", err
|
||||
}
|
||||
|
||||
// 初始化打印机账户
|
||||
if err := bill.InitPPrintBill(txDB, &printModel.PrintBill{
|
||||
CreatedAt: time.Now(),
|
||||
UpdatedAt: time.Now(),
|
||||
PrintNo: printInfo[0].PrintNo,
|
||||
PrintBalance: 20000,
|
||||
UserId: tokenInfo.User.UserID,
|
||||
}); err != nil {
|
||||
txDB.Rollback()
|
||||
return nil, "", err
|
||||
}
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
txDB.Rollback()
|
||||
} else {
|
||||
txDB.Commit()
|
||||
}
|
||||
}()
|
||||
|
||||
// 初始化打印机余额,如果打印机存在,如果打印机存在,不做修改!打印机不存在则初始化打印机余额
|
||||
return "", "", nil
|
||||
})
|
||||
|
||||
@@ -85,7 +120,30 @@ func (p *Print) GetPrinters(c *gin.Context) {
|
||||
}
|
||||
|
||||
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, "")
|
||||
retVal, err = printServer.GetPrinters(param.AppID, param.PrintNo, param.Name, param.Status, param.IsOnline, param.Offset, param.PageSize, tokenInfo.User.UserID)
|
||||
return retVal, "", err
|
||||
})
|
||||
}
|
||||
|
||||
// GetPrintIsUse 查询打印机是否被使用 GET
|
||||
// @Title 查询打印机是否被使用
|
||||
// @Description 查询打印机是否被使用
|
||||
// @Param token cookie string true "用户登录token"
|
||||
// @Param data body app_model.GetPrintIsUse true "请求参数"
|
||||
// @Success 200 {object} controllers.CallResult
|
||||
// @Failure 200 {object} controllers.CallResult
|
||||
// @router /getPrintIsUse [get]
|
||||
func (p *Print) GetPrintIsUse(c *gin.Context) {
|
||||
var (
|
||||
err error
|
||||
param = printModel.GetPrintIsUse{}
|
||||
)
|
||||
if err = c.ShouldBind(¶m); err != nil {
|
||||
controllers.BuildErrJson(c, err)
|
||||
return
|
||||
}
|
||||
controllers.CallFunc(c, func() (retVal interface{}, errCode string, err error) {
|
||||
retVal, err = printServer.GetPrintIsUse(param.PrintNo)
|
||||
return retVal, "", err
|
||||
})
|
||||
}
|
||||
@@ -103,7 +161,6 @@ func (p *Print) DelPrinters(c *gin.Context) {
|
||||
err error
|
||||
tokenInfo *model.TokenInfo
|
||||
param = printModel.DeletePrintReq{}
|
||||
printNos []string
|
||||
tempServer = printServer.TempServer{}
|
||||
settingServer = printServer.PrintSettingServer{}
|
||||
)
|
||||
@@ -114,21 +171,23 @@ func (p *Print) DelPrinters(c *gin.Context) {
|
||||
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.DeletePrintCheck(param.PrintNos, param.Phone, param.BizId, param.Code, param.AppID); err != nil {
|
||||
return nil, "", err
|
||||
}
|
||||
|
||||
// 删除打印机
|
||||
if err := printServer.DelPrinters(param.AppID, tokenInfo, printNos); err != nil {
|
||||
if err := printServer.DelPrinters(param.AppID, tokenInfo, param.PrintNos); err != nil {
|
||||
return nil, "", err
|
||||
}
|
||||
// 删除模板
|
||||
err = tempServer.DeleteAllTemp(tokenInfo.User.UserID, printNos)
|
||||
err = tempServer.DeleteAllTemp(tokenInfo.User.UserID, param.PrintNos)
|
||||
// 删除设置
|
||||
err = settingServer.DeletePrintSetting(printNos)
|
||||
err = settingServer.DeletePrintSetting(param.PrintNos)
|
||||
// 删除打印消息
|
||||
err = print.DeletePrintMsg(printNos)
|
||||
err = print.DeletePrintMsg(param.PrintNos)
|
||||
|
||||
return retVal, "", err
|
||||
})
|
||||
}
|
||||
@@ -224,6 +283,35 @@ func (p *Print) GetPrintMessages(c *gin.Context) {
|
||||
})
|
||||
}
|
||||
|
||||
// QueryPrintBill 查询打印机账户余额 get
|
||||
// @Title 获取打印机账户余额
|
||||
// @Description 获取打印机账户余额
|
||||
// @Param token cookie string true "用户登录token"
|
||||
// @Param data body app_model.QueryPrintBill true "请求参数"
|
||||
// @Success 200 {object} controllers.CallResult
|
||||
// @Failure 200 {object} controllers.CallResult
|
||||
// @router /queryPrintBill [get]
|
||||
func (p *Print) QueryPrintBill(c *gin.Context) {
|
||||
var (
|
||||
err error
|
||||
tokenInfo *model.TokenInfo
|
||||
param = printModel.QueryPrintBill{}
|
||||
server = printServer.PrintBillServer
|
||||
)
|
||||
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 = server.QueryPrintBill(tokenInfo.User.UserID, param.PrintNo)
|
||||
return retVal, "", err
|
||||
})
|
||||
}
|
||||
|
||||
// StatPrinterReport 查询打印统计(首页) GET
|
||||
func (p *Print) StatPrinterReport(c *gin.Context) {
|
||||
var (
|
||||
|
||||
Reference in New Issue
Block a user