将boss系统的逻辑移到了gateway系统

This commit is contained in:
kongyuebin
2021-11-11 10:31:58 +08:00
parent 7cd2e963ad
commit 2a7be69a37
8 changed files with 158 additions and 92 deletions

View File

@@ -0,0 +1,70 @@
package gateway
import (
"gateway/conf"
"gateway/models/order"
"gateway/query"
"gateway/service"
"github.com/astaxie/beego/logs"
"github.com/beego/beego/v2/server/web"
)
type OrderController struct {
web.Controller
}
func (c *OrderController) OrderQuery() {
bankOrderId := c.GetString("bankOrderId")
logs.Debug("获取到boss后台的银行id = " + bankOrderId)
qy := query.SupplierOrderQueryResult(bankOrderId)
if qy {
c.Ctx.WriteString("success")
} else {
c.Ctx.WriteString("fail")
}
c.StopRun()
}
func (c *OrderController) OrderUpdate() {
bankOrderId := c.GetString("bankOrderId")
solveType := c.GetString("solveType")
orderInfo := order.GetOrderByBankOrderId(bankOrderId)
flag := false
if orderInfo.BankOrderId == "" {
logs.Error("该订单不存在,bankOrderId=", bankOrderId)
} else if orderInfo.Status != conf.SUCCESS {
logs.Notice("该订单没有完成支付不能进行此操作bankOrderId = ", bankOrderId)
} else {
switch solveType {
case conf.SUCCESS:
flag = service.SolvePaySuccess(bankOrderId, orderInfo.FactAmount, orderInfo.BankTransId)
case conf.FAIL:
flag = service.SolvePayFail(bankOrderId, orderInfo.BankTransId)
case conf.FREEZE_AMOUNT:
//将这笔订单进行冻结
flag = service.SolveOrderFreeze(bankOrderId)
case conf.UNFREEZE_AMOUNT:
//将这笔订单金额解冻
flag = service.SolveOrderUnfreeze(bankOrderId)
case conf.REFUND:
if orderInfo.Status == conf.SUCCESS {
flag = service.SolveRefund(bankOrderId)
}
case conf.ORDERROLL:
if orderInfo.Status == conf.SUCCESS {
flag = service.SolveOrderRoll(bankOrderId)
}
default:
logs.Error("不存在这样的处理类型")
}
if flag {
c.Ctx.WriteString(conf.SUCCESS)
} else {
c.Ctx.WriteString(conf.FAIL)
}
}
c.StopRun()
}

View File

@@ -12,8 +12,12 @@ package gateway
import (
"fmt"
"gateway/conf"
"gateway/models/payfor"
"gateway/models/road"
"gateway/pay_for"
"gateway/response"
"gateway/supplier/third_party"
"github.com/astaxie/beego/logs"
"github.com/beego/beego/v2/server/web"
"strings"
)
@@ -69,6 +73,45 @@ func (c *PayForGateway) PayForQuery() {
_ = c.ServeJSON()
}
/*
** 查询上游的代付结果
*/
func (c *PayForGateway) QuerySupplierPayForResult() {
bankOrderId := strings.TrimSpace(c.GetString("bankOrderId"))
p := payfor.GetPayForByBankOrderId(bankOrderId)
if p.RoadUid == "" {
c.Ctx.WriteString("fail")
} else {
roadInfo := road.GetRoadInfoByRoadUid(p.RoadUid)
supplierCode := roadInfo.ProductUid
supplier := third_party.GetPaySupplierByCode(supplierCode)
res := supplier.PayFor(p)
logs.Debug("代付查询结果:", res)
c.Ctx.WriteString("success")
}
}
/**
** 接收boss发送过来的代付手动处理结果
*/
func (c *PayForGateway) SolvePayForResult() {
resultType := strings.TrimSpace(c.GetString("resultType"))
bankOrderId := strings.TrimSpace(c.GetString("bankOrderId"))
p := payfor.GetPayForByBankOrderId(bankOrderId)
if p.BankOrderId == "" {
c.Ctx.WriteString(conf.FAIL)
}
if resultType == conf.PAYFOR_FAIL {
pay_for.PayForFail(p)
} else if resultType == conf.PAYFOR_SUCCESS {
pay_for.PayForSuccess(p)
}
c.Ctx.WriteString(conf.SUCCESS)
}
/*
* 商户查找余额
*/