zyy
2025-08-21 12094d29c89f1cef184ca9a686a80879421f15c5
src/main/java/com/nq/service/impl/UserAssetsServices.java
@@ -237,7 +237,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){