dongfeng-pay/boss/service/queryService.go

99 lines
2.4 KiB
Go
Raw Normal View History

2021-11-11 10:32:40 +08:00
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
}
}