From 9102aa7e0b42ce5b9667fa3b67fede889df60fc0 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Fri, 02 May 2025 20:08:00 +0800
Subject: [PATCH] /

---
 src/main/java/project/wallet/internal/WalletServiceImpl.java |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/src/main/java/project/wallet/internal/WalletServiceImpl.java b/src/main/java/project/wallet/internal/WalletServiceImpl.java
index a27dee8..089e16e 100644
--- a/src/main/java/project/wallet/internal/WalletServiceImpl.java
+++ b/src/main/java/project/wallet/internal/WalletServiceImpl.java
@@ -90,6 +90,11 @@
 		if(!ObjectUtils.isEmpty(money)){
 			wallet.setMoney(Double.parseDouble(money.toString()));
 		}
+		// 确保余额不会为负数
+		double newBalance = Arith.add(wallet.getMoney(), amount);
+		if (newBalance < 0) {
+			amount = -wallet.getMoney();  // 如果会负余额,调整 amount 使余额为0
+		}
 		wallet.setMoney(Arith.add(wallet.getMoney(), amount));
 		redisHandler.setSync(WalletRedisKeys.WALLET_PARTY_ID + wallet.getPartyId().toString(), wallet);
 		redisHandler.pushAsyn(WalletRedisKeys.WALLET_QUEUE_UPDATE, new WalletMessage(partyId, amount));

--
Gitblit v1.9.3