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