From b14ed0628a6563c4537b9d0e48c1293bdd040634 Mon Sep 17 00:00:00 2001 From: gaoqr <13665037151@163.com> Date: Thu, 18 Sep 2025 09:23:12 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E4=BF=AE=E6=AD=A3=E8=BD=AF=E4=BB=B6?= =?UTF-8?q?=E8=B4=AD=E4=B9=B0=EF=BC=9A=E9=A6=96=E8=B4=AD=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E4=B8=8D=E5=AD=98=E5=9C=A8=E5=88=9B=E5=BB=BA=E6=97=B6=E8=B4=AD?= =?UTF-8?q?=E4=B9=B0=E8=AE=B0=E5=BD=95=E7=9A=84=E9=A6=96=E8=B4=AD=E6=A0=87?= =?UTF-8?q?=E8=AE=B0=E4=B8=BAtrue=EF=BC=9B2=E3=80=81=E7=BB=84=E7=BB=87?= =?UTF-8?q?=E5=8F=AF=E7=94=A8=E9=87=91swagger=E6=96=87=E6=A1=A3=E8=AF=B4?= =?UTF-8?q?=E6=98=8E=E4=BF=AE=E6=94=B9=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organamount/OrganAmountController.java | 2 +- .../service/pay/PayProductProcessor.java | 20 ++++++++++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/funds/organamount/OrganAmountController.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/funds/organamount/OrganAmountController.java index e1424913b..02677c554 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/funds/organamount/OrganAmountController.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/funds/organamount/OrganAmountController.java @@ -46,7 +46,7 @@ public class OrganAmountController { } @GetMapping("/available") - @Operation(summary = "获取管理端组织可用金") + @Operation(summary = "获取组织可用金") public CommonResult getOrganAvailableAmount() { return success(organAmountService.getOrganAvailableAmount()); } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/pay/PayProductProcessor.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/pay/PayProductProcessor.java index acd4a99c4..42860dd33 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/pay/PayProductProcessor.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/pay/PayProductProcessor.java @@ -57,6 +57,8 @@ public class PayProductProcessor { private MybatisIdProperties mybatisIdProperties; + private boolean initialized = false; + public PayProductProcessor(ProductsDO productsDO, ProductsDetailDO productsDetailDO, PurchaseRecordDO orgInitialPurchaseRecord, OrganAmountDO organAmountDO, Long organId, ChenfengPayConfig payConfig, MybatisIdProperties mybatisIdProperties) { this.productsDO = productsDO; @@ -75,7 +77,15 @@ public class PayProductProcessor { */ public ProductProcessorRespVO processPayment(PayProductChannelCodeEnum payType) { // 首次购买记录存在则需要做计算,否则直接用定价规则的现价 - BigDecimal price = ObjectUtil.isNotNull(orgInitialPurchaseRecord) ? computePrice(orgInitialPurchaseRecord, productsDetailDO) : productsDetailDO.getCurrentPrice(); + boolean initialPurchaseExist = ObjectUtil.isNotNull(orgInitialPurchaseRecord); + BigDecimal price; + if (initialPurchaseExist) { + price = computePrice(orgInitialPurchaseRecord, productsDetailDO); + } else { + price = productsDetailDO.getCurrentPrice(); + // 首次购买记录是空,那么当前就是首次订购 + initialized = true; + } // 当前组织的余额 BigDecimal balance = organAmountDO.getAmount(); // 当前组织的赠送金 @@ -138,6 +148,7 @@ public class PayProductProcessor { .monthAverageAmount(orgInitialPurchaseRecord.getMonthAverageAmount()) .accountBalanceSpent(price) .isInvocing(InvoiceStatusEnum.INVOICABLE.getCode()) + .initial(initialized) .build(); purchaseRecordDO.setEndTime(calculateEndTime(purchaseRecordDO.getStartTime(), purchaseRecordDO.getPurchaseDuration(), purchaseRecordDO.getPurchaseDurationUnit(), @@ -194,6 +205,7 @@ public class PayProductProcessor { .monthAverageAmount(orgInitialPurchaseRecord.getMonthAverageAmount()) .accountBalanceSpent(price) .isInvocing(InvoiceStatusEnum.INVOICABLE.getCode()) + .initial(initialized) .build(); purchaseRecordDO.setEndTime(calculateEndTime(purchaseRecordDO.getStartTime(), purchaseRecordDO.getPurchaseDuration(), purchaseRecordDO.getPurchaseDurationUnit(), @@ -247,6 +259,7 @@ public class PayProductProcessor { .originalAmount(productsDetailDO.getCurrentPrice()) .monthAverageAmount(orgInitialPurchaseRecord.getMonthAverageAmount()) .alipaySpent(price) + .initial(initialized) .build(); purchaseRecordDO.setEndTime(calculateEndTime(purchaseRecordDO.getStartTime(), purchaseRecordDO.getPurchaseDuration(), purchaseRecordDO.getPurchaseDurationUnit(), @@ -282,6 +295,7 @@ public class PayProductProcessor { .originalAmount(productsDetailDO.getCurrentPrice()) .monthAverageAmount(orgInitialPurchaseRecord.getMonthAverageAmount()) .wechatSpent(price) + .initial(initialized) .build(); purchaseRecordDO.setEndTime(calculateEndTime(purchaseRecordDO.getStartTime(), purchaseRecordDO.getPurchaseDuration(), purchaseRecordDO.getPurchaseDurationUnit(), @@ -322,6 +336,7 @@ public class PayProductProcessor { .originalAmount(productsDetailDO.getCurrentPrice()) .monthAverageAmount(orgInitialPurchaseRecord.getMonthAverageAmount()) .isInvocing(InvoiceStatusEnum.INVOICABLE.getCode()) + .initial(initialized) .build(); purchaseRecordDO.setEndTime(calculateEndTime(purchaseRecordDO.getStartTime(), purchaseRecordDO.getPurchaseDuration(), purchaseRecordDO.getPurchaseDurationUnit(), @@ -397,6 +412,7 @@ public class PayProductProcessor { .totalAmount(price) .originalAmount(productsDetailDO.getCurrentPrice()) .monthAverageAmount(orgInitialPurchaseRecord.getMonthAverageAmount()) + .initial(initialized) .build(); purchaseRecordDO.setEndTime(calculateEndTime(purchaseRecordDO.getStartTime(), purchaseRecordDO.getPurchaseDuration(), purchaseRecordDO.getPurchaseDurationUnit(), @@ -471,6 +487,7 @@ public class PayProductProcessor { .totalAmount(price) .originalAmount(productsDetailDO.getCurrentPrice()) .monthAverageAmount(orgInitialPurchaseRecord.getMonthAverageAmount()) + .initial(initialized) .build(); purchaseRecordDO.setEndTime(calculateEndTime(purchaseRecordDO.getStartTime(), purchaseRecordDO.getPurchaseDuration(), purchaseRecordDO.getPurchaseDurationUnit(), @@ -548,6 +565,7 @@ public class PayProductProcessor { .totalAmount(price) .originalAmount(productsDetailDO.getCurrentPrice()) .monthAverageAmount(orgInitialPurchaseRecord.getMonthAverageAmount()) + .initial(initialized) .build(); purchaseRecordDO.setEndTime(calculateEndTime(purchaseRecordDO.getStartTime(), purchaseRecordDO.getPurchaseDuration(), purchaseRecordDO.getPurchaseDurationUnit(),