From 4f6f15b818704079ff2e4e4719b798f48d68a335 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期五, 11 九月 2026 13:52:19 +0800
Subject: [PATCH] update
---
backend/src/main/java/com/tourguide/modules/finance/service/GuideWithdrawableBalanceService.java | 12 ++++++++++++
1 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/backend/src/main/java/com/tourguide/modules/finance/service/GuideWithdrawableBalanceService.java b/backend/src/main/java/com/tourguide/modules/finance/service/GuideWithdrawableBalanceService.java
index 84ab601..23c9f68 100644
--- a/backend/src/main/java/com/tourguide/modules/finance/service/GuideWithdrawableBalanceService.java
+++ b/backend/src/main/java/com/tourguide/modules/finance/service/GuideWithdrawableBalanceService.java
@@ -29,6 +29,12 @@
return value.signum() > 0 && guideUserMapper.decreaseBalance(guideId, value) == 1;
}
+ /** 退款冲正只扣除当前余额,余额不足时保留为零,避免退款回调因余额竞争失败。 */
+ public boolean debitForRefund(Long guideId, BigDecimal amount) {
+ BigDecimal value = money(amount);
+ return value.signum() > 0 && guideUserMapper.decreaseBalanceForRefund(guideId, value) == 1;
+ }
+
public void credit(Long guideId, BigDecimal amount) {
BigDecimal value = money(amount);
if (value.signum() == 0) return;
@@ -49,6 +55,12 @@
&& guideTeamMapper.decreaseBalance(teamId, value) == 1;
}
+ public boolean debitTeamForRefund(Long teamId, BigDecimal amount) {
+ BigDecimal value = money(amount);
+ return teamId != null && value.signum() > 0
+ && guideTeamMapper.decreaseBalanceForRefund(teamId, value) == 1;
+ }
+
public void creditTeam(Long teamId, BigDecimal amount) {
BigDecimal value = money(amount);
if (value.signum() == 0) return;
--
Gitblit v1.7.1