longz
2026-08-19 2a916d05d9f14d583d89f77aed6f63fd49375f60
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ChargingCouponSupport.java
@@ -5,8 +5,11 @@
import java.math.BigDecimal;
import java.math.RoundingMode;
final class ChargingCouponSupport {
public final class ChargingCouponSupport {
    private static final BigDecimal TEN = new BigDecimal("10");
    private static final int WHITELIST_BENEFIT_ALL_FREE = 1;
    private static final int WHITELIST_BENEFIT_ELECTRIC_FREE = 2;
    private static final int WHITELIST_BENEFIT_SERVICE_FREE = 3;
    private ChargingCouponSupport() {
    }
@@ -64,15 +67,23 @@
        return discount.max(BigDecimal.ZERO).min(serviceCharge).setScale(4, RoundingMode.HALF_EVEN);
    }
    static BigDecimal[] calculateWhitelistRefundSplit(boolean whitelistOrder,
                                                       boolean whitelistAllFree,
    public static BigDecimal[] calculateWhitelistRefundSplitByBenefitType(boolean whitelistOrder,
                                                                          Integer whitelistBenefitType,
                                                       BigDecimal electrovalence,
                                                       BigDecimal serviceCharge) {
        BigDecimal electricDiscount = BigDecimal.ZERO;
        BigDecimal serviceDiscount = BigDecimal.ZERO;
        if (!whitelistOrder) {
            return new BigDecimal[]{BigDecimal.ZERO, BigDecimal.ZERO};
            return new BigDecimal[]{electricDiscount, serviceDiscount};
        }
        BigDecimal electricDiscount = whitelistAllFree ? money(electrovalence) : BigDecimal.ZERO;
        BigDecimal serviceDiscount = money(serviceCharge);
        if (Integer.valueOf(WHITELIST_BENEFIT_ALL_FREE).equals(whitelistBenefitType)) {
            electricDiscount = money(electrovalence);
            serviceDiscount = money(serviceCharge);
        } else if (Integer.valueOf(WHITELIST_BENEFIT_ELECTRIC_FREE).equals(whitelistBenefitType)) {
            electricDiscount = money(electrovalence);
        } else if (Integer.valueOf(WHITELIST_BENEFIT_SERVICE_FREE).equals(whitelistBenefitType)) {
            serviceDiscount = money(serviceCharge);
        }
        return new BigDecimal[]{electricDiscount, serviceDiscount};
    }