From 6c9083d96c898e5cba5073efd70175c2a00dc674 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Wed, 05 Mar 2025 15:16:15 +0800
Subject: [PATCH] 提现

---
 src/main/java/com/nq/service/impl/UserWithdrawServiceImpl.java |   19 +++++++++++++++----
 1 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/nq/service/impl/UserWithdrawServiceImpl.java b/src/main/java/com/nq/service/impl/UserWithdrawServiceImpl.java
index 42bbb7c..80fee29 100644
--- a/src/main/java/com/nq/service/impl/UserWithdrawServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserWithdrawServiceImpl.java
@@ -126,7 +126,7 @@
             }
             SiteSetting siteSetting = this.iSiteSettingService.getSiteSetting();
             if ((new BigDecimal(amt)).compareTo(new BigDecimal(siteSetting.getWithMinAmt().intValue())) == -1) {
-                return ServerResponse.createByErrorMsg("Analog users cannot withdraw funds" + siteSetting.getWithMinAmt(),request);
+                return ServerResponse.createByErrorMsg("最小提现金额:" + siteSetting.getWithMinAmt(),request);
             }
 
             boolean b = getServerResponse();
@@ -330,6 +330,7 @@
     }
 
 
+    @Transactional
     public ServerResponse updateState(Integer withId, Integer state, String authMsg) throws Exception {
         UserWithdraw userWithdraw = this.userWithdrawMapper.selectByPrimaryKey(withId);
         SiteSetting siteSetting = siteSettingService.getSiteSetting();
@@ -353,9 +354,19 @@
             return ServerResponse.createByErrorMsg("用户资金账户不存在");
         }
         if (state == 3) {
-
-            userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(userWithdraw.getWithAmt()));
-            userAssets.setFreezeMoney(userAssets.getFreezeMoney().subtract(userWithdraw.getWithAmt()));
+            if(userAssets.getAmountToBeCovered().compareTo(BigDecimal.ZERO) > 0){
+                BigDecimal subtract = userWithdraw.getWithAmt().subtract(userAssets.getAmountToBeCovered());
+                if(subtract.compareTo(BigDecimal.ZERO) > 0){
+                    userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(subtract));
+                    userAssets.setFreezeMoney(userAssets.getFreezeMoney().subtract(subtract));
+                    userAssets.setAmountToBeCovered(BigDecimal.ZERO);
+                }else{
+                    userAssets.setAmountToBeCovered(userAssets.getAmountToBeCovered().subtract(userWithdraw.getWithAmt()));
+                }
+            }else{
+                userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(userWithdraw.getWithAmt()));
+                userAssets.setFreezeMoney(userAssets.getFreezeMoney().subtract(userWithdraw.getWithAmt()));
+            }
             int updateCount = userAssetsMapper.updateById(userAssets);
             if (updateCount > 0) {
                 log.info("提现失败,返还用户资金成功!");

--
Gitblit v1.9.3