From 74b2f93db349c7d33f3a56905761e1ca396f778e Mon Sep 17 00:00:00 2001 From: Lemon Date: Mon, 8 Sep 2025 15:57:16 +0800 Subject: [PATCH] =?UTF-8?q?update=20=20=E4=BF=9D=E9=99=A9=E9=87=91?= =?UTF-8?q?=E9=A2=9D=E5=88=86=E8=B4=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/OrderBasicInfoServiceImpl.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index 5bbaa9d18..b0f2bda5d 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -1947,8 +1947,13 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { OrderBasicInfo orderBasicInfo = this.getOrderInfoByOrderCode(afterSettleOrderDTO.getOrderCode()); String payMode = orderBasicInfo.getPayMode(); + // 校验订单支付金额,消费金额,退款金额 BigDecimal orderPayAmount = afterSettleOrderDTO.getOrderPayAmount(); // 支付金额 + if (orderBasicInfo.getInsuranceAmount() != null) { + // 如果该笔订单保险金额不为空,则将支付金额 - 保险金额作为新的支付金额 + orderPayAmount = orderPayAmount.subtract(orderBasicInfo.getInsuranceAmount()); + } BigDecimal orderConsumeAmount = afterSettleOrderDTO.getOrderConsumeAmount(); // 消费金额 BigDecimal orderSettleAmount = afterSettleOrderDTO.getOrderSettleAmount(); BigDecimal orderRefundAmount = afterSettleOrderDTO.getOrderRefundAmount(); // 退款金额 @@ -2008,6 +2013,8 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { */ private List getOrderPaymentInfoList(AfterSettleOrderDTO afterSettleOrderDTO) { String orderCode = afterSettleOrderDTO.getOrderCode(); + OrderBasicInfo orderBasicInfo = afterSettleOrderDTO.getOrderBasicInfo(); + // 查询订单支付记录 List orderPayRecordList = orderPayRecordService.getOrderPayRecordList(orderCode); // 选出需要分账的支付id @@ -2052,6 +2059,9 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { // 订单编号 String orderCode = afterSettleOrderDTO.getOrderCode(); + // 订单信息 + OrderBasicInfo orderBasicInfo = afterSettleOrderDTO.getOrderBasicInfo(); + // 订单是否需要分账, 结算金额必须大于0 if (orderSettleAmount == null || orderSettleAmount.compareTo(BigDecimal.ZERO) <= 0) { logger.info("realTimeOrderSplit-订单[{}]结算金额[{}]必须大于0", afterSettleOrderDTO.getOrderCode(), orderSettleAmount); @@ -2175,6 +2185,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { @Override public List calculationSplitDataList(List stationSplitConfigList, AfterSettleOrderDTO afterSettleOrderDTO) { List resultList = Lists.newArrayList(); + OrderBasicInfo orderBasicInfo = afterSettleOrderDTO.getOrderBasicInfo(); // totalElecSplitRatio和totalServiceSplitRatio 都等于100%, 才进行后续操作 boolean verifySplitConfig = stationSplitConfigService.verifySplitConfig(stationSplitConfigList); @@ -2237,6 +2248,16 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { return resultList; } + // 如果保险金额不为空,新增一条分账信息 + if (orderBasicInfo.getInsuranceAmount() != null) { + SplitData insuranceSplit = new SplitData(); + insuranceSplit.setMemberId(Constants.ZERO); + insuranceSplit.setAmount(String.valueOf(orderBasicInfo.getInsuranceAmount())); + insuranceSplit.setFeeFlag(Constants.ZERO); + + resultList.add(insuranceSplit); + } + return resultList; }