From ad35d23bdd072d7179eb4bfcb588975f37a68f53 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Wed, 07 May 2025 00:32:57 +0800
Subject: [PATCH] 1

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

diff --git a/src/main/java/com/nq/service/impl/UserAssetsServices.java b/src/main/java/com/nq/service/impl/UserAssetsServices.java
index 20cc581..cad5d50 100644
--- a/src/main/java/com/nq/service/impl/UserAssetsServices.java
+++ b/src/main/java/com/nq/service/impl/UserAssetsServices.java
@@ -7,8 +7,10 @@
 import com.nq.dao.*;
 import com.nq.enums.EStockType;
 import com.nq.enums.EUserAssets;
+import com.nq.enums.TradeType;
 import com.nq.pojo.*;
 import com.nq.service.IUserAssetsServices;
+import com.nq.service.TransactionLogService;
 import com.nq.utils.KeyUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -51,6 +53,8 @@
     @Autowired
     StockConfigMapper stockConfigMapper;
 
+    @Autowired
+    TransactionLogService transactionLogService;
     @Override
     public UserAssets assetsByTypeAndUserId(String accetType, Integer userId) {
         if(accetType.equals("SZHB")){
@@ -179,6 +183,22 @@
                userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(amount));
            }
             userAssets.setFreezeMoney(userAssets.getFreezeMoney().subtract(amount));
+       }else  if(Objects.equals(eUserAssets.getCode(), EUserAssets.THE_DEPOSIT_WILL_BE_RETURNED_IF_THE_ORDER_IS_CANCELLED.getCode())){
+           if(userAssets.getAmountToBeCovered().compareTo(BigDecimal.ZERO) > 0){
+               BigDecimal availableBalance = amount.subtract(userAssets.getAmountToBeCovered());
+               availableBalance = availableBalance.subtract(userAssets.getHandlingChargeWritten());
+               if(availableBalance.compareTo(BigDecimal.ZERO) >= 0){
+                   userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(availableBalance));
+                   userAssets.setAmountToBeCovered(BigDecimal.ZERO);
+                   userAssets.setHandlingChargeWritten(BigDecimal.ZERO);
+               }else{
+                   BigDecimal amountToBeCovered = userAssets.getAmountToBeCovered().subtract(amount);
+                   userAssets.setAmountToBeCovered(amountToBeCovered);
+               }
+           }else{
+               userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(amount));
+           }
+           userAssets.setFreezeMoney(userAssets.getFreezeMoney().subtract(amount));
        }else if(Objects.equals(eUserAssets.getCode(), EUserAssets.CALCULATE_PROFIT_AND_LOSS.getCode())){
            extracted(amount, userAssets);
        }else if(Objects.equals(eUserAssets.getCode(), EUserAssets.TRANSFER.getCode())){
@@ -242,7 +262,15 @@
         moneyLog.setSymbol(EStockType.getEStockTypeByCode(accetType).getSymbol());
         moneyLog.setCreateTime(new Date());
         moneyLogMapper.insert(moneyLog);
-        return userAssetsMapper.updateById(userAssets)>1;
+        int update = userAssetsMapper.updateById(userAssets);
+        if(update > 0){
+            if(Objects.equals(eUserAssets.getCode(), EUserAssets.HANDLING_CHARGE.getCode())){
+                amount = amount.negate();
+            }
+            transactionLogService.add(userId, eUserAssets.getDesc(),amount.toString(),eUserAssets.getDesc());
+            return true;
+        }
+        return false;
     }
 
     @Override

--
Gitblit v1.9.3