| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | @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("佣金支付失败"); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |