fix: 处理订单金额是0的情况
This commit is contained in:
parent
62a0a2c0af
commit
bf28865012
@ -153,6 +153,14 @@ func CreateAntomPay(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
currencyType := 0
|
||||
if req.ProductPriceCurrency == "cny" || req.ProductPriceCurrency == "CNY" {
|
||||
currencyType = 1
|
||||
}
|
||||
if req.ProductPriceCurrency == "usd" || req.ProductPriceCurrency == "USD" {
|
||||
currencyType = 2
|
||||
}
|
||||
|
||||
bundleName := "" // 套餐名称
|
||||
|
||||
if orderLimit != nil && orderLimit.Type == 1 { // 这儿的type实际就是source
|
||||
@ -318,6 +326,111 @@ func CreateAntomPay(c *gin.Context) {
|
||||
}
|
||||
}
|
||||
|
||||
if req.ProductAllPrice == 0 {
|
||||
////创建对账单 todo 待修改
|
||||
_, err = service.BundleProvider.CreateReconciliation(context.Background(), &bundle.ReconciliationInfo{
|
||||
BundleOrderOn: req.OutTradeNo,
|
||||
BundleAddOrderOn: req.OutTradeNo,
|
||||
UserName: userInfo.Name,
|
||||
UserTel: userInfo.TelNum,
|
||||
BundleName: bundleName,
|
||||
PayAmount: float32(req.ProductAllPrice),
|
||||
CurrencyType: int32(currencyType),
|
||||
PayStatus: 2,
|
||||
PayTime: common.GetBeijingTime(),
|
||||
UserID: userInfo.ID,
|
||||
SerialNumber: "zero-price-serial-number",
|
||||
})
|
||||
if err != nil {
|
||||
fmt.Println("=============== antom创建支付,创建对账单报错:", err)
|
||||
logger.Errorf("=============== antom创建支付,创建对账单报错:", err)
|
||||
service.Error(c, err)
|
||||
return
|
||||
}
|
||||
|
||||
_, updateStatusErr := service.BundleProvider.UpdateOrderRecordByOrderNo(context.Background(), &bundle.OrderRecord{
|
||||
OrderNo: req.OutTradeNo,
|
||||
PayTime: common.GetBeijingTime(),
|
||||
Status: bundleModel.OrderPaid,
|
||||
})
|
||||
if updateStatusErr != nil {
|
||||
fmt.Println("=============== antom创建支付,更新订单报错:", updateStatusErr)
|
||||
logger.Errorf("=============== antom创建支付,更新订单报错:", updateStatusErr)
|
||||
service.Error(c, updateStatusErr)
|
||||
return
|
||||
}
|
||||
|
||||
switch orderLimit.Type {
|
||||
case common.OrderTypePackage:
|
||||
//如果是购买套餐 1:创建新的余量信息CreateBundleBalance 2 添加扩展记录BundleExtend
|
||||
_, err = service.BundleProvider.CreateBundleBalance(context.Background(), &bundle.CreateBundleBalanceReq{
|
||||
UserId: int32(orderLimit.UserId),
|
||||
OrderUUID: orderLimit.OrderUUID,
|
||||
AccountNumber: orderLimit.AccountNumber,
|
||||
VideoNumber: orderLimit.VideoNumber,
|
||||
ImageNumber: orderLimit.ImageNumber,
|
||||
DataAnalysisNumber: orderLimit.DataNumber,
|
||||
ExpansionPacksNumber: 1,
|
||||
})
|
||||
if err != nil {
|
||||
fmt.Println("=============== antom创建支付,OrderTypePackage报错:", err)
|
||||
logger.Errorf("=============== antom创建支付,OrderTypePackage报错:", err)
|
||||
service.Error(c, err)
|
||||
return
|
||||
}
|
||||
case common.OrderTypeAddon:
|
||||
//如果是购买增值服务 1:修改余量信息AddBundleBalance 2 添加扩展记录BundleExtend
|
||||
_, err = service.BundleProvider.AddBundleBalance(context.Background(), &bundle.AddBundleBalanceReq{
|
||||
UserId: int32(orderLimit.UserId),
|
||||
OrderUUID: orderLimit.OrderUUID,
|
||||
AccountNumber: orderLimit.AccountNumber,
|
||||
VideoNumber: orderLimit.VideoNumber,
|
||||
ImageNumber: orderLimit.ImageNumber,
|
||||
DataAnalysisNumber: orderLimit.DataNumber,
|
||||
ExpansionPacksNumber: 1,
|
||||
})
|
||||
if err != nil {
|
||||
fmt.Println("=============== antom创建支付,OrderTypePackage报错:", err)
|
||||
logger.Errorf("=============== antom创建支付,OrderTypePackage报错:", err)
|
||||
service.Error(c, err)
|
||||
return
|
||||
}
|
||||
default:
|
||||
fmt.Println("=============== antom创建支付,无效的订单类型:", err)
|
||||
logger.Errorf("=============== antom创建支付,无效的订单类型:", err)
|
||||
service.Error(c, errors.New("无效的订单类型"))
|
||||
return
|
||||
}
|
||||
|
||||
var timeUnit uint32
|
||||
switch orderLimit.Unit {
|
||||
case "天":
|
||||
timeUnit = common.TimeUnitDay
|
||||
case "月":
|
||||
timeUnit = common.TimeUnitMonth
|
||||
case "年":
|
||||
timeUnit = common.TimeUnitYear
|
||||
default:
|
||||
timeUnit = 0
|
||||
}
|
||||
_, err = service.BundleProvider.BundleExtend(context.Background(), &bundle.BundleExtendRequest{
|
||||
UserId: int64(orderLimit.UserId),
|
||||
AccountAdditional: uint32(orderLimit.AccountNumber),
|
||||
VideoAdditional: uint32(orderLimit.VideoNumber),
|
||||
ImagesAdditional: uint32(orderLimit.ImageNumber),
|
||||
DataAdditional: uint32(orderLimit.DataNumber),
|
||||
AvailableDurationAdditional: uint32(orderLimit.Duration),
|
||||
TimeUnit: timeUnit,
|
||||
AssociatedorderNumber: req.OutTradeNo, //增值服务订单号
|
||||
})
|
||||
if err != nil {
|
||||
service.Error(c, err)
|
||||
return
|
||||
}
|
||||
|
||||
service.Success(c)
|
||||
}
|
||||
|
||||
var antomReq payment.CreatePayRequest
|
||||
antomReq.Payee = "Antom"
|
||||
antomReq.Platform = "antom"
|
||||
@ -359,14 +472,6 @@ func CreateAntomPay(c *gin.Context) {
|
||||
}
|
||||
fmt.Println("resp:", resp)
|
||||
|
||||
currencyType := 0
|
||||
if req.ProductPriceCurrency == "cny" || req.ProductPriceCurrency == "CNY" {
|
||||
currencyType = 1
|
||||
}
|
||||
if req.ProductPriceCurrency == "usd" || req.ProductPriceCurrency == "USD" {
|
||||
currencyType = 2
|
||||
}
|
||||
|
||||
////创建对账单 todo 待修改
|
||||
_, err = service.BundleProvider.CreateReconciliation(context.Background(), &bundle.ReconciliationInfo{
|
||||
BundleOrderOn: req.OutTradeNo,
|
||||
|
Loading…
Reference in New Issue
Block a user