From d243ceca02063628d03c3c637693a704e728ceff Mon Sep 17 00:00:00 2001
From: zyy <zyy@email.com>
Date: Mon, 12 Jan 2026 16:39:05 +0800
Subject: [PATCH] 杠杆

---
 src/main/java/com/nq/service/impl/UserAssetsServices.java |   21 +++++++++++++--------
 1 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/nq/service/impl/UserAssetsServices.java b/src/main/java/com/nq/service/impl/UserAssetsServices.java
index 96bbefc..49ad7ca 100644
--- a/src/main/java/com/nq/service/impl/UserAssetsServices.java
+++ b/src/main/java/com/nq/service/impl/UserAssetsServices.java
@@ -84,20 +84,25 @@
                         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){
                     return ServerResponse.createByErrorMsg("客户账户余额为0");

--
Gitblit v1.9.3