From 4130970dd61791e0a5cb0771a9b707084f1ed464 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Thu, 08 May 2025 00:39:05 +0800
Subject: [PATCH] 1
---
src/main/java/com/nq/service/impl/UserAssetsServices.java | 32 ++++++++++++++++++++++++++++++--
1 files changed, 30 insertions(+), 2 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..f6ffa9f 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
@@ -335,7 +363,7 @@
userAssetsMapper.updateById(disbursement);
}else if(disbursementAccount.equals("ST")){
// 更新转入账户余额
- deposit.setAvailableBalance(deposit.getAvailableBalance().add(transferAmount.divide(new BigDecimal(stockConfig.getCValue()))));
+ deposit.setAvailableBalance(deposit.getAvailableBalance().add(transferAmount.divide(new BigDecimal(stockConfig.getCValue()), 2, BigDecimal.ROUND_DOWN)));
userAssetsMapper.updateById(deposit);
// 更新转出账户余额
disbursement.setAvailableBalance(disbursement.getAvailableBalance().subtract(transferAmount));
--
Gitblit v1.9.3