1
zj
2024-05-17 b271ad62a0e9ea1e16a95f342bbdbc3f93783148
src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
@@ -1629,25 +1629,29 @@
    @Override
    @Transactional
    public void stockConstraint(List<UserPosition> list) {
        SiteSetting siteSetting = iSiteSettingService.getSiteSetting();
        try {
            SiteSetting siteSetting = iSiteSettingService.getSiteSetting();
        for (UserPosition position : list) {
            UserAssets userAssets = userAssetsMapper.selectOne(new LambdaQueryWrapper<UserAssets>()
                    .eq(UserAssets::getUserId, position.getUserId())
                    .eq(UserAssets::getAccectType, "IN")
            );
            if(userAssets.getAmountToBeCovered().compareTo(BigDecimal.ZERO) > 0){
                continue;
            }
            //平仓检查
            Result result = getResult(position);
            if (result == null) continue;
            for (UserPosition position : list) {
                UserAssets userAssets = userAssetsMapper.selectOne(new LambdaQueryWrapper<UserAssets>()
                        .eq(UserAssets::getUserId, position.getUserId())
                        .eq(UserAssets::getAccectType, "IN")
                );
                if(userAssets.getAmountToBeCovered().compareTo(BigDecimal.ZERO) > 0){
                    continue;
                }
                //平仓检查
                Result result = getResult(position);
                if (result == null) continue;
            Integer liquidation = 0;
            liquidation = isLiquidation(position, result.signum, result.profit, liquidation);
            if(liquidation != 0){
                extracted(position, result.nowPrice, result.stock,liquidation);
                Integer liquidation = 0;
                liquidation = isLiquidation(position, result.signum, result.profit, liquidation);
                if(liquidation != 0){
                    extracted(position, result.nowPrice, result.stock,liquidation);
                }
            }
        }catch (Exception e){
            log.error("强制平仓--->错误",e);
        }
    }