diff --git a/pkg/service/bundle/pay.go b/pkg/service/bundle/pay.go index b35aa40..162fe8c 100644 --- a/pkg/service/bundle/pay.go +++ b/pkg/service/bundle/pay.go @@ -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,