| | |
| | | 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() { |
| | | } |
| | |
| | | return discount.max(BigDecimal.ZERO).min(serviceCharge).setScale(4, RoundingMode.HALF_EVEN); |
| | | } |
| | | |
| | | static BigDecimal[] calculateWhitelistRefundSplit(boolean whitelistOrder, |
| | | boolean whitelistAllFree, |
| | | BigDecimal electrovalence, |
| | | BigDecimal serviceCharge) { |
| | | 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}; |
| | | } |
| | | |