From a067fca929a31a42a4ef7148ca05687d371eb37a Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Wed, 27 Aug 2025 18:53:18 +0800
Subject: [PATCH] 1

---
 src/main/java/com/nq/service/impl/UserAssetsServices.java |   40 +++++++++++++++++++++++-----------------
 1 files changed, 23 insertions(+), 17 deletions(-)

diff --git a/src/main/java/com/nq/service/impl/UserAssetsServices.java b/src/main/java/com/nq/service/impl/UserAssetsServices.java
index 09f5d3e..49ad7ca 100644
--- a/src/main/java/com/nq/service/impl/UserAssetsServices.java
+++ b/src/main/java/com/nq/service/impl/UserAssetsServices.java
@@ -51,9 +51,6 @@
 
     @Override
     public UserAssets assetsByTypeAndUserId(String accetType, Integer userId) {
-        if(accetType.equals("SZHB")){
-            accetType = "US";
-        }
         QueryWrapper<UserAssets>  queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("accect_type",accetType);
         queryWrapper.eq("user_id",userId);
@@ -87,19 +84,24 @@
                         userAssets.setFreezeMoney(userAssets.getFreezeMoney().add(userAssets.getAmountToBeCovered()));
                         userAssets.setAmountToBeCovered(BigDecimal.ZERO);
                         userAssets.setHandlingChargeWritten(BigDecimal.ZERO);
-                        if(null != userPosition){
-                            userPosition.setAmountToBeCovered(userAssets.getAmountToBeCovered());
-                        }
                     }else{
-                        BigDecimal amountToBeCovered = userAssets.getAmountToBeCovered().subtract(bigAmt);
-                        userAssets.setFreezeMoney(userAssets.getFreezeMoney().add(bigAmt));
-                        userAssets.setAmountToBeCovered(amountToBeCovered);
-                        if(null != userPosition){
-                            userPosition.setAmountToBeCovered(userAssets.getAmountToBeCovered());
+                        BigDecimal subtract = bigAmt.subtract(userAssets.getHandlingChargeWritten());
+                        if(subtract.compareTo(BigDecimal.ZERO) >= 0) {
+                            BigDecimal decimal = bigAmt.subtract(userAssets.getAmountToBeCovered());
+                            decimal = decimal.subtract(userAssets.getHandlingChargeWritten());
+                            userAssets.setFreezeMoney(userAssets.getFreezeMoney().add(bigAmt.subtract(userAssets.getHandlingChargeWritten())));
+                            userAssets.setHandlingChargeWritten(BigDecimal.ZERO);
+                            userAssets.setAmountToBeCovered(decimal.negate());
+                        }else{
+                            userAssets.setHandlingChargeWritten(userAssets.getHandlingChargeWritten().subtract(bigAmt));
                         }
                     }
                 }else{
                     userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(bigAmt));
+                }
+                if(null != userPosition){
+                    userPosition.setAmountToBeCovered(userAssets.getAmountToBeCovered().add(userAssets.getHandlingChargeWritten()));
+                    userPositionMapper.updateById(userPosition);
                 }
             }else{
                 if(userAssets.getAvailableBalance().compareTo(BigDecimal.ZERO) <= 0){
@@ -159,9 +161,6 @@
 
     @Override
     public BigDecimal getAvailableBalance(String accetType, Integer userId) {
-        if(accetType.equals("SZHB")){
-            accetType = "US";
-        }
         return  assetsByTypeAndUserId(accetType,userId).getAvailableBalance();
     }
 
@@ -211,9 +210,16 @@
                    userAssets.setAmountToBeCovered(BigDecimal.ZERO);
                    userAssets.setHandlingChargeWritten(BigDecimal.ZERO);
                }else{
-                   userAssets.setFreezeMoney(userAssets.getFreezeMoney().add(amount));
-                   userAssets.setHandlingChargeWritten(BigDecimal.ZERO);
-                   userAssets.setAmountToBeCovered(availableBalance.negate());
+                   BigDecimal subtract = amount.subtract(userAssets.getHandlingChargeWritten());
+                   if(subtract.compareTo(BigDecimal.ZERO) >= 0) {
+                       BigDecimal decimal = amount.subtract(userAssets.getAmountToBeCovered());
+                       decimal = decimal.subtract(userAssets.getHandlingChargeWritten());
+                       userAssets.setFreezeMoney(userAssets.getFreezeMoney().add(amount.subtract(userAssets.getHandlingChargeWritten())));
+                       userAssets.setHandlingChargeWritten(BigDecimal.ZERO);
+                       userAssets.setAmountToBeCovered(decimal.negate());
+                   }else{
+                       userAssets.setHandlingChargeWritten(userAssets.getHandlingChargeWritten().subtract(amount));
+                   }
                }
            }else{
                userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(amount));

--
Gitblit v1.9.3