1
zj
2024-09-04 8a3f4a7f9df7d215bfa6048f01fe1d1d28e7d0dc
src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
@@ -149,9 +149,14 @@
        //判断股票是否在可交易时间段
        Boolean b = tradingHourService.timeCheck(stock.getStockCode());
        if (!b) {
            return ServerResponse.createByErrorMsg("订单失败,不在交易时间之内", request);
            String lang = request.getHeader("lang");
            if(lang.equals("ja")){
                String msg = "注文失敗、取引時間外です。";
                return ServerResponse.createByErrorMsg(msg);
            }else{
                return ServerResponse.createByErrorMsg("订单失败,不在交易时间之内", request);
            }
        }
       StockConfig mainBuyConfig =  iStockConfigServices.queryByKey(EConfigKey.MIN_BUY.getCode());
@@ -185,11 +190,11 @@
        BigDecimal buyAmt = nowPrice.multiply(new BigDecimal(buyNum)).divide(new BigDecimal(lever));
        BigDecimal orderFree = siteSettingBuyFee.multiply(buyAmt);
        BigDecimal   fundratio = new BigDecimal(user.getFundRatio()).divide(new BigDecimal(100));
        BigDecimal availableBalance =  fundratio.multiply(userAssets.getAvailableBalance());
        if (availableBalance.compareTo(buyAmt.add(orderFree)) < 0) {
            return ServerResponse.createByErrorMsg("订单失败,配资不足", request);
        }
//        BigDecimal   fundratio = new BigDecimal(user.getFundRatio()).divide(new BigDecimal(100));
//        BigDecimal availableBalance =  fundratio.multiply(userAssets.getAvailableBalance());
//        if (availableBalance.compareTo(buyAmt.add(orderFree)) < 0) {
//            return ServerResponse.createByErrorMsg("订单失败,配资不足", request);
//        }
        UserPosition userPosition = new UserPosition();
        if (profitTarget != null && profitTarget.compareTo(new BigDecimal("0")) > 0) {
            userPosition.setProfitTargetPrice(profitTarget);
@@ -331,7 +336,7 @@
        UserAssets userAssets = userAssetsMapper.selectOne(new LambdaQueryWrapper<UserAssets>()
                .eq(UserAssets::getUserId, userPosition.getUserId())
                .eq(UserAssets::getAccectType, "IN")
                .eq(UserAssets::getAccectType, "JP")
        );
        if(userAssets.getAmountToBeCovered().compareTo(BigDecimal.ZERO) > 0){
            return ServerResponse.createByErrorMsg("请先缴清待补资金", request);
@@ -1557,7 +1562,7 @@
        if (siteProduct.getRealNameDisplay() && user.getIsLock().intValue() == 1) {
            return ServerResponse.createByErrorMsg("Order failed, account has been locked");
        }
        UserAssets userAssets = userAssetsServices.assetsByTypeAndUserId("IN", user.getId());
        UserAssets userAssets = userAssetsServices.assetsByTypeAndUserId("JP", user.getId());
        if(userAssets.getAmountToBeCovered().compareTo(BigDecimal.ZERO) > 0){
            return ServerResponse.createByErrorMsg("请先缴清待补资金", request);
        }
@@ -1583,11 +1588,11 @@
            return ServerResponse.createByErrorMsg("最小购买数据" + stockDz.getStockNum(), request);
        }
        BigDecimal buyAmt = nowPrice.multiply(new BigDecimal(num.intValue()));
        BigDecimal fundratio = new BigDecimal(user.getFundRatio()).divide(new BigDecimal(100));
        BigDecimal availableBalance = fundratio.multiply(userAssets.getAvailableBalance());
        if (buyAmt.compareTo(availableBalance) > 0) {
            return ServerResponse.createByErrorMsg("订单失败,配资不足", request);
        }
//        BigDecimal fundratio = new BigDecimal(user.getFundRatio()).divide(new BigDecimal(100));
//        BigDecimal availableBalance = fundratio.multiply(userAssets.getAvailableBalance());
//        if (buyAmt.compareTo(availableBalance) > 0) {
//            return ServerResponse.createByErrorMsg("订单失败,配资不足", request);
//        }
        // 创建UserPosition对象
        UserPosition userPosition = new UserPosition();
@@ -1621,7 +1626,7 @@
        userPosition.setOrderSpread(BigDecimal.ZERO);
        userPositionMapper.insert(userPosition);
        userAssetsServices.availablebalanceChange(EStockType.IN.getCode(), user.getId(), EUserAssets.BUY, buyAmt.negate(),"","");
        userAssetsServices.availablebalanceChange(EStockType.JP.getCode(), user.getId(), EUserAssets.BUY, buyAmt.negate(),"","");
        return ServerResponse.createBySuccess("购买成功", request);
    }
@@ -1645,7 +1650,7 @@
            for (UserPosition position : list) {
                UserAssets userAssets = userAssetsMapper.selectOne(new LambdaQueryWrapper<UserAssets>()
                        .eq(UserAssets::getUserId, position.getUserId())
                        .eq(UserAssets::getAccectType, "IN")
                        .eq(UserAssets::getAccectType, "JP")
                );
                if(userAssets.getAmountToBeCovered().compareTo(BigDecimal.ZERO) > 0){
                    continue;