1
zj
2025-07-30 c3ae54fb66a8f097a63fc457d611da8fcfdc1de5
src/main/java/com/nq/service/impl/UserAssetsServices.java
@@ -10,10 +10,12 @@
import com.nq.pojo.*;
import com.nq.service.IUserAssetsServices;
import com.nq.utils.KeyUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.validation.constraints.Email;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@@ -22,6 +24,7 @@
/**
 * 用户资产
 */
@Slf4j
@Service
public class UserAssetsServices implements IUserAssetsServices {
@@ -79,7 +82,7 @@
                if(userAssets.getAmountToBeCovered().compareTo(BigDecimal.ZERO) > 0){
                    BigDecimal availableBalance = bigAmt.subtract(userAssets.getAmountToBeCovered());
                    availableBalance = availableBalance.subtract(userAssets.getHandlingChargeWritten());
                    if(availableBalance.compareTo(BigDecimal.ZERO) > 0){
                    if(availableBalance.compareTo(BigDecimal.ZERO) >= 0){
                        userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(availableBalance));
                        userAssets.setFreezeMoney(userAssets.getFreezeMoney().add(userAssets.getAmountToBeCovered()));
                        userAssets.setAmountToBeCovered(BigDecimal.ZERO);
@@ -181,7 +184,7 @@
           if(userAssets.getAmountToBeCovered().compareTo(BigDecimal.ZERO) > 0){
               BigDecimal availableBalance = amount.subtract(userAssets.getAmountToBeCovered());
               availableBalance = availableBalance.subtract(userAssets.getHandlingChargeWritten());
               if(availableBalance.compareTo(BigDecimal.ZERO) > 0){
               if(availableBalance.compareTo(BigDecimal.ZERO) >= 0){
                   userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(availableBalance));
                   userAssets.setAmountToBeCovered(BigDecimal.ZERO);
                   userAssets.setHandlingChargeWritten(BigDecimal.ZERO);
@@ -202,15 +205,22 @@
           if(userAssets.getAmountToBeCovered().compareTo(BigDecimal.ZERO) > 0){
               BigDecimal availableBalance = amount.subtract(userAssets.getAmountToBeCovered());
               availableBalance = availableBalance.subtract(userAssets.getHandlingChargeWritten());
               if(availableBalance.compareTo(BigDecimal.ZERO) > 0){
               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 amountToBeCovered = userAssets.getAmountToBeCovered().subtract(amount);
                   userAssets.setFreezeMoney(userAssets.getFreezeMoney().add(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.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));
@@ -238,7 +248,7 @@
       }
        if(null != userPosition){
            userPosition.setAmountToBeCovered(userAssets.getAmountToBeCovered());
            userPosition.setAmountToBeCovered(userAssets.getAmountToBeCovered().add(userAssets.getHandlingChargeWritten()));
            userPositionMapper.updateById(userPosition);
        }
        String  after =  userAssets.getAvailableBalance().toString();