jack
2024-04-22 26581a43d52f6f6e62607c51b8224cdc50191a80
src/main/java/com/nq/service/impl/StockServiceImpl.java
@@ -160,14 +160,22 @@
    @Override
    public ServerResponse getStockByType(int pageNum, int pageSize, String orderBy, String keyWords, String stockType, HttpServletRequest request) {
        List<Stock> stockList = new ArrayList<>();
        PageHelper.startPage(pageNum, pageSize);
        stockList.addAll(stockMapper.findStockByType(orderBy,stockType,keyWords));
        if(stockType.equals(EStockType.IN.getCode())){
            PageHelper.startPage(pageNum, pageSize);
            stockList.addAll(stockMapper.findStockByType(orderBy,stockType,keyWords));
        }else{
            PageHelper.startPage(pageNum, pageSize);
            stockList.addAll(stockMapper.findStockTypeDz(orderBy,EStockType.IN.getCode(), keyWords));
        }
        List<StockListVO> stockListVOS = Lists.newArrayList();
        if (stockList.size() > 0){
            stockListVOS.addAll(Objects.requireNonNull(StockApi.getStockReailTimes(stockList)));
        }
        for (int i = 0; i <stockListVOS.size() ; i++) {
            stockListVOS.get(i).setNowPrice(iPriceServices.getNowPrice(stockListVOS.get(i).getCode()).toString());
            stockListVOS.get(i).setNowPrice(iPriceServices.getNowPrice(stockListVOS.get(i).getCode(),stockType).toString());
        }
        RPageInfo pageInfo = new RPageInfo();
        pageInfo.setList(stockListVOS);
@@ -175,77 +183,11 @@
        return ServerResponse.createBySuccess(pageInfo);
    }
    public ServerResponse getDateline(HttpServletResponse response, String code) {
        if (StringUtils.isBlank(code))
            return ServerResponse.createByErrorMsg("");
        Stock stock = this.stockMapper.findStockByCode(code);
        if (stock == null)
            return ServerResponse.createByErrorMsg("");
        response.setHeader("Access-Control-Allow-Origin", "*");
        Date time = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        String end = sdf.format(time);
        Calendar c = Calendar.getInstance();
        c.setTime(new Date());
        c.add(2, -3);
        Date m = c.getTime();
        String mon = sdf.format(m);
        String methodUrl = "http://q.stock.sohu.com/hisHq?code=cn_" + code + "+&start=" + mon + "&end=" + end + "&stat=1&order=D";
        HttpURLConnection connection = null;
        BufferedReader reader = null;
        String line = null;
        EchartsDataVO echartsDataVO = new EchartsDataVO();
        try {
            URL url = new URL(methodUrl);
            connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("GET");
            connection.connect();
            if (connection.getResponseCode() == 200) {
                reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "gbk"));
                StringBuilder result = new StringBuilder();
                while ((line = reader.readLine()) != null)
                    result.append(line).append(System.getProperty("line.separator"));
                JSONArray jsonArray = JSONArray.fromObject(result.toString());
                JSONObject json = jsonArray.getJSONObject(0);
                JSONArray jsonArray1 = JSONArray.fromObject(json.get("hq"));
                Collections.reverse((List<?>) jsonArray1);
                double[][] values = (double[][]) null;
                Object[][] volumes = (Object[][]) null;
                String[] date = null;
                values = new double[jsonArray1.size()][5];
                volumes = new Object[jsonArray1.size()][3];
                date = new String[jsonArray1.size()];
                for (int i = 0; i < jsonArray1.size(); i++) {
                    JSONArray js = JSONArray.fromObject(jsonArray1.get(i));
                    date[i] = js.get(0).toString();
                    values[i][0] = Double.valueOf(js.get(1).toString()).doubleValue();
                    values[i][1] = Double.valueOf(js.get(2).toString()).doubleValue();
                    values[i][2] = Double.valueOf(js.get(5).toString()).doubleValue();
                    values[i][3] = Double.valueOf(js.get(6).toString()).doubleValue();
                    values[i][4] = Double.valueOf(js.get(7).toString()).doubleValue();
                    volumes[i][0] = Integer.valueOf(i);
                    volumes[i][1] = Double.valueOf(js.get(7).toString());
                    volumes[i][2] = Integer.valueOf((Double.valueOf(js.get(3).toString()).doubleValue() > 0.0D) ? 1 : -1);
                }
                echartsDataVO.setDate(date);
                echartsDataVO.setValues(values);
                echartsDataVO.setVolumes(volumes);
                echartsDataVO.setStockCode(stock.getStockCode());
                echartsDataVO.setStockName(stock.getStockName());
                ServerResponse.createBySuccess(echartsDataVO);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                reader.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            connection.disconnect();
        }
        return ServerResponse.createBySuccess(echartsDataVO);
    @Override
    public ServerResponse getDateline(HttpServletResponse paramHttpServletResponse, String paramString) {
        return null;
    }
    public ServerResponse getSingleStock(String code, HttpServletRequest request) {
        if (StringUtils.isBlank(code))
@@ -448,6 +390,9 @@
    @Override
    public Object getKData(String pid, String interval, String stockType) {
        EStockType eStockType = EStockType.getEStockTypeByCode(stockType);
        if(eStockType == EStockType.IN){
            return HttpUtil.get(eStockType.stockUrl+"api/all/getKData.do?pid="+pid+"&interval="+interval+"&stockType=in");
        }
        return  HttpUtil.get(eStockType.stockUrl + "kline?pid=" + pid + "&interval=" + interval + "&key=" + eStockType.stockKey);
    }