mirror of
https://github.com/kongyuebin1/dongfeng-pay.git
synced 2025-11-26 20:56:21 +08:00
将boss系统的逻辑移到了gateway系统
This commit is contained in:
70
gateway/controllers/gateway/order_controller.go
Normal file
70
gateway/controllers/gateway/order_controller.go
Normal 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()
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
/*
|
||||
* 商户查找余额
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user