1
zj
2025-09-22 095f37ff949a43fe51fdf90a7a5acb2fe508f205
src/main/java/com/nq/service/impl/UserAssetsServices.java
@@ -51,9 +51,6 @@
    @Override
    public UserAssets assetsByTypeAndUserId(String accetType, Integer userId) {
        if(accetType.equals("SZHB")){
            accetType = "US";
        }
        QueryWrapper<UserAssets>  queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("accect_type",accetType);
        queryWrapper.eq("user_id",userId);
@@ -87,19 +84,24 @@
                        userAssets.setFreezeMoney(userAssets.getFreezeMoney().add(userAssets.getAmountToBeCovered()));
                        userAssets.setAmountToBeCovered(BigDecimal.ZERO);
                        userAssets.setHandlingChargeWritten(BigDecimal.ZERO);
                        if(null != userPosition){
                            userPosition.setAmountToBeCovered(userAssets.getAmountToBeCovered());
                        }
                    }else{
                        BigDecimal amountToBeCovered = userAssets.getAmountToBeCovered().subtract(bigAmt);
                        userAssets.setFreezeMoney(userAssets.getFreezeMoney().add(bigAmt));
                        userAssets.setAmountToBeCovered(amountToBeCovered);
                        if(null != userPosition){
                            userPosition.setAmountToBeCovered(userAssets.getAmountToBeCovered());
                        BigDecimal subtract = bigAmt.subtract(userAssets.getHandlingChargeWritten());
                        if(subtract.compareTo(BigDecimal.ZERO) >= 0) {
                            BigDecimal decimal = bigAmt.subtract(userAssets.getAmountToBeCovered());
                            decimal = decimal.subtract(userAssets.getHandlingChargeWritten());
                            userAssets.setFreezeMoney(userAssets.getFreezeMoney().add(bigAmt.subtract(userAssets.getHandlingChargeWritten())));
                            userAssets.setHandlingChargeWritten(BigDecimal.ZERO);
                            userAssets.setAmountToBeCovered(decimal.negate());
                        }else{
                            userAssets.setHandlingChargeWritten(userAssets.getHandlingChargeWritten().subtract(bigAmt));
                        }
                    }
                }else{
                    userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(bigAmt));
                }
                if(null != userPosition){
                    userPosition.setAmountToBeCovered(userAssets.getAmountToBeCovered().add(userAssets.getHandlingChargeWritten()));
                    userPositionMapper.updateById(userPosition);
                }
            }else{
                if(userAssets.getAvailableBalance().compareTo(BigDecimal.ZERO) <= 0){
@@ -159,9 +161,6 @@
    @Override
    public BigDecimal getAvailableBalance(String accetType, Integer userId) {
        if(accetType.equals("SZHB")){
            accetType = "US";
        }
        return  assetsByTypeAndUserId(accetType,userId).getAvailableBalance();
    }
@@ -211,9 +210,16 @@
                   userAssets.setAmountToBeCovered(BigDecimal.ZERO);
                   userAssets.setHandlingChargeWritten(BigDecimal.ZERO);
               }else{
                   userAssets.setFreezeMoney(userAssets.getFreezeMoney().add(amount));
                   userAssets.setHandlingChargeWritten(BigDecimal.ZERO);
                   userAssets.setAmountToBeCovered(availableBalance.negate());
                   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));