From 0ac5d713b3838c5147516a6949d506d002305a98 Mon Sep 17 00:00:00 2001
From: zainali5120 <512061637@qq.com>
Date: Sat, 17 Oct 2020 13:37:14 +0800
Subject: [PATCH] 最高最低价修复

---
 src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java |   22 ++++++++++++++++++++++
 1 files changed, 22 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java b/src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java
index e7ddaae..65dc2a0 100644
--- a/src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java
@@ -574,4 +574,26 @@
         return Result.ok(allWalletCoinVo);
 	}
 
+    @Override
+    public void updateWalletBalance(Long id, BigDecimal availableBalance,  BigDecimal totalBalance,BigDecimal frozenBalance) {
+        if(id==null){
+            return;
+        }
+        // 这里需要加锁 保证同一个时间只有一个线程操作一个钱包
+        String key = "UPDATE_WALLET_COIN_"+id;
+        while (true){
+            boolean b = redisUtils.setNotExist(key, 1, 5);
+            if(b){
+                System.out.println("我拿到了锁");
+                // 拿到了锁才能扣
+                memberWalletCoinDao.updateWalletBalance(id,availableBalance,totalBalance,frozenBalance);
+                // 扣完释放锁
+                redisUtils.del(key);
+                break;
+            }else {
+                System.out.println("我没有拿到锁");
+            }
+        }
+    }
+
 }

--
Gitblit v1.9.1