public QueryInfoDTO getQueryInfoListByQueryClassificationId()

in backend/src/main/java/org/apache/iotdb/admin/service/impl/IotDBServiceImpl.java [2578:2681]


  public QueryInfoDTO getQueryInfoListByQueryClassificationId(
      Connection connection,
      Integer queryClassificationId,
      Integer pageSize,
      Integer pageNum,
      String filterString,
      Long startTime,
      Long endTime,
      Integer executionResult)
      throws BaseException {
    SessionPool sessionPool = getSessionPool(connection);
    // TODO 【清华】需要获得查询语句详细信息的接口
    QueryInfoDTO queryInfoDTO = new QueryInfoDTO();
    // FakeData
    // ***********************************************************
    List<QueryDataVO> queryDataVOS = new ArrayList<>();
    switch (queryClassificationId % 2) {
      case 0:
        for (int i = 0; i < 200; i++) {
          QueryData1VO queryDataVO = new QueryData1VO();
          long currentTimeMillis = System.currentTimeMillis();
          queryDataVO.setId(i);
          queryDataVO.setStatement(
              "select * from root._metric.'127.0.0.1:8086'.'process_cpu_time'.'name=process'");
          queryDataVO.setRunningTime(currentTimeMillis);
          queryDataVO.setIsSlowQuery(i % 2 == 0 ? false : true);
          queryDataVO.setTotalTime((int) (currentTimeMillis % 100));
          queryDataVO.setAnalysisTime((int) (currentTimeMillis % 50));
          queryDataVO.setPrecompiledTime((int) (currentTimeMillis % 30));
          queryDataVO.setOptimizedTime((int) (currentTimeMillis % 20));
          queryDataVO.setExecutionTime((int) (currentTimeMillis % 10));
          queryDataVO.setExecutionResult(i % 2 == 0 ? 1 : 2);
          queryDataVOS.add(queryDataVO);
        }
        break;
      case 1:
        for (int i = 0; i < 200; i++) {
          QueryDataVO queryDataVO = new QueryDataVO();
          long currentTimeMillis = System.currentTimeMillis();
          queryDataVO.setId(i);
          queryDataVO.setStatement(
              "select * from root._metric.'127.0.0.1:8086'.'process_cpu_time'.'name=process'");
          queryDataVO.setRunningTime(currentTimeMillis);
          queryDataVO.setIsSlowQuery(i % 2 == 0 ? false : true);
          queryDataVO.setTotalTime((int) (currentTimeMillis % 100));
          queryDataVO.setAnalysisTime((int) (currentTimeMillis % 50));
          queryDataVO.setExecutionTime((int) (currentTimeMillis % 10));
          queryDataVO.setExecutionResult(i % 2 == 0 ? 1 : 2);
          queryDataVOS.add(queryDataVO);
        }
        break;
    }
    // ***********************************************************
    int queryDataVOSSize = queryDataVOS.size();
    int count = 0;
    Long latestTimeStamp = 0L;
    List<QueryDataVO> filteredQueryDataVOS = new ArrayList<>();
    if (queryDataVOSSize > 0) {
      if ((filterString != null && filterString.length() != 0)
          || (startTime != -1)
          || (endTime != -1)
          || (executionResult != null)) {
        QueryDataDo queryDataDo =
            filterQueryData(
                queryDataVOS, pageSize, pageNum, filterString, startTime, endTime, executionResult);

        count = queryDataDo.getCount();
        latestTimeStamp = queryDataDo.getLatestTimeStamp();
        filteredQueryDataVOS = queryDataDo.getQueryDataVOs();
      } else {
        for (QueryDataVO queryDataVO : queryDataVOS) {
          count++;
          latestTimeStamp = Math.max(latestTimeStamp, queryDataVO.getRunningTime());
          if (count >= pageSize * (pageNum - 1) + 1 && count <= pageSize * pageNum) {
            filteredQueryDataVOS.add(queryDataVO);
          }
        }
      }
    }
    String pattern = "yyyy-MM-dd' 'HH:mm:ss.SSS";
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
    List<QueryDataStrVO> filteredQueryDataStrVOS = new ArrayList<>();
    if (queryClassificationId % 2 == 0) {
      for (QueryDataVO queryDataVO : filteredQueryDataVOS) {
        QueryDataStrVO1 queryDataStrVO = new QueryDataStrVO1();
        BeanUtils.copyProperties(queryDataVO, queryDataStrVO);
        queryDataStrVO.setRunningTime(simpleDateFormat.format(queryDataVO.getRunningTime()));
        filteredQueryDataStrVOS.add(queryDataStrVO);
      }
    } else {
      for (QueryDataVO queryDataVO : filteredQueryDataVOS) {
        QueryDataStrVO queryDataStrVO = new QueryDataStrVO();
        BeanUtils.copyProperties(queryDataVO, queryDataStrVO);
        queryDataStrVO.setRunningTime(simpleDateFormat.format(queryDataVO.getRunningTime()));
        filteredQueryDataStrVOS.add(queryDataStrVO);
      }
    }

    queryInfoDTO.setTotalCount(count);
    queryInfoDTO.setLatestRunningTime(latestTimeStamp);
    queryInfoDTO.setFilteredQueryDataStrVOSList(filteredQueryDataStrVOS);
    queryInfoDTO.setTotalPage(count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
    return queryInfoDTO;
  }