This commit is contained in:
Lemon
2025-04-11 15:00:19 +08:00
5 changed files with 71 additions and 10 deletions

View File

@@ -2,6 +2,7 @@ package com.jsowell.pile.service;
import com.huifu.adapay.core.exception.BaseAdaPayException;
import com.jsowell.adapay.dto.SplitData;
import com.jsowell.adapay.response.PaymentConfirmResponse;
import com.jsowell.adapay.response.PaymentReverseResponse;
import com.jsowell.adapay.vo.OrderSplitResult;
import com.jsowell.common.core.domain.ykc.RealTimeMonitorData;
@@ -212,6 +213,8 @@ public interface OrderBasicInfoService{
OrderSplitResult realTimeOrderSplit(AfterSettleOrderDTO afterSettleOrderDTO) throws BaseAdaPayException;
PaymentConfirmResponse splittingMethod(AfterSettleOrderDTO afterSettleOrderDTO);
/**
* 计算分账数据
* @param stationSplitConfigList

View File

@@ -1986,7 +1986,8 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
* 实时分账方法
* @param afterSettleOrderDTO
*/
private PaymentConfirmResponse splittingMethod(AfterSettleOrderDTO afterSettleOrderDTO) {
@Override
public PaymentConfirmResponse splittingMethod(AfterSettleOrderDTO afterSettleOrderDTO) {
// 结算金额
BigDecimal orderSettleAmount = afterSettleOrderDTO.getOrderSettleAmount();
@@ -2066,9 +2067,11 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
}
// 需要分成的电费金额 = 总电费金额 - 电费优惠金额
BigDecimal orderElectricityAmount = afterSettleOrderDTO.getOrderElectricityAmount().subtract(afterSettleOrderDTO.getOrderElectricityDiscountAmount());
BigDecimal orderElectricityAmount = afterSettleOrderDTO.getOrderElectricityAmount()
.subtract(afterSettleOrderDTO.getOrderElectricityDiscountAmount() != null ? afterSettleOrderDTO.getOrderElectricityDiscountAmount() : BigDecimal.ZERO);
// 需要分成的服务费金额 = 总服务费金额 - 服务费优惠金额
BigDecimal orderServiceAmount = afterSettleOrderDTO.getOrderServiceAmount().subtract(afterSettleOrderDTO.getOrderServiceDiscountAmount());
BigDecimal orderServiceAmount = afterSettleOrderDTO.getOrderServiceAmount()
.subtract(afterSettleOrderDTO.getOrderServiceDiscountAmount() != null ? afterSettleOrderDTO.getOrderServiceDiscountAmount() : BigDecimal.ZERO);
// 校验 结算金额 = 需要分成的电费金额 + 需要分成的服务费金额
if (orderElectricityAmount.add(orderServiceAmount).compareTo(afterSettleOrderDTO.getOrderSettleAmount()) != 0) {
logger.info("订单结算金额:{}与需要分成的电费金额:{}+需要分成的服务费金额:{}不相等", afterSettleOrderDTO.getOrderSettleAmount(), orderElectricityAmount, orderServiceAmount);