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 a844afe8e..ef27518a0 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 @@ -2042,6 +2042,37 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { // 根据站点id查询分账配置(如果未配置则初始化) List stationSplitConfigList = stationSplitConfigService.queryByStationIdWithInit(stationId); + // 查字典是否开启收取平台支持服务费 + 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)); + } + } + // 计算每个参与分账的用户, 应分多少钱 List splitDataList = calculationSplitDataList(stationSplitConfigList, afterSettleOrderDTO); List divMemberList = transformDivMemberList(splitDataList); diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/programlogic/AbstractProgramLogic.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/programlogic/AbstractProgramLogic.java index dfd9e2ea9..1791b2b9f 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/programlogic/AbstractProgramLogic.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/programlogic/AbstractProgramLogic.java @@ -1109,8 +1109,8 @@ public abstract class AbstractProgramLogic implements InitializingBean { orderDetail.setDiscountElectricityAmount(electricityAmountDiscount); // 服务费折扣金额(服务费便宜了多少钱) orderDetail.setDiscountServiceAmount(serviceAmountDiscount); - logger.info("计算订单折扣V2, orderCode:{}, memberId:{}, 订单折扣金额:{}, 电费折扣金额:{}, 服务费折扣金额:{}, 优惠后总消费金额:{}", - orderCode, memberId, discountAmount, electricityAmountDiscount, serviceAmountDiscount, totalConsumeAmount); + logger.info("计算订单折扣V2, orderCode:{}, memberId:{}, 订单折扣金额:{}, 电费折扣金额:{}, 服务费折扣金额:{}, 优惠后总消费金额:{}, 更新后退款金额:{}", + orderCode, memberId, discountAmount, electricityAmountDiscount, serviceAmountDiscount, totalConsumeAmount, refundAmount); } /**