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; }