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 28d210d10..022825359 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 @@ -2046,35 +2046,11 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { // 根据站点id查询分账配置(如果未配置则初始化) List stationSplitConfigList = stationSplitConfigService.queryByStationIdWithInit(stationId); - // 查字典是否开启收取平台支持服务费 + // 查字典是否开启收取平台支持服务费 1-开启; 0-关闭 String dictValue = DictUtils.getDictValue("platform_service_flag", "status"); - if (StringUtils.equals(dictValue, Constants.ONE)) { // 开启收取平台支持服务费 - // 根据站点id查询平台支持服务费率 - PileStationInfo pileStationInfo = pileStationInfoService.selectPileStationInfoById(Long.parseLong(stationId)); - // 如果是否对接高德为1, 并且支持服务费率大于0, 则收取平台支持服务费 - if (pileStationInfo != null - && StringUtils.equals(pileStationInfo.getAMapFlag(), Constants.ONE) - && pileStationInfo.getServiceRate().compareTo(BigDecimal.ZERO) > 0) { - // 获取平台支持服务费率 - BigDecimal serviceRate = pileStationInfo.getServiceRate(); - // 取出stationSplitConfigList中手续费承担方, 并把电费分成比例和服务费分成比例减去serviceRate - for (StationSplitConfig stationSplitConfig : stationSplitConfigList) { - if (Constants.ONE.equals(stationSplitConfig.getFeeFlag())) { - stationSplitConfig.setElectricitySplitRatio(stationSplitConfig.getElectricitySplitRatio().subtract(serviceRate)); - stationSplitConfig.setServiceSplitRatio(stationSplitConfig.getServiceSplitRatio().subtract(serviceRate)); - } - } - // 添加一个账户, adapayMemberId为0, 电费分成比例为serviceRate, 服务费分成比例为serviceRate - stationSplitConfigList.add(StationSplitConfig.builder() - .adapayMemberId(Constants.ZERO) - .electricitySplitRatio(serviceRate) - .serviceSplitRatio(serviceRate) - .feeFlag(Constants.ZERO) - .build() - ); - logger.info("realTimeOrderSplit-订单:{}, 收取平台支持服务费, 平台分成比例为:{}, stationSplitConfigList:{}", - orderCode, serviceRate, JSON.toJSONString(stationSplitConfigList)); - } + if (StringUtils.equals(dictValue, Constants.ONE)) { + // 开启收取平台支持服务费, 更新参与分账的账户列表 + updateSplitConfigList(stationId, stationSplitConfigList, orderCode); } // 计算每个参与分账的用户, 应分多少钱 @@ -2106,6 +2082,41 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { return paymentConfirmRequest; } + /** + * 开启了收取平台支持服务费, 更新订单分账账户列表 + * @param stationId + * @param stationSplitConfigList + * @param orderCode + */ + private void updateSplitConfigList(String stationId, List stationSplitConfigList, String orderCode) { + // 根据站点id查询平台支持服务费率 + PileStationInfo pileStationInfo = pileStationInfoService.selectPileStationInfoById(Long.parseLong(stationId)); + // 如果是否对接高德为1, 并且支持服务费率大于0, 则收取平台支持服务费 + if (pileStationInfo != null + && StringUtils.equals(pileStationInfo.getAMapFlag(), Constants.ONE) + && pileStationInfo.getServiceRate().compareTo(BigDecimal.ZERO) > 0) { + // 获取平台支持服务费率 + BigDecimal serviceRate = pileStationInfo.getServiceRate(); + // 取出stationSplitConfigList中手续费承担方, 并把电费分成比例和服务费分成比例减去serviceRate + for (StationSplitConfig stationSplitConfig : stationSplitConfigList) { + if (Constants.ONE.equals(stationSplitConfig.getFeeFlag())) { + stationSplitConfig.setElectricitySplitRatio(stationSplitConfig.getElectricitySplitRatio().subtract(serviceRate)); + stationSplitConfig.setServiceSplitRatio(stationSplitConfig.getServiceSplitRatio().subtract(serviceRate)); + } + } + // 添加一个账户, adapayMemberId为0, 电费分成比例为serviceRate, 服务费分成比例为serviceRate + stationSplitConfigList.add(StationSplitConfig.builder() + .adapayMemberId(Constants.ZERO) + .electricitySplitRatio(serviceRate) + .serviceSplitRatio(serviceRate) + .feeFlag(Constants.ZERO) + .build() + ); + logger.info("realTimeOrderSplit-订单:{}, 收取平台支持服务费, 平台分成比例为:{}, stationSplitConfigList:{}", + orderCode, serviceRate, JSON.toJSONString(stationSplitConfigList)); + } + } + /** * 计算每个账户需要分账的金额 * @param stationSplitConfigList 参与分账的账户信息