From f8c80b2848a6b2e3ef16db317147576f4a4e0714 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Tue, 12 Aug 2025 01:00:48 +0800
Subject: [PATCH] 1
---
src/main/java/project/wallet/internal/WalletServiceImpl.java | 19 +++++++++++++++++--
1 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/src/main/java/project/wallet/internal/WalletServiceImpl.java b/src/main/java/project/wallet/internal/WalletServiceImpl.java
index 2f86bc3..f265811 100644
--- a/src/main/java/project/wallet/internal/WalletServiceImpl.java
+++ b/src/main/java/project/wallet/internal/WalletServiceImpl.java
@@ -21,6 +21,7 @@
import kernel.util.UUIDGenerator;
import kernel.web.ApplicationUtil;
import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
import project.Constants;
import project.data.DataService;
import project.data.model.Realtime;
@@ -84,10 +85,24 @@
@Override
public void update(String partyId, double amount) {
+ Object money = redisHandler.get("PARTY_ID_MONEY_" + partyId);
Wallet wallet = (Wallet) redisHandler.get(WalletRedisKeys.WALLET_PARTY_ID + partyId.toString());
- wallet.setMoney(Arith.add(wallet.getMoney(), amount));
+ if(!ObjectUtils.isEmpty(money)){
+ wallet.setMoney(Double.parseDouble(money.toString()));
+ }
+ // 确保余额不会为负数
+ double newBalance = Arith.add(wallet.getMoney(), amount);
+ if (newBalance < 0) {
+ wallet.setMoney(0);
+ }else{
+ wallet.setMoney(Arith.add(wallet.getMoney(), amount));
+ }
+ logger.info("----------------tmd钱包的钱为什么不对"+wallet.getMoney());
redisHandler.setSync(WalletRedisKeys.WALLET_PARTY_ID + wallet.getPartyId().toString(), wallet);
- redisHandler.pushAsyn(WalletRedisKeys.WALLET_QUEUE_UPDATE, new WalletMessage(partyId, amount));
+ redisHandler.pushAsyn(WalletRedisKeys.WALLET_QUEUE_UPDATE, new WalletMessage(partyId, wallet.getMoney()));
+
+ //用于计算合约亏损
+ redisHandler.setSync("PARTY_ID_MONEY_"+partyId, wallet.getMoney());
}
@Override
--
Gitblit v1.9.3