From 38e265af32e4abc48d4625d0b3676543e6618736 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期二, 13 十月 2026 17:21:55 +0800
Subject: [PATCH] 修改bug
---
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardChargingOrderServiceImpl.java | 15 ++++++++++-----
1 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardChargingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardChargingOrderServiceImpl.java
index 9457b9c..5429658 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardChargingOrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardChargingOrderServiceImpl.java
@@ -740,7 +740,7 @@
* 1) 企业状态校验(未归属/不存在/停用 -> 失败码2),账户模式取企业配置(默认共享);
* 2) 企业充电授权校验:站点范围(超范围 -> 失败码2)、可用时段(不在时段 -> 失败码2),未配置授权按放行处理;
* 3) 可用余额校验(共享=企业可用余额,分配=卡可用余额,<=0 -> 失败码3);
- * 4) 下发金额 = min(授权下发额, 可用余额),锁定额度与下发金额一致;授权截止时间用于监控提前停充。
+ * 4) 下发金额:共享模式=min(授权下发额, 可用余额),分配模式=卡账户余额;锁定额度与下发金额一致;授权截止时间用于监控提前停充。
*/
private ChargeAccountSupport.ChargeContext resolveCardChargeContext(Integer siteId, Integer strategyId,
TChargingCard card) {
@@ -796,11 +796,16 @@
return ChargeAccountSupport.ChargeContext.fail(3, "账户可用余额不足");
}
- // 4. 下发金额 = min(授权下发额, 可用余额),锁定金额与下发金额一致
- BigDecimal dispatchAmount = authorization == null || authorization.getDispatchAmount() == null
- ? ChargeAccountSupport.DEFAULT_DISPATCH_AMOUNT : authorization.getDispatchAmount();
- if (dispatchAmount.compareTo(usable) > 0) {
+ // 4. 下发金额:共享模式=min(授权下发额, 可用余额),分配模式=卡账户余额;锁定金额与下发金额一致
+ BigDecimal dispatchAmount;
+ if (Integer.valueOf(ChargeAccountSupport.ACCOUNT_MODE_ALLOCATED).equals(accountMode)) {
dispatchAmount = usable;
+ } else {
+ dispatchAmount = authorization == null || authorization.getDispatchAmount() == null
+ ? ChargeAccountSupport.DEFAULT_DISPATCH_AMOUNT : authorization.getDispatchAmount();
+ if (dispatchAmount.compareTo(usable) > 0) {
+ dispatchAmount = usable;
+ }
}
if (dispatchAmount.compareTo(BigDecimal.ZERO) <= 0) {
return ChargeAccountSupport.ChargeContext.fail(3, "账户可用余额不足");
--
Gitblit v1.7.1