From f7949069f3f6001ead4709376e95c0ae1056843e Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期一, 28 十月 2024 18:46:09 +0800
Subject: [PATCH] fix: 钱包供应商财务

---
 src/main/java/com/mzl/flower/service/impl/wallet/WalletWithdrawRecordServiceImpl.java |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 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 9a6fbbe..95332d8 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
@@ -117,6 +117,12 @@
 
                     // 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());
@@ -238,6 +244,7 @@
             }
 
             //记录转账状态,定时任务定时获取状态并更新钱包交易记录表信息
+            walletBillRecordDO.setRemark("账户资金提现中");
             walletBillRecordMapper.insert(walletBillRecordDO);
             //不需要更新结算单了,此时提现的金额和计算单上的金额不一致
         }
@@ -246,7 +253,7 @@
             //更新钱包
             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)) {

--
Gitblit v1.9.3