From 381afd9e82b6e8610aeb00b8d4c0ff138195bb2d Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期五, 01 十一月 2024 13:13:50 +0800
Subject: [PATCH] fix: 钱包供应商财务1

---
 src/main/java/com/mzl/flower/service/payment/OrderSettlementService.java              |   58 +++++++++++++++--------------
 src/main/java/com/mzl/flower/service/impl/wallet/WalletWithdrawRecordServiceImpl.java |    3 +
 src/main/resources/mapper/wallet/WalletBillRecordMapper.xml                           |    2 
 3 files changed, 33 insertions(+), 30 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 b891ecf..196e668 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
@@ -188,6 +188,7 @@
     public void updateWallet(WalletWithdrawRecordDTO walletWithdrawRecordDTO) {
 
         WalletWithdrawRecordDO withdrawRecordDO = walletWithdrawRecordMapper.selectById(walletWithdrawRecordDTO.getId());
+        final String approveState = withdrawRecordDO.getApproveState();
         if (withdrawRecordDO == null) {
             throw new ValidationException("提现记录信息不存在");
         }
@@ -219,7 +220,7 @@
             try {
                 if (recordLock.tryLock(10, 30, TimeUnit.SECONDS)) {
                     try {
-                        if(!walletWithdrawRecordDTO.getApproveState().equals(Constants.WALLET_APPROVE_STATE.WAITING)){
+                        if(!approveState.equals(Constants.WALLET_APPROVE_STATE.WAITING.name())){
                             String msg =  "重复通过";
                             throw new ValidationException(msg);
                         }
diff --git a/src/main/java/com/mzl/flower/service/payment/OrderSettlementService.java b/src/main/java/com/mzl/flower/service/payment/OrderSettlementService.java
index 1bab152..1f1e32c 100644
--- a/src/main/java/com/mzl/flower/service/payment/OrderSettlementService.java
+++ b/src/main/java/com/mzl/flower/service/payment/OrderSettlementService.java
@@ -739,35 +739,37 @@
                         try {
                             //2024-10-28 直接保存到walletBillRecord
                             //新增WalletBillRecordDO
-                            WalletBillRecordDO walletBillRecord = new WalletBillRecordDO();
-                            walletBillRecord.setId(UUIDGenerator.getUUID());
-                            WalletDO walletDOInfo = walletService.getBySupplierId(supplierId);
-                            //增加供应商结算金额保存到钱包
-                            walletBillRecord.setSupplierId(supplierId);
-                            walletBillRecord.setWalletId(walletDOInfo.getId());
-                            walletBillRecord.setSettlementId(settlement.getId());
-                            walletBillRecord.setOrderItemId(detail.getOrderItemId());
-                            //变动金额等于供应商收入
-                            walletBillRecord.setTotalAmount(ois.getIncomeSupplier());
-                            walletBillRecord.setType(Constants.BILL_CHANGE_TYPE.settlement.name());
-                            walletBillRecord.setMethod(Constants.BILL_CHANGE_METHOD.add.name());
-                            walletBillRecord.setOriginalAmount(walletDOInfo.getTotalAmount());
-                            walletBillRecord.setChangeAmount(ois.getIncomeSupplier());
-                            walletBillRecord.setBalance(walletDOInfo.getWithdrawableAmount().add(ois.getIncomeSupplier()));
-                            Order order = orderMapper.selectById(detail.getOrderId());
-                            if (!ObjectUtils.isEmpty(order)) {
-                                walletBillRecord.setRemark("订单完成(订单号" + order.getOrderNo() + ")" + ",获得收入");
-                                walletBillRecord.setOrderNo(order.getOrderNo());
+                            if(ois.getIncomeSupplier().compareTo(BigDecimal.ZERO) > 0) {
+                                WalletBillRecordDO walletBillRecord = new WalletBillRecordDO();
+                                walletBillRecord.setId(UUIDGenerator.getUUID());
+                                WalletDO walletDOInfo = walletService.getBySupplierId(supplierId);
+                                //增加供应商结算金额保存到钱包
+                                walletBillRecord.setSupplierId(supplierId);
+                                walletBillRecord.setWalletId(walletDOInfo.getId());
+                                walletBillRecord.setSettlementId(settlement.getId());
+                                walletBillRecord.setOrderItemId(detail.getOrderItemId());
+                                //变动金额等于供应商收入
+                                walletBillRecord.setTotalAmount(ois.getIncomeSupplier());
+                                walletBillRecord.setType(Constants.BILL_CHANGE_TYPE.settlement.name());
+                                walletBillRecord.setMethod(Constants.BILL_CHANGE_METHOD.add.name());
+                                walletBillRecord.setOriginalAmount(walletDOInfo.getTotalAmount());
+                                walletBillRecord.setChangeAmount(ois.getIncomeSupplier());
+                                walletBillRecord.setBalance(walletDOInfo.getWithdrawableAmount().add(ois.getIncomeSupplier()));
+                                Order order = orderMapper.selectById(detail.getOrderId());
+                                if (!ObjectUtils.isEmpty(order)) {
+                                    walletBillRecord.setRemark("订单完成(订单号" + order.getOrderNo() + ")" + ",获得收入");
+                                    walletBillRecord.setOrderNo(order.getOrderNo());
+                                }
+                                //更新钱包
+                                //可提现金额=钱包余额=结算金额
+                                walletDOInfo.setWithdrawableAmount(walletDOInfo.getWithdrawableAmount().add(ois.getIncomeSupplier()));
+                                walletDOInfo.setTotalAmount(walletDOInfo.getWithdrawableAmount());
+                                //已结算金额
+                                walletDOInfo.setSettledAmount(walletDOInfo.getSettledAmount().add(ois.getIncomeSupplier()));
+                                walletMapper.updateById(walletDOInfo);
+                                walletBillRecord.create();
+                                walletBillRecordMapper.insert(walletBillRecord);
                             }
-                            //更新钱包
-                            //可提现金额=钱包余额=结算金额
-                            walletDOInfo.setWithdrawableAmount(walletDOInfo.getWithdrawableAmount().add(ois.getIncomeSupplier()));
-                            walletDOInfo.setTotalAmount(walletDOInfo.getWithdrawableAmount());
-                            //已结算金额
-                            walletDOInfo.setSettledAmount(walletDOInfo.getSettledAmount().add(ois.getIncomeSupplier()));
-                            walletMapper.updateById(walletDOInfo);
-                            walletBillRecord.create();
-                            walletBillRecordMapper.insert(walletBillRecord);
                         } finally {
                             lock.unlock();
                         }
diff --git a/src/main/resources/mapper/wallet/WalletBillRecordMapper.xml b/src/main/resources/mapper/wallet/WalletBillRecordMapper.xml
index f71a580..b19ed5b 100644
--- a/src/main/resources/mapper/wallet/WalletBillRecordMapper.xml
+++ b/src/main/resources/mapper/wallet/WalletBillRecordMapper.xml
@@ -85,7 +85,7 @@
         <if test="dto.approveEndDate!=null ">
             AND DATE_FORMAT(w.approve_time, '%Y-%m-%d') &lt;= #{dto.approveEndDate}
         </if>
-        order by t.create_time
+        order by t.create_time desc
     </select>
 
     <select id="queryWalletBillRecordList" resultType="com.mzl.flower.dto.response.wallet.WalletBillRecordVO">

--
Gitblit v1.9.3