xiaoyong931011
2021-12-08 f5e6133809c553cfd9fb28ee61019927c547c374
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, 2);
            if(b){
                //System.out.println("我拿到了锁");
                // 拿到了锁才能扣
                memberWalletCoinDao.updateWalletBalance(id,availableBalance,totalBalance,frozenBalance);
                // 扣完释放锁
                redisUtils.del(key);
                break;
            }else {
            }
        }
    }
}