From 52081904dc467b81db0b28ff7cfed5979f14d1d2 Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期五, 08 十一月 2024 19:52:04 +0800
Subject: [PATCH] add:钱包功能调整1108-2

---
 src/main/java/com/mzl/flower/dto/request/wallet/QueryWalletBillRecordDTO.java         |    2 
 src/main/java/com/mzl/flower/dto/request/wallet/QueryWalletWithdrawDTO.java           |    2 
 src/main/java/com/mzl/flower/service/impl/wallet/WalletWithdrawRecordServiceImpl.java |    7 +++
 src/main/java/com/mzl/flower/service/impl/wallet/WalletBillRecordServiceImpl.java     |   63 ++++++++++++++-----------------
 src/main/java/com/mzl/flower/web/v2/wallet/WalletWithdrawRecordController.java        |    2 
 5 files changed, 38 insertions(+), 38 deletions(-)

diff --git a/src/main/java/com/mzl/flower/dto/request/wallet/QueryWalletBillRecordDTO.java b/src/main/java/com/mzl/flower/dto/request/wallet/QueryWalletBillRecordDTO.java
index 5450fc8..3334a3f 100644
--- a/src/main/java/com/mzl/flower/dto/request/wallet/QueryWalletBillRecordDTO.java
+++ b/src/main/java/com/mzl/flower/dto/request/wallet/QueryWalletBillRecordDTO.java
@@ -11,7 +11,7 @@
 public class QueryWalletBillRecordDTO {
 
     @ApiModelProperty(value = "供应商Id")
-    private Long supplierId;
+    private String supplierId;
 
     @ApiModelProperty(value = "供应商名称")
     private String supplierName;
diff --git a/src/main/java/com/mzl/flower/dto/request/wallet/QueryWalletWithdrawDTO.java b/src/main/java/com/mzl/flower/dto/request/wallet/QueryWalletWithdrawDTO.java
index 0116ae1..c4e4a0e 100644
--- a/src/main/java/com/mzl/flower/dto/request/wallet/QueryWalletWithdrawDTO.java
+++ b/src/main/java/com/mzl/flower/dto/request/wallet/QueryWalletWithdrawDTO.java
@@ -11,7 +11,7 @@
 public class QueryWalletWithdrawDTO {
 
     @ApiModelProperty(value = "供应商Id")
-    private Long supplierId;
+    private String supplierId;
 
     @ApiModelProperty(value = "供应商名称")
     private String supplierName;
diff --git a/src/main/java/com/mzl/flower/service/impl/wallet/WalletBillRecordServiceImpl.java b/src/main/java/com/mzl/flower/service/impl/wallet/WalletBillRecordServiceImpl.java
index 0b6b115..1154701 100644
--- a/src/main/java/com/mzl/flower/service/impl/wallet/WalletBillRecordServiceImpl.java
+++ b/src/main/java/com/mzl/flower/service/impl/wallet/WalletBillRecordServiceImpl.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mzl.flower.config.exception.ValidationException;
 import com.mzl.flower.config.security.SecurityUtils;
 import com.mzl.flower.constant.Constants;
 import com.mzl.flower.constant.LockConstants;
@@ -102,40 +103,25 @@
                 walletBillRecordDO.setRemark("微信商户转账成功");
                 walletBillRecordMapper.updateById(walletBillRecordDO);
                 //更新钱包
-//                WalletDO walletDO = walletService.getOrCreateBySupplierId(walletBillRecordDO.getWalletId());
-//                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)) {
-//                                WalletBillRecordDO walletBillRecordDO2 = new WalletBillRecordDO();
-//                                walletBillRecordDO2.setId(UUIDGenerator.getUUID());
-//                                walletBillRecordDO2.setSupplierId(walletDO.getSupplierId());
-//                                walletBillRecordDO2.setWalletId(walletDO.getId());
-//                                walletBillRecordDO2.setType(Constants.BILL_CHANGE_TYPE.withdraw.name());
-//                                // 发起提现
-//                                walletBillRecordDO2.setWithdrawType(Constants.BILL_WITHDRAW_TYPE.success.name());
-//                                walletBillRecordDO2.setMethod(Constants.BILL_CHANGE_METHOD.reduce.name());
-//                                walletBillRecordDO2.setOriginalAmount(walletDO.getWithdrawableAmount());
-//                                walletBillRecordDO2.setChangeAmount(BigDecimal.ZERO);
-//                                walletBillRecordDO2.setBalance(walletDO.getWithdrawableAmount());
-//                                walletBillRecordDO2.create(SecurityUtils.getUserId());
-//                                walletBillRecordDO.setId(UUIDGenerator.getUUID());
-//                                // 保存账单明细
-//                                walletBillRecordService.save(walletBillRecordDO);
-//                                //提现中金额:减少提现中金额
-//                                walletDO.setWithdrawingAmount(walletDO.getWithdrawingAmount().subtract(walletBillRecordDO.getChangeAmount()));
-//                                //已提现金额:增加已提现金额
-//                                walletDO.setWithdrawnAmount(walletDO.getWithdrawnAmount().add(walletBillRecordDO.getChangeAmount()));
-//                                walletMapper.updateById(walletDO);
-//                            }
-//                        } finally {
-//                            lock.unlock();
-//                        }
-//                    }
-//                } catch (InterruptedException e) {
-//                    throw new RuntimeException(e);
-//                }
+                WalletDO walletDO = walletService.getOrCreateBySupplierId(walletBillRecordDO.getSupplierId());
+                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(walletBillRecordDO.getChangeAmount()));
+                                //已提现金额:增加已提现金额
+                                walletDO.setWithdrawnAmount(walletDO.getWithdrawnAmount().add(walletBillRecordDO.getChangeAmount()));
+                                walletMapper.updateById(walletDO);
+                            }
+                        } finally {
+                            lock.unlock();
+                        }
+                    }
+                } catch (InterruptedException e) {
+                    throw new RuntimeException(e);
+                }
                 //回写提现状态
                 if (!StringUtils.isEmpty(walletBillRecordDO.getWithdrawRecordId())) {
                     WalletWithdrawRecordDO withdrawRecordDO = walletWithdrawRecordMapper.selectById(walletBillRecordDO.getWithdrawRecordId());
@@ -147,7 +133,7 @@
                 walletBillRecordDO.setTransferState(Constants.SETTLEMENT_STATUS.FAILED.name());
                 walletBillRecordDO.update("sys");
                 walletBillRecordMapper.updateById(walletBillRecordDO);
-                WalletDO walletDO = walletService.getOrCreateBySupplierId(walletBillRecordDO.getWalletId());
+                WalletDO walletDO = walletService.getOrCreateBySupplierId(walletBillRecordDO.getSupplierId());
                 RLock lock = redissonClient.getLock(String.format(LockConstants.WALLET_ID_KEY, walletDO.getId()));
                 try {
                     if (lock.tryLock(10, 30, TimeUnit.SECONDS)) {
@@ -197,6 +183,13 @@
 
     @Override
     public Page<WalletBillRecordVO> queryPage(QueryWalletBillRecordDTO queryWalletBillRecordDTO, Page page) {
+        try {
+            if (!StringUtils.isEmpty(queryWalletBillRecordDTO.getSupplierId())) {
+                Long supplierId = Long.parseLong(queryWalletBillRecordDTO.getSupplierId());
+            }
+        } catch (Exception e) {
+            throw new ValidationException("供应商ID格式不正确");
+        }
         List<WalletBillRecordVO> list = walletBillRecordMapper.queryPage(queryWalletBillRecordDTO, page);
         page.setRecords(list);
         return page;
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 0fe7d36..1b6b228 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
@@ -181,6 +181,13 @@
 
     @Override
     public Page<WalletWithdrawRecordVO> queryPage(QueryWalletWithdrawDTO queryWalletDTO, Page page) {
+        try {
+            if (!StringUtils.isEmpty(queryWalletDTO.getSupplierId())) {
+                Long supplierId = Long.parseLong(queryWalletDTO.getSupplierId());
+            }
+        } catch (Exception e) {
+            throw new ValidationException("供应商ID格式不正确");
+        }
         List<WalletWithdrawRecordVO> list = walletWithdrawRecordMapper.queryPage(queryWalletDTO, page);
         page.setRecords(list);
         return page;
diff --git a/src/main/java/com/mzl/flower/web/v2/wallet/WalletWithdrawRecordController.java b/src/main/java/com/mzl/flower/web/v2/wallet/WalletWithdrawRecordController.java
index c7e5eec..e3bdbc9 100644
--- a/src/main/java/com/mzl/flower/web/v2/wallet/WalletWithdrawRecordController.java
+++ b/src/main/java/com/mzl/flower/web/v2/wallet/WalletWithdrawRecordController.java
@@ -98,7 +98,7 @@
     public ResponseEntity<ReturnDataDTO<Page<WalletWithdrawRecordDO>>> page(Page page, QueryWalletWithdrawDTO dto
     ) {
         // 根据当前用户获取供应商
-        dto.setSupplierId(supplierService.getCurrentSupplier().getId());
+        dto.setSupplierId(String.valueOf(supplierService.getCurrentSupplier().getId()));
         return returnData(R.SUCCESS.getCode(), walletWithdrawRecordService.queryPage(dto, page));
     }
 

--
Gitblit v1.9.3