From 385ceeecb6f6f10d319c3311341c54094a3bc152 Mon Sep 17 00:00:00 2001 From: irving Date: Sat, 18 Oct 2025 20:56:55 -0400 Subject: [PATCH] adjust logic, avoide race condition --- .../withdraw/service/impl/WithdrawalServiceImpl.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/play-admin/src/main/java/com/starry/admin/modules/withdraw/service/impl/WithdrawalServiceImpl.java b/play-admin/src/main/java/com/starry/admin/modules/withdraw/service/impl/WithdrawalServiceImpl.java index 47ac30c..de1f22b 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/withdraw/service/impl/WithdrawalServiceImpl.java +++ b/play-admin/src/main/java/com/starry/admin/modules/withdraw/service/impl/WithdrawalServiceImpl.java @@ -57,13 +57,12 @@ public class WithdrawalServiceImpl extends ServiceImpl lines = earningsService.findWithdrawable(clerkId, amount, now); - if (lines.isEmpty()) throw new CustomException("可提现余额不足"); + if (lines.isEmpty()) { + BigDecimal latestAvailable = earningsService.getAvailableAmount(clerkId, now); + throw new CustomException("可提现余额不足或已被锁定,当前可用:" + latestAvailable); + } // Reserve lines FIRST with temp ID (fail fast before creating request) String tempWithdrawalId = "TEMP_" + IdUtils.getUuid();