| | |
| | | |
| | | // 1.新增一条余额提现记录 |
| | | WalletWithdrawRecordDO withdrawRecordDO = new WalletWithdrawRecordDO(); |
| | | //原金额 |
| | | withdrawRecordDO.setOriginalAmount(walletDO.getWithdrawableAmount()); |
| | | // 变动金额 |
| | | withdrawRecordDO.setChangeAmount(dto.getAmount()); |
| | | // 余额 |
| | | withdrawRecordDO.setBalance(walletDO.getWithdrawableAmount().subtract(dto.getAmount())); |
| | | withdrawRecordDO.setAmount(dto.getAmount()); |
| | | withdrawRecordDO.setSupplierId(supplierDTO.getId()); |
| | | withdrawRecordDO.setWithdrawState(Constants.WALLET_WITHDRAW_STATE.WAITING.name()); |
| | |
| | | //更新钱包 |
| | | Supplier s = supplierMapper.selectById(withdrawRecordDO.getSupplierId()); |
| | | |
| | | WalletDO walletDO = walletService.getBySupplierId(s.getId()); |
| | | WalletDO walletDO = walletService.getOrCreateBySupplierId(s.getId()); |
| | | RLock lock = redissonClient.getLock(String.format(LockConstants.WALLET_ID_KEY, walletDO.getId())); |
| | | try { |
| | | if (lock.tryLock(10, 30, TimeUnit.SECONDS)) { |