zyy
2025-08-21 12094d29c89f1cef184ca9a686a80879421f15c5
转换金额待补
2 files modified
30 ■■■■■ changed files
src/main/java/com/nq/service/impl/UserAssetsServices.java 28 ●●●●● patch | view | raw | blame | history
src/main/java/com/nq/service/impl/UserServiceImpl.java 2 ●●● patch | view | raw | blame | history
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){
src/main/java/com/nq/service/impl/UserServiceImpl.java
@@ -650,7 +650,7 @@
            userAssetsServices.availablebalanceChange(fromType, user.getId(), EUserAssets.TRANSFER, amtBig.negate(),fromType+"/"+toType,"");
            //转换金额
            amtBig = userAssetsServices.exchangeAmountByRate(fromType, toType, amtBig);
            userAssetsServices.availablebalanceChange(toType,user.getId(),EUserAssets.TRANSFER,amtBig.setScale(5,RoundingMode.HALF_DOWN),fromType+"/"+toType,"");
            userAssetsServices.availablebalanceChange(toType,user.getId(), EUserAssets.TRANSFER, amtBig.setScale(5,RoundingMode.HALF_DOWN),fromType+"/"+toType,"");
            return ServerResponse.createBySuccess("操作成功", request);
        } catch (Exception e) {