From f27855593db5336268a6b6e179606a2d2159f514 Mon Sep 17 00:00:00 2001 From: Guoqs <123@jsowell.com> Date: Mon, 2 Dec 2024 10:32:11 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E7=9A=84=E7=BB=93=E7=AE=97=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pile/service/OrderBasicInfoService.java | 2 ++ .../impl/OrderBasicInfoServiceImpl.java | 18 +++++++++++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) 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 参与分账的账户信息