zainali5120
2020-10-17 0ac5d713b3838c5147516a6949d506d002305a98
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("我没有拿到锁");
            }
        }
    }
}