From 1bf57dbbb7025facb8a3e3c2074e82af6f13b24f Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Thu, 28 Apr 2022 15:13:59 +0800 Subject: [PATCH] fix --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberWalletServiceImpl.java | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 46 insertions(+), 0 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberWalletServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberWalletServiceImpl.java index e2c2815..dff3490 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberWalletServiceImpl.java +++ b/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("佣金支付失败"); + } + } + } + } } -- Gitblit v1.9.1