From 836b61ac6be733f3d4b718f560a24a3c448ef231 Mon Sep 17 00:00:00 2001 From: gaoqr <13665037151@163.com> Date: Fri, 26 Sep 2025 18:24:35 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E4=BA=A7=E5=93=81=E8=AE=A2=E8=B4=AD?= =?UTF-8?q?=E3=80=81=E5=BB=B6=E6=9C=9F=E3=80=81=E7=BB=AD=E6=9C=9F=E7=AD=89?= =?UTF-8?q?=E6=97=A5=E6=9C=9F=E8=AE=A1=E7=AE=97=E4=BC=98=E5=8C=96=EF=BC=9B?= =?UTF-8?q?2=E3=80=81=E8=B4=A6=E6=88=B7=E6=98=8E=E7=BB=86=E7=8E=B0?= =?UTF-8?q?=E9=87=91=E6=94=AF=E4=BB=98=E5=80=BC=E9=94=99=E8=AF=AF=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IncomeExpenseServiceImpl.java | 10 ++++++---- .../service/pay/PayProductProcessor.java | 20 +++++++++++-------- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/funds/incomeandexpense/IncomeExpenseServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/funds/incomeandexpense/IncomeExpenseServiceImpl.java index 422391aec..2597d8108 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/funds/incomeandexpense/IncomeExpenseServiceImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/funds/incomeandexpense/IncomeExpenseServiceImpl.java @@ -69,10 +69,12 @@ public class IncomeExpenseServiceImpl implements IncomeExpenseService { if (ObjectUtil.isNotNull(purchaseId)) { // 查询对应的购买记录 PurchaseRecordDO record = purchaseService.getRecord(purchaseId); - respVO.setProductPrice(record.getTotalAmount()); - respVO.setRechargePayAmount(record.getAccountBalanceSpent()); - respVO.setRechargePayAmount(record.getAlipaySpent().add(record.getWechatSpent())); - respVO.setGiftPayAmount(record.getGiftMoneySpent()); + if (ObjectUtil.isNotNull(record)) { + respVO.setProductPrice(record.getTotalAmount()); + respVO.setBalancePayAmount(record.getAccountBalanceSpent()); + respVO.setRechargePayAmount(record.getAlipaySpent().add(record.getWechatSpent())); + respVO.setGiftPayAmount(record.getGiftMoneySpent()); + } } } else if (TradeTypeEnum.MANUAL_ADJUST.getCode().equals(tradeType)) { respVO.setRechargeAmount(i.getCashAmountChange()); 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 b658febdd..962cb5cbc 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 @@ -86,7 +86,7 @@ public class PayProductProcessor { private PurchaseRecordDO previousPurchaseRecord; // 本地订购产品的开始时间 - private LocalDate startTime = LocalDate.now(); + private LocalDate startTime; // 产品结束时间 private LocalDate endTime; @@ -740,18 +740,22 @@ public class PayProductProcessor { .orElse(endTime); } - // 2、 判断是否过期 - if (maxDelayEnd.isBefore(today)) { - // 已过期,从今天开始 - startTime = today; + // 2、订单的生效时间 + startTime = today; + + // 3、 计算有效期叠加的起点 + LocalDate purchaseStart; + if (today.isAfter(maxDelayEnd)) { + // 已过期 → 从今天开始累加 + purchaseStart = today; } else { - // 未过期,从上次结束时间继续 - startTime = today.isBefore(maxDelayEnd) ? today : maxDelayEnd;; + // 未过期 → 从 maxDelayEnd 的下一天开始累加 + purchaseStart = maxDelayEnd; } // 加正常时间 if (ObjectUtil.isNotNull(duration) && durationUnit != null) { - endTime = addTime(startTime, duration, durationUnit); + endTime = addTime(purchaseStart, duration, durationUnit); } // 加赠送时间