修复余额不足仍可启动充电问题

统一启动金额优先级并在启动前校验会员余额。

同步完成订单创建和余额支付后再返回鉴权成功,并增加支付凭证补偿、异常停机和结算保护。
This commit is contained in:
Guoqs
2026-07-25 09:54:37 +08:00
parent bfa209becb
commit 1b37a7d5e8
18 changed files with 851 additions and 126 deletions

View File

@@ -0,0 +1,33 @@
package com.jsowell.pile.util;
import com.jsowell.common.constant.Constants;
import org.junit.jupiter.api.Test;
import java.math.BigDecimal;
import static org.junit.jupiter.api.Assertions.assertEquals;
class ChargeAmountUtilsTest {
@Test
void resolveStartupAmount_shouldPreferFrontendAmount() {
BigDecimal amount = ChargeAmountUtils.resolveStartupAmount(
new BigDecimal("100"), new BigDecimal("300"));
assertEquals(new BigDecimal("100"), amount);
}
@Test
void resolveStartupAmount_shouldUseMemberDefaultWhenFrontendAmountIsNull() {
BigDecimal amount = ChargeAmountUtils.resolveStartupAmount(null, new BigDecimal("300"));
assertEquals(new BigDecimal("300"), amount);
}
@Test
void resolveStartupAmount_shouldUseCodeDefaultWhenOtherAmountsAreUnavailable() {
BigDecimal amount = ChargeAmountUtils.resolveStartupAmount(null, BigDecimal.ZERO);
assertEquals(Constants.BALANCE_PAY_MAX_AMOUNT_NEW, amount);
}
}