longz
2026-08-11 79139c44f7d96f754e826fbc668e9967dcbed439
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -835,6 +835,12 @@
        AppUserWhitelistMatchVO whitelist = appUserWhitelistClient.matchWhitelist(userId, tChargingGun.getSiteId()).getData();
        boolean whitelistMatched = whitelist != null && Boolean.TRUE.equals(whitelist.getMatched());
        if (whitelistMatched) {
            if (isBalancePayMode(payMethod)) {
                return AjaxResult.error("白名单用户不支持余额支付");
            }
            if (addChargingOrder.getAppUserCouponId() != null) {
                return AjaxResult.error("白名单用户不支持使用优惠券");
            }
            addChargingOrder.setAppUserCouponId(null);
        }
        boolean whitelistAllFree = whitelistMatched
@@ -3077,6 +3083,7 @@
                platformIncomeTotal = platformIncomeTotal.add(getSummaryDecimal(batchMap, "platformIncomeTotal"));
                partnerIncomeTotal = partnerIncomeTotal.add(getSummaryDecimal(batchMap, "partnerIncomeTotal"));
            }
            platformIncomeTotal = platformIncomeTotal.add(nullToZero(this.baseMapper.sumWhitelistRefundByOrderIds(batchIds)));
        }
        totalMap.put("platformIncomeTotal", platformIncomeTotal);
        totalMap.put("partnerIncomeTotal", partnerIncomeTotal);
@@ -4601,7 +4608,8 @@
        if (item == null) {
            return;
        }
        item.setPlatformIncome(getSummaryDecimal(row, "platformIncome"));
        item.setPlatformIncome(getSummaryDecimal(row, "platformIncome")
                .add(getSummaryDecimal(row, "whitelistRefund")));
        item.setPartnerIncome(getSummaryDecimal(row, "partnerIncome"));
    }
@@ -4653,7 +4661,8 @@
        }
        for (ChargingOrderVO item : list) {
            Map<String, Object> row = incomeMap.get(item.getId());
            item.setPlatformIncome(getSummaryDecimal(row, "platformIncome"));
            item.setPlatformIncome(getSummaryDecimal(row, "platformIncome")
                    .add(getSummaryDecimal(row, "whitelistRefund")));
            item.setPartnerIncome(getSummaryDecimal(row, "partnerIncome"));
        }
    }
@@ -5048,7 +5057,7 @@
                    BigDecimal serviceCharge = originalServicePrice;
                    BigDecimal vipDiscountAmount = BigDecimal.ZERO;
                    //计算优惠金额
                    if (null != chargingOrder.getVipDiscount()) {
                    if (!isWhitelistOrder(chargingOrder) && null != chargingOrder.getVipDiscount()) {
                        //0.58折
                        vipDiscountAmount = serviceCharge.multiply(new BigDecimal(1).subtract(chargingOrder.getVipDiscount()));
                        serviceCharge = serviceCharge.multiply(chargingOrder.getVipDiscount());
@@ -8199,7 +8208,7 @@
                    BigDecimal serviceCharge = originalServicePrice;
                    BigDecimal vipDiscountAmount = BigDecimal.ZERO;
                    //计算优惠金额
                    if (null != chargingOrder.getVipDiscount()) {
                    if (!isWhitelistOrder(chargingOrder) && null != chargingOrder.getVipDiscount()) {
                        //0.58折
                        vipDiscountAmount = serviceCharge.multiply(new BigDecimal(1).subtract(chargingOrder.getVipDiscount()));
                        serviceCharge = serviceCharge.multiply(chargingOrder.getVipDiscount());
@@ -8387,7 +8396,7 @@
                                BigDecimal serviceCharge = originalServicePrice;
                                BigDecimal vipDiscountAmount = BigDecimal.ZERO;
                                //计算优惠金额
                                if (null != chargingOrder.getVipDiscount()) {
                                if (!isWhitelistOrder(chargingOrder) && null != chargingOrder.getVipDiscount()) {
                                    //0.58折
                                    vipDiscountAmount = serviceCharge.multiply(new BigDecimal(1).subtract(chargingOrder.getVipDiscount()));
                                    serviceCharge = serviceCharge.multiply(chargingOrder.getVipDiscount());