mirror of
https://github.com/kongyuebin1/dongfeng-pay.git
synced 2024-12-25 19:42:25 +08:00
99 lines
2.4 KiB
Go
99 lines
2.4 KiB
Go
|
package service
|
|||
|
|
|||
|
import (
|
|||
|
"boss/datas"
|
|||
|
"boss/models/order"
|
|||
|
"boss/models/payfor"
|
|||
|
"fmt"
|
|||
|
"github.com/beego/beego/v2/client/httplib"
|
|||
|
"github.com/beego/beego/v2/core/logs"
|
|||
|
"github.com/beego/beego/v2/server/web"
|
|||
|
)
|
|||
|
|
|||
|
type QueryService struct {
|
|||
|
}
|
|||
|
|
|||
|
func OrderQuery(bankOrderId string) string {
|
|||
|
|
|||
|
orderInfo := order.GetOrderByBankOrderId(bankOrderId)
|
|||
|
|
|||
|
if orderInfo.BankOrderId == "" || len(orderInfo.BankOrderId) == 0 {
|
|||
|
logs.Error("不存在这样的订单,订单查询结束")
|
|||
|
return "不存在这样的订单"
|
|||
|
}
|
|||
|
|
|||
|
if orderInfo.Status != "" && orderInfo.Status != "wait" {
|
|||
|
logs.Error(fmt.Sprintf("该订单=%s,已经处理完毕,", bankOrderId))
|
|||
|
return "该订单已经处理完毕"
|
|||
|
}
|
|||
|
|
|||
|
// 向gateway发送请求,请求上游的支付结果
|
|||
|
gUrl, _ := web.AppConfig.String("gateway::host")
|
|||
|
gUrl = gUrl + "supplier/order/query" + "?" + "bankOrderId=" + bankOrderId
|
|||
|
res, err := httplib.Get(gUrl).String()
|
|||
|
if err != nil {
|
|||
|
logs.Error("获取gateway上游订单查询结果失败:" + err.Error())
|
|||
|
}
|
|||
|
|
|||
|
if res == "success" {
|
|||
|
return res
|
|||
|
}
|
|||
|
|
|||
|
return "fail"
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
func (c *QueryService) SupplierOrderQuery(bankOrderId string) *datas.KeyDataJSON {
|
|||
|
|
|||
|
keyDataJSON := new(datas.KeyDataJSON)
|
|||
|
keyDataJSON.Code = 200
|
|||
|
exist := order.BankOrderIdIsEixst(bankOrderId)
|
|||
|
if !exist {
|
|||
|
keyDataJSON.Msg = "该订单不存在"
|
|||
|
keyDataJSON.Code = -1
|
|||
|
}
|
|||
|
|
|||
|
msg := OrderQuery(bankOrderId)
|
|||
|
|
|||
|
keyDataJSON.Msg = msg
|
|||
|
return keyDataJSON
|
|||
|
}
|
|||
|
|
|||
|
func (c *QueryService) SupplierPayForQuery(bankOrderId string) *datas.KeyDataJSON {
|
|||
|
keyDataJSON := new(datas.KeyDataJSON)
|
|||
|
keyDataJSON.Code = 200
|
|||
|
|
|||
|
if bankOrderId == "" {
|
|||
|
keyDataJSON.Code = -1
|
|||
|
keyDataJSON.Msg = "不存在这样的代付订单"
|
|||
|
} else {
|
|||
|
payFor := payfor.GetPayForByBankOrderId(bankOrderId)
|
|||
|
if payFor.RoadUid == "" {
|
|||
|
keyDataJSON.Msg = "该代付订单没有对应的通道uid"
|
|||
|
} else {
|
|||
|
result := querySupplierPayForResult(bankOrderId)
|
|||
|
if result {
|
|||
|
keyDataJSON.Msg = "处理成功!"
|
|||
|
} else {
|
|||
|
keyDataJSON.Msg = "处理失败!"
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
return keyDataJSON
|
|||
|
}
|
|||
|
|
|||
|
func querySupplierPayForResult(bankOrderId string) bool {
|
|||
|
payforUrl, _ := web.AppConfig.String("gateway::host")
|
|||
|
u := payforUrl + "gateway/supplier/payfor/query" + "?bankOrderId=" + bankOrderId
|
|||
|
s, err := httplib.Get(u).String()
|
|||
|
if err != nil {
|
|||
|
logs.Error("处理代付查询请求gateway失败:", err)
|
|||
|
return false
|
|||
|
}
|
|||
|
if s == "fail" {
|
|||
|
return false
|
|||
|
} else {
|
|||
|
return true
|
|||
|
}
|
|||
|
}
|