fix
Helius
2022-04-28 1bf57dbbb7025facb8a3e3c2074e82af6f13b24f
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberWalletServiceImpl.java
@@ -66,4 +66,50 @@
            }
        }
    }
    @Override
    public void addCommission(BigDecimal amount, Long memberId) {
        int i = 0;
        boolean flag = true;
        while (flag) {
            i++;
            MallMemberWallet wallet = this.baseMapper.selectWalletByMemberId(memberId);
            wallet.setCommission(wallet.getCommission().add(amount));
            int result = this.baseMapper.updateCommissionWithVersion(wallet);
            if (result > 0) {
                flag = false;
            } else {
                if (i > 2) {
                    throw new FebsException("余额增加失败");
                }
            }
        }
    }
    @Override
    public void reduceCommission(BigDecimal amount, Long memberId) {
        int i = 0;
        boolean flag = true;
        while (flag) {
            i++;
            MallMemberWallet wallet = this.baseMapper.selectWalletByMemberId(memberId);
            if (amount.compareTo(wallet.getCommission()) > 0) {
                throw new FebsException("佣金不足");
            }
            wallet.setCommission(wallet.getCommission().subtract(amount));
            int result = this.baseMapper.updateCommissionWithVersion(wallet);
            if (result > 0) {
                flag = false;
            } else {
                if (i > 2) {
                    throw new FebsException("佣金支付失败");
                }
            }
        }
    }
}