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); } // 加赠送时间