| | |
| | | import com.ruoyi.order.api.model.*; |
| | | import com.ruoyi.order.api.vo.TransactionRecordMessageVO; |
| | | import com.ruoyi.order.service.*; |
| | | import com.ruoyi.order.service.impl.ChargingCouponSupport; |
| | | import com.ruoyi.order.util.mongodb.service.TransactionRecordService; |
| | | import com.ruoyi.order.util.mongodb.service.UploadRealTimeMonitoringDataService; |
| | | import com.ruoyi.other.api.domain.TCoupon; |
| | |
| | | @Component |
| | | public class TaskUtil implements ApplicationListener<WebServerInitializedEvent> { |
| | | 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; |
| | | |
| | | @Resource |
| | | private TChargingBillService chargingBillService; |
| | |
| | | * @return 数组下标0=电费减免,下标1=服务费减免 |
| | | */ |
| | | private BigDecimal[] calculateWhitelistRefundSplit(TChargingOrder order, BigDecimal electrovalence, BigDecimal serviceCharge) { |
| | | BigDecimal electricDiscount = BigDecimal.ZERO; |
| | | BigDecimal serviceDiscount = BigDecimal.ZERO; |
| | | if (!isWhitelistOrder(order)) { |
| | | return new BigDecimal[]{electricDiscount, serviceDiscount}; |
| | | } |
| | | if (Integer.valueOf(WHITELIST_BENEFIT_ALL_FREE).equals(order.getWhitelistBenefitType())) { |
| | | electricDiscount = electrovalence == null ? BigDecimal.ZERO : electrovalence; |
| | | serviceDiscount = serviceCharge == null ? BigDecimal.ZERO : serviceCharge; |
| | | } else if (Integer.valueOf(WHITELIST_BENEFIT_ELECTRIC_FREE).equals(order.getWhitelistBenefitType())) { |
| | | electricDiscount = electrovalence == null ? BigDecimal.ZERO : electrovalence; |
| | | } else if (Integer.valueOf(WHITELIST_BENEFIT_SERVICE_FREE).equals(order.getWhitelistBenefitType())) { |
| | | serviceDiscount = serviceCharge == null ? BigDecimal.ZERO : serviceCharge; |
| | | } |
| | | return new BigDecimal[]{electricDiscount, serviceDiscount}; |
| | | return ChargingCouponSupport.calculateWhitelistRefundSplitByBenefitType( |
| | | isWhitelistOrder(order), |
| | | order == null ? null : order.getWhitelistBenefitType(), |
| | | electrovalence, |
| | | serviceCharge); |
| | | } |
| | | |
| | | /** |