diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderBasicInfoService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderBasicInfoService.java index 979ede569..90655c1f4 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderBasicInfoService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderBasicInfoService.java @@ -204,6 +204,8 @@ public interface OrderBasicInfoService{ OrderSplitResult realTimeOrderSplit(AfterSettleOrderDTO afterSettleOrderDTO) throws BaseAdaPayException; + List calculationOfSplitAmount(List stationSplitConfigList, AfterSettleOrderDTO afterSettleOrderDTO); + List calculationOfSplitAmount(List stationSplitConfigList, AfterSettleOrderDTO afterSettleOrderDTO, List paymentInfos); /** 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 bfb62b140..df482ebf8 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 @@ -1700,18 +1700,30 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { * @param afterSettleOrderDTO */ private void splittingMethod(AfterSettleOrderDTO afterSettleOrderDTO) { - BigDecimal orderSettleAmount = afterSettleOrderDTO.getOrderSettleAmount(); // 结算金额 - // 订单是否需要分账 - if (orderSettleAmount.compareTo(BigDecimal.ZERO) > 0) { + // 结算金额 + BigDecimal orderSettleAmount = afterSettleOrderDTO.getOrderSettleAmount() == null ? BigDecimal.ZERO : afterSettleOrderDTO.getOrderSettleAmount(); + // 订单是否需要分账, 结算金额必须大于0 + if (orderSettleAmount.compareTo(BigDecimal.ZERO) <= 0) { + logger.info("订单结算金额必须大于0"); + return; } + // 校验分账 + verifyOrderAllAmount(afterSettleOrderDTO); + // 根据站点id查询分账配置 List stationSplitConfigList = stationSplitConfigService.queryByStationId(afterSettleOrderDTO.getStationId()); // 订单分账 + calculationOfSplitAmount(stationSplitConfigList, afterSettleOrderDTO); } + @Override + public List calculationOfSplitAmount(List stationSplitConfigList, AfterSettleOrderDTO afterSettleOrderDTO) { + return calculationOfSplitAmount(stationSplitConfigList, afterSettleOrderDTO, null); + } + /** * 计算每个账户需要分账的金额 * @param stationSplitConfigList 参与分账的账户信息