1
zj
2024-09-10 1c6748cbef6bf2348106b27fb47a74efff8a8b2e
src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
@@ -132,9 +132,9 @@
        SiteProduct siteProduct = iSiteProductService.getProductSetting();
        User user = this.iUserService.getCurrentRefreshUser(request);
        if (siteProduct.getRealNameDisplay() && user.getIsActive() != 2) {
            return ServerResponse.createByErrorMsg("订单失败,请先实名认证", request);
        }
//        if (siteProduct.getRealNameDisplay() && user.getIsActive() != 2) {
//            return ServerResponse.createByErrorMsg("订单失败,请先实名认证", request);
//        }
        // 手续费率
        BigDecimal siteSettingBuyFee = new BigDecimal(iStockConfigServices.queryByKey(EConfigKey.BUY_HANDLING_CHARGE.getCode()).getCValue()) ;
@@ -149,21 +149,21 @@
        //判断股票是否在可交易时间段
        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());
        if(buyNum<Integer.parseInt(mainBuyConfig.getCValue())){
            return ServerResponse.createByErrorMsg("最低购买数量"+mainBuyConfig.getCValue(), request);
        SiteSetting siteSetting = iSiteSettingService.getSiteSetting();
        if(buyNum<siteSetting.getBuyMinNum()){
            return ServerResponse.createByErrorMsg("最低购买数量"+siteSetting.getBuyMinNum(), request);
        }
        UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId(stock.getStockType(), user.getId());
        StockConfig maxBuyConfig =  iStockConfigServices.queryByKey(EConfigKey.MAX_BUY.getCode());
        if(buyNum<Integer.parseInt(mainBuyConfig.getCValue())){
            return ServerResponse.createByErrorMsg("最高购买数量"+maxBuyConfig.getCValue(), request);
        }
        if(userAssets.getAmountToBeCovered().compareTo(BigDecimal.ZERO) > 0){
            return ServerResponse.createByErrorMsg("请先缴清待补资金", request);
        }
@@ -185,10 +185,8 @@
        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);
        if (userAssets.getAvailableBalance().compareTo(buyAmt.add(orderFree)) < 0) {
            return ServerResponse.createByErrorMsg("订单失败,余额不足", request);
        }
        UserPosition userPosition = new UserPosition();
        if (profitTarget != null && profitTarget.compareTo(new BigDecimal("0")) > 0) {
@@ -1583,11 +1581,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();