You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
dongfeng-pay/jhboss/controllers/query.go

103 lines
2.5 KiB
Go

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/***************************************************
** @Desc : This file for ...
** @Time : 2019/11/6 14:03
** @Author : yuebin
** @File : query.go
** @Last Modified by : yuebin
** @Last Modified time: 2019/11/6 14:03
** @Software: GoLand
****************************************************/
package controllers
import (
"fmt"
"github.com/astaxie/beego"
"github.com/astaxie/beego/logs"
"dongfeng-pay/service/common"
"dongfeng-pay/service/controller"
"dongfeng-pay/service/models"
"strings"
)
type SupplierQuery struct {
beego.Controller
}
func OrderQuery(bankOrderId string) string {
orderInfo := models.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 "该订单已经处理完毕"
}
supplierCode := orderInfo.PayProductCode
supplier := controller.GetPaySupplierByCode(supplierCode)
flag := supplier.PayQuery(orderInfo)
if flag {
return "查询完毕,返回正确结果"
} else {
return "订单还在处理中"
}
}
func (c *SupplierQuery) SupplierOrderQuery() {
bankOrderId := strings.TrimSpace(c.GetString("bankOrderId"))
exist := models.BankOrderIdIsEixst(bankOrderId)
keyDataJSON := new(KeyDataJSON)
if !exist {
keyDataJSON.Msg = "该订单不存在"
}
msg := OrderQuery(bankOrderId)
keyDataJSON.Msg = msg
c.Data["json"] = keyDataJSON
c.ServeJSON()
}
/*
* 向上游查询代付结果
*/
func (c *SupplierQuery) SupplierPayForQuery() {
bankOrderId := strings.TrimSpace(c.GetString("bankOrderId"))
keyDataJSON := new(KeyDataJSON)
keyDataJSON.Code = 200
if bankOrderId == "" {
keyDataJSON.Code = -1
keyDataJSON.Msg = "不存在这样的代付订单"
} else {
payFor := models.GetPayForByBankOrderId(bankOrderId)
if payFor.RoadUid == "" {
keyDataJSON.Msg = "该代付订单没有对应的通道uid"
} else {
roadInfo := models.GetRoadInfoByRoadUid(payFor.RoadUid)
supplier := controller.GetPaySupplierByCode(roadInfo.ProductUid)
result, msg := supplier.PayForQuery(payFor)
keyDataJSON.Msg = msg
if result == common.PAYFOR_SUCCESS {
controller.PayForSuccess(payFor)
} else if result == common.PAYFOR_FAIL {
controller.PayForFail(payFor)
} else {
logs.Info("银行处理中")
}
}
}
c.Data["json"] = keyDataJSON
c.ServeJSON()
}