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;
}