private QueryDataDo filterQueryData()

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


  private QueryDataDo filterQueryData(
      List<QueryDataVO> queryDataVOS,
      Integer pageSize,
      Integer pageNum,
      String filterString,
      Long startTime,
      Long endTime,
      Integer executionResult) {
    List<QueryDataVO> filteredQueryDataVOS = new ArrayList<>();
    filteredQueryDataVOS.addAll(queryDataVOS);
    if (filterString != null) {
      List<QueryDataVO> tempList = new ArrayList<>();
      for (QueryDataVO queryDataVO : filteredQueryDataVOS) {
        if (queryDataVO.getStatement().contains(filterString)) {
          tempList.add(queryDataVO);
        }
      }
      filteredQueryDataVOS.clear();
      filteredQueryDataVOS.addAll(tempList);
    }
    if (startTime != -1) {
      List<QueryDataVO> tempList = new ArrayList<>();
      for (QueryDataVO queryDataVO : filteredQueryDataVOS) {
        if (queryDataVO.getRunningTime() >= startTime) {
          tempList.add(queryDataVO);
        }
      }
      filteredQueryDataVOS.clear();
      filteredQueryDataVOS.addAll(tempList);
    }
    if (endTime != -1) {
      List<QueryDataVO> tempList = new ArrayList<>();
      for (QueryDataVO queryDataVO : filteredQueryDataVOS) {
        if (queryDataVO.getRunningTime() <= endTime) {
          tempList.add(queryDataVO);
        }
      }
      filteredQueryDataVOS.clear();
      filteredQueryDataVOS.addAll(tempList);
    }
    if (executionResult != null) {
      List<QueryDataVO> tempList = new ArrayList<>();
      if (executionResult == 0) {
        tempList.addAll(filteredQueryDataVOS);
      } else {
        for (QueryDataVO queryDataVO : filteredQueryDataVOS) {
          if (queryDataVO.getExecutionResult().equals(executionResult)) {
            tempList.add(queryDataVO);
          }
        }
      }
      filteredQueryDataVOS.clear();
      filteredQueryDataVOS.addAll(tempList);
    }

    System.out.println(filteredQueryDataVOS.size());
    int count = 0;
    Long latestTimeStamp = 0L;
    List<QueryDataVO> pageFilteredQueryDataVOS = new ArrayList<>();
    for (QueryDataVO queryDataVO : filteredQueryDataVOS) {
      count++;
      if (count >= pageSize * (pageNum - 1) + 1 && count <= pageSize * pageNum) {
        pageFilteredQueryDataVOS.add(queryDataVO);
      }
      latestTimeStamp = Math.max(latestTimeStamp, queryDataVO.getRunningTime());
    }

    QueryDataDo queryDataDo = new QueryDataDo();
    queryDataDo.setCount(count);
    queryDataDo.setLatestTimeStamp(latestTimeStamp);
    queryDataDo.setQueryDataVOs(pageFilteredQueryDataVOS);
    return queryDataDo;
  }