From 79139c44f7d96f754e826fbc668e9967dcbed439 Mon Sep 17 00:00:00 2001
From: longz <longzhaoz@qq.com>
Date: 星期二, 11 八月 2026 15:35:03 +0800
Subject: [PATCH] fix: restrict whitelist charging benefits
---
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 19 ++++++++++++++-----
1 files changed, 14 insertions(+), 5 deletions(-)
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
index e6fd2b8..49fca93 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
+++ b/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());
--
Gitblit v1.7.1