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 022825359..2d4e8c253 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 @@ -2076,9 +2076,13 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { .wechatAppId(appId) .build(); PaymentConfirmResponse paymentConfirmRequest = adapayService.createPaymentConfirmRequest(param); + // 保存订单分账记录 OrderInfoDetailVO orderInfoDetailVO = getOrderInfoDetailVO(orderCode); orderSplitRecordService.saveOrderSplitRecord(param, paymentConfirmRequest, splitDataList, orderInfoDetailVO); + + // 更新订单实收金额 + updateOrderReceivedAmount(orderCode, splitDataList); return paymentConfirmRequest; } @@ -2117,6 +2121,27 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { } } + /** + * 更新订单实收金额 + */ + private void updateOrderReceivedAmount(String orderCode, List splitDataList) { + BigDecimal actualReceivedAmount = BigDecimal.ZERO; + for (SplitData splitData : splitDataList) { + // 如果是手续费承担方, 计算实收金额 + if (StringUtils.equals(splitData.getFeeFlag(), Constants.Y)) { + actualReceivedAmount = splitData.getElecAmount().add(splitData.getServiceAmount()); + } + } + // 先查再更新 + OrderBasicInfo orderInfo = getOrderInfoByOrderCode(orderCode); + if (orderInfo != null && actualReceivedAmount.compareTo(BigDecimal.ZERO) > 0) { + orderInfo.setActualReceivedAmount(actualReceivedAmount); + orderInfo.setUpdateBy(Constants.SYSTEM); + orderInfo.setUpdateTime(DateUtils.getNowDate()); + this.updateOrderBasicInfo(orderInfo); + } + } + /** * 计算每个账户需要分账的金额 * @param stationSplitConfigList 参与分账的账户信息