From f77c25900aac7231d006d8f4e08aaa12d72c62b4 Mon Sep 17 00:00:00 2001 From: cloudroam <cloudroam> Date: 星期一, 28 十月 2024 16:21:39 +0800 Subject: [PATCH] add: 钱包供应商财务 --- src/main/java/com/mzl/flower/service/impl/wallet/WalletWithdrawRecordServiceImpl.java | 25 ++++++++++++++++++------- 1 files changed, 18 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/mzl/flower/service/impl/wallet/WalletWithdrawRecordServiceImpl.java b/src/main/java/com/mzl/flower/service/impl/wallet/WalletWithdrawRecordServiceImpl.java index e6dd65d..9a6fbbe 100644 --- a/src/main/java/com/mzl/flower/service/impl/wallet/WalletWithdrawRecordServiceImpl.java +++ b/src/main/java/com/mzl/flower/service/impl/wallet/WalletWithdrawRecordServiceImpl.java @@ -238,7 +238,6 @@ } //记录转账状态,定时任务定时获取状态并更新钱包交易记录表信息 - walletBillRecordDO.setTransferDetailId(Constants.TRANSFER_STATUS.ACCEPTED.name()); walletBillRecordMapper.insert(walletBillRecordDO); //不需要更新结算单了,此时提现的金额和计算单上的金额不一致 } @@ -246,13 +245,25 @@ if (Constants.WALLET_APPROVE_STATE.REJECT.name().equals(walletWithdrawRecordDTO.getApproveState())) { //更新钱包 Supplier s = supplierMapper.selectById(withdrawRecordDO.getSupplierId()); + WalletDO walletDO = walletService.getBySupplierId(s.getId()); - if(!ObjectUtils.isEmpty(walletDO)){ - //提现中金额:审核失败体现中金额扣减 - walletDO.setWithdrawingAmount(walletDO.getWithdrawingAmount().subtract(withdrawRecordDO.getAmount())); - //可提现金额:审核失败可提现金额增加 - walletDO.setWithdrawableAmount(walletDO.getWithdrawableAmount().add(withdrawRecordDO.getAmount())); - walletMapper.updateById(walletDO); + RLock lock = redissonClient.getLock(String.format(LockConstants.WALLET_ID_KEY, walletDO.getId())); + try { + if (lock.tryLock(10, 30, TimeUnit.SECONDS)) { + try { + if (!ObjectUtils.isEmpty(walletDO)) { + //提现中金额:审核失败体现中金额扣减 + walletDO.setWithdrawingAmount(walletDO.getWithdrawingAmount().subtract(withdrawRecordDO.getAmount())); + //可提现金额:审核失败可提现金额增加 + walletDO.setWithdrawableAmount(walletDO.getWithdrawableAmount().add(withdrawRecordDO.getAmount())); + walletMapper.updateById(walletDO); + } + } finally { + lock.unlock(); + } + } + } catch (InterruptedException e) { + throw new RuntimeException(e); } } } -- Gitblit v1.9.3