peternameyakj
2024-07-14 9b96b21235ee41b47bfdeaa745ee2e56a119e09e
src/main/java/com/nq/service/impl/UserAssetsServices.java
@@ -77,6 +77,13 @@
                }else{
                    userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(bigAmt));
                }
            }else{
                if(userAssets.getAvailableBalance().compareTo(BigDecimal.ZERO) <= 0){
                    return ServerResponse.createByErrorMsg("客户账户余额为0");
                }else if(userAssets.getAvailableBalance().subtract(bigAmt.abs()).compareTo(BigDecimal.ZERO) < 0){
                    return ServerResponse.createByErrorMsg("客户账户余额不足扣款");
                }
                userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(bigAmt));
            }
            if( userAssetsMapper.updateById(userAssets)>0){
                return ServerResponse.createBySuccess();
@@ -110,6 +117,34 @@
        return  assetsByTypeAndUserId(accetType,userId).getAvailableBalance();
    }
    @Override
    public int updateById(UserAssets userAssets) {
        return userAssetsMapper.updateById(userAssets);
    }
    @Override
    public Boolean availablebalanceChangePart(String accetType, Integer userId, EUserAssets eUserAssets, BigDecimal amount, BigDecimal freezeMoney) {
        UserAssets userAssets =   assetsByTypeAndUserId(accetType,userId);
        String before = userAssets.getAvailableBalance().toString();
        String accectType = userAssets.getAccectType();
        if(Objects.equals(eUserAssets.getCode(), EUserAssets.PART_CLOSE_POSITION.getCode())){
            userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(amount));
            userAssets.setFreezeMoney(userAssets.getFreezeMoney().subtract(freezeMoney));
        }
        String  after =  userAssets.getAvailableBalance().toString();
        MoneyLog moneyLog = new MoneyLog();
        moneyLog.setDescs(eUserAssets.getDesc());
        moneyLog.setBeFore(before);
        moneyLog.setAfter(after);
        moneyLog.setAmount(amount.toString());
        moneyLog.setAccectType(accectType);
        moneyLog.setType(eUserAssets.getCode());
        moneyLog.setUserId(userId+"");
        moneyLog.setSymbol(EStockType.getEStockTypeByCode(accetType).getSymbol());
        moneyLog.setCreateTime(new Date());
        moneyLogMapper.insert(moneyLog);
        return userAssetsMapper.updateById(userAssets)>1;
    }
    @Override
    public Boolean availablebalanceChange(String accetType, Integer userId, EUserAssets eUserAssets, BigDecimal amount, String desc, String descType) {