From 6fea0d854481c680dffec2ed9edc894f5e0dcfd3 Mon Sep 17 00:00:00 2001
From: zyy <zyy@email.com>
Date: Mon, 25 Aug 2025 20:34:37 +0800
Subject: [PATCH] bug
---
src/main/java/com/nq/service/impl/UserAssetsServices.java | 39 ++++++++++++++++++++++++++++++++++++---
1 files changed, 36 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/nq/service/impl/UserAssetsServices.java b/src/main/java/com/nq/service/impl/UserAssetsServices.java
index c9b49e0..eb86e84 100644
--- a/src/main/java/com/nq/service/impl/UserAssetsServices.java
+++ b/src/main/java/com/nq/service/impl/UserAssetsServices.java
@@ -227,8 +227,15 @@
userAssets.setAmountToBeCovered(BigDecimal.ZERO);
userAssets.setHandlingChargeWritten(BigDecimal.ZERO);
}else{
- BigDecimal amountToBeCovered = userAssets.getAmountToBeCovered().subtract(amount);
- userAssets.setAmountToBeCovered(amountToBeCovered);
+ BigDecimal subtract = amount.subtract(userAssets.getHandlingChargeWritten());
+ if(subtract.compareTo(BigDecimal.ZERO) >= 0) {
+ BigDecimal decimal = amount.subtract(userAssets.getAmountToBeCovered());
+ decimal = decimal.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));
@@ -237,7 +244,33 @@
}else if(Objects.equals(eUserAssets.getCode(), EUserAssets.CALCULATE_PROFIT_AND_LOSS.getCode())){
extracted(amount, userAssets);
}else if(Objects.equals(eUserAssets.getCode(), EUserAssets.TRANSFER.getCode())){
- userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(amount));
+ if (amount.compareTo(BigDecimal.ZERO) > 0) { //转换加钱,先补待补资金
+ 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.setFreezeMoney(userAssets.getFreezeMoney().add(userAssets.getAmountToBeCovered()));
+ userAssets.setAmountToBeCovered(BigDecimal.ZERO);
+ userAssets.setHandlingChargeWritten(BigDecimal.ZERO);
+ }else{
+ 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));
+ }
+ } else { //扣钱
+ userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(amount));
+ }
eUserAssets.setDesc(desc);
}else if(Objects.equals(eUserAssets.getCode(), EUserAssets.TOP_UP.getCode())){
if(userAssets.getAmountToBeCovered().compareTo(BigDecimal.ZERO) > 0){
--
Gitblit v1.9.3