Commit 09afa78a authored by shaochangbin's avatar shaochangbin

修改告警日志查询排序。降序

parent 7a6ac271
...@@ -123,8 +123,9 @@ public class Manager { ...@@ -123,8 +123,9 @@ public class Manager {
Map<String,Object> map = new HashMap(); Map<String,Object> map = new HashMap();
List<AlarmMsg> alarmList = cassandraDao.getAlarmMsgList(); List<AlarmMsg> alarmList = cassandraDao.getAlarmMsgList();
if(alarmList != null && alarmList.size()>0){ if(alarmList != null && alarmList.size()>0){
//查询结果非空List序排序(根据AlarmMsg::getAlatime) //查询结果非空List序排序(根据AlarmMsg::getAlatime)
alarmList = alarmList.stream().sorted(Comparator.comparing(AlarmMsg::getAlatime)).collect(Collectors.toList()); alarmList = alarmList.stream().sorted(Comparator.comparing(AlarmMsg::getAlatime)).collect(Collectors.toList());
//反转list排序
Collections.reverse(alarmList); Collections.reverse(alarmList);
} }
map.put("alarmMsg",alarmList); map.put("alarmMsg",alarmList);
...@@ -625,82 +626,213 @@ public class Manager { ...@@ -625,82 +626,213 @@ public class Manager {
} }
public Map<String, Object> searchLog(String json) { public Map<String, Object> searchLog(String json) {
int limitNum = 0;
Map<String,Object> map = new HashMap(); Map<String,Object> map = new HashMap();
JSONObject jsonObject = JSONObject.fromObject(json); JSONObject jsonObject = JSONObject.fromObject(json);
int pageNum = jsonObject.getInt("pageNum"); int pageNum = jsonObject.getInt("pageNum");
int pageSize = jsonObject.getInt("pageSize"); int pageSize = jsonObject.getInt("pageSize");
String ip = jsonObject.getString("ip"); String ip = jsonObject.getString("ip");
String start = jsonObject.getString("start"); String start = jsonObject.getString("start");
String end = jsonObject.getString("end"); String end = jsonObject.getString("end");
List<AlarmLog> logList = cassandraDao.getAlarmLogList(); if (pageNum == 1){
limitNum = pageNum * pageSize;
}else{
limitNum = (pageNum - 1) * pageSize;
}
//响应结果前不需要的数据(要查页数之前的数据)
List<AlarmLog> alarmLogByParam = null;
//最后响应的查询结果
List<AlarmLog> alarmLogList = null;
long flag = System.currentTimeMillis(); long flag = System.currentTimeMillis();
if((!start.isEmpty())&&(!ip.isEmpty())){ if((!start.isEmpty())&&(!ip.isEmpty())){
//如果显示第一页数据,没有前面的数据,直接查询就好。
if (pageNum == 1){
alarmLogList = cassandraDao.getAlarmLogByParam(ip, start, end, limitNum);
}else{
//如果查询的结果不是第一页。需要查询之前的数据,在根据时间戳查询需要的响应的数据
alarmLogByParam = cassandraDao.getAlarmLogByParam(ip, start, end, limitNum);
if (alarmLogByParam != null && alarmLogByParam.size() > 0){
alarmLogList = cassandraDao.getAlarmLogList(ip, start, end, pageSize, alarmLogByParam.get(alarmLogByParam.size() - 1).getSerialnum());
}
}
//统计符合条件的记录总条数
Map total = cassandraDao.getAlarmLogSize(ip,start,end); Map total = cassandraDao.getAlarmLogSize(ip,start,end);
List<AlarmLog> alarmList = null; if (alarmLogList != null){
int i = 0; //查询结果非空List升序排序(根据AlarmMsg::getAlatime)
do{ alarmLogList = alarmLogList.stream().sorted(Comparator.comparing(AlarmLog::getAlatime)).collect(Collectors.toList());
alarmList = cassandraDao.getAlarmLogList(ip,start,end, pageSize,flag); //反转list排序
if (logList.size()==0){ Collections.reverse(alarmLogList);
break;
} }
AlarmLog alarmLog = logList.get(logList.size()-1); map.put("log",alarmLogList);
flag = alarmLog.getSerialnum();
i++;
}while(i<pageNum);
map.put("log",alarmList);
map.put("logSize",total.get("count")); map.put("logSize",total.get("count"));
}else if(!start.isEmpty()){ }else if(!start.isEmpty()){
Map total = cassandraDao.getAlarmLogSize(start,end); Map total = cassandraDao.getAlarmLogSize(start,end);
List<AlarmLog> alarmList = null; //如果显示第一页数据,没有前面的数据,直接查询就好。
int i = 0; if (pageNum == 1){
do{ alarmLogList = cassandraDao.getAlarmLogByStartAndEndAndLimitnum(start,end,limitNum);
alarmList = cassandraDao.getAlarmLogList(start,end,pageSize,flag); }else{
if (logList.size()==0){ //如果查询的结果不是第一页。需要查询之前的数据,在根据时间戳查询需要的响应的数据
break; alarmLogByParam = cassandraDao.getAlarmLogByStartAndEndAndLimitnum(start,end,limitNum);
if (alarmLogByParam != null && alarmLogByParam.size() > 0){
alarmLogList = cassandraDao.getAlarmLogList(start,end,pageSize,alarmLogByParam.get(alarmLogByParam.size() - 1).getSerialnum());
}
} }
AlarmLog alarmLog = logList.get(logList.size()-1);
flag = alarmLog.getSerialnum();
i++;
}while(i<pageNum);
map.put("log",alarmList);
map.put("logSize",total.get("count"));
//查询结果非空List升序排序(根据AlarmMsg::getAlatime)
if (alarmLogList != null){
//查询结果非空List升序排序(根据AlarmMsg::getAlatime)
alarmLogList = alarmLogList.stream().sorted(Comparator.comparing(AlarmLog::getAlatime)).collect(Collectors.toList());
//反转list排序
Collections.reverse(alarmLogList);
}
map.put("log",alarmLogList);
map.put("logSize",total.get("count"));
}else if(!ip.isEmpty()){ }else if(!ip.isEmpty()){
List<AlarmLog> alarmList = null;
Map total = cassandraDao.getAlarmLogSize(ip); Map total = cassandraDao.getAlarmLogSize(ip);
int i = 0; //如果显示第一页数据,没有前面的数据,直接查询就好。
do{ if (pageNum == 1){
alarmList = cassandraDao.getAlarmLogList(ip,pageSize,flag); alarmLogList = cassandraDao.getAlarmLogByIpAndLimitnum(ip,limitNum);
if (logList.size()==0){ }else{
break; //如果查询的结果不是第一页。需要查询之前的数据,在根据时间戳查询需要的响应的数据
alarmLogByParam = cassandraDao.getAlarmLogByIpAndLimitnum(ip,limitNum);
if (alarmLogByParam != null && alarmLogByParam.size() > 0){
alarmLogList = cassandraDao.getAlarmLogList(ip,pageSize,alarmLogByParam.get(alarmLogByParam.size() - 1).getSerialnum());
} }
AlarmLog alarmLog = logList.get(logList.size()-1); }
flag = alarmLog.getSerialnum();
i++; //查询结果非空List升序排序(根据AlarmMsg::getAlatime)
}while(i<pageNum); if (alarmLogList != null){
map.put("log",alarmList); //查询结果非空List升序排序(根据AlarmMsg::getAlatime)
alarmLogList = alarmLogList.stream().sorted(Comparator.comparing(AlarmLog::getAlatime)).collect(Collectors.toList());
//反转list排序
Collections.reverse(alarmLogList);
}
map.put("log",alarmLogList);
map.put("logSize",total.get("count")); map.put("logSize",total.get("count"));
}else{ }else{
Map total = cassandraDao.getAlarmLogSize(); Map total = cassandraDao.getAlarmLogSize();
List<AlarmLog> alarmList = null; //如果显示第一页数据,没有前面的数据,直接查询就好。
int i = 0; if (pageNum == 1){
do{ alarmLogList = cassandraDao.getAlarmLog(pageSize,flag);
alarmList = cassandraDao.getAlarmLog(pageSize,flag); }else{
if (logList.size()==0){ //如果查询的结果不是第一页。需要查询之前的数据,在根据时间戳查询需要的响应的数据
break; alarmLogByParam = cassandraDao.getAlarmLog(pageSize,flag);
if (alarmLogByParam != null && alarmLogByParam.size() > 0){
alarmLogList = cassandraDao.getAlarmLog(pageSize,alarmLogByParam.get(alarmLogByParam.size() - 1).getSerialnum());
} }
AlarmLog alarmLog = logList.get(logList.size()-1); }
flag = alarmLog.getSerialnum();
i++; //查询结果非空List升序排序(根据AlarmMsg::getAlatime)
}while(i<pageNum); if (alarmLogList != null){
map.put("log",alarmList); //查询结果非空List升序排序(根据AlarmMsg::getAlatime)
alarmLogList = alarmLogList.stream().sorted(Comparator.comparing(AlarmLog::getAlatime)).collect(Collectors.toList());
//反转list排序
Collections.reverse(alarmLogList);
}
map.put("log",alarmLogList);
map.put("logSize",total.get("count")); map.put("logSize",total.get("count"));
} }
return map; return map;
} }
// public Map<String, Object> searchLog(String json) {
// Map<String,Object> map = new HashMap();
//
// JSONObject jsonObject = JSONObject.fromObject(json);
// int pageNum = jsonObject.getInt("pageNum");
// int pageSize = jsonObject.getInt("pageSize");
// String ip = jsonObject.getString("ip");
// String start = jsonObject.getString("start");
// String end = jsonObject.getString("end");
// List<AlarmLog> logList = cassandraDao.getAlarmLogList();
// long flag = System.currentTimeMillis();
// if((!start.isEmpty())&&(!ip.isEmpty())){
//
// Map total = cassandraDao.getAlarmLogSize(ip,start,end);
// List<AlarmLog> alarmList = null;
//
// int i = 0;
// do{
// alarmList = cassandraDao.getAlarmLogList(ip,start,end, pageSize,flag);
// if (logList.size()==0){
// break;
// }
// AlarmLog alarmLog = logList.get(logList.size()-1);
// flag = alarmLog.getSerialnum();
// i++;
// }while(i<pageNum);
// //查询结果非空List升序排序(根据AlarmMsg::getAlatime)
// alarmList = alarmList.stream().sorted(Comparator.comparing(AlarmLog::getAlatime)).collect(Collectors.toList());
// //反转list排序
// Collections.reverse(alarmList);
// map.put("log",alarmList);
// map.put("logSize",total.get("count"));
// }else if(!start.isEmpty()){
// Map total = cassandraDao.getAlarmLogSize(start,end);
// List<AlarmLog> alarmList = null;
// int i = 0;
// do{
// alarmList = cassandraDao.getAlarmLogList(start,end,pageSize,flag);
// if (logList.size()==0){
// break;
// }
// AlarmLog alarmLog = logList.get(logList.size()-1);
// flag = alarmLog.getSerialnum();
// i++;
// }while(i<pageNum);
// //查询结果非空List升序排序(根据AlarmMsg::getAlatime)
// alarmList = alarmList.stream().sorted(Comparator.comparing(AlarmLog::getAlatime)).collect(Collectors.toList());
// //反转list排序
// Collections.reverse(alarmList);
// map.put("log",alarmList);
// map.put("logSize",total.get("count"));
//
// }else if(!ip.isEmpty()){
// List<AlarmLog> alarmList = null;
// Map total = cassandraDao.getAlarmLogSize(ip);
// int i = 0;
// do{
// alarmList = cassandraDao.getAlarmLogList(ip,pageSize,flag);
// if (logList.size()==0){
// break;
// }
// AlarmLog alarmLog = logList.get(logList.size()-1);
// flag = alarmLog.getSerialnum();
// i++;
// }while(i<pageNum);
// //查询结果非空List升序排序(根据AlarmMsg::getAlatime)
// alarmList = alarmList.stream().sorted(Comparator.comparing(AlarmLog::getAlatime)).collect(Collectors.toList());
// //反转list排序
// Collections.reverse(alarmList);
// map.put("log",alarmList);
// map.put("logSize",total.get("count"));
// }else{
// Map total = cassandraDao.getAlarmLogSize();
// List<AlarmLog> alarmList = null;
// int i = 0;
// do{
// alarmList = cassandraDao.getAlarmLog(pageSize,flag);
// if (logList.size()==0){
// break;
// }
//// //查询结果非空List升序排序(根据AlarmMsg::getAlatime)
//// alarmList = alarmList.stream().sorted(Comparator.comparing(AlarmLog::getAlatime)).collect(Collectors.toList());
//// //反转list排序
//// Collections.reverse(alarmList);
// AlarmLog alarmLog = logList.get(logList.size()-1);
// flag = alarmLog.getSerialnum();
// i++;
// }while(i<pageNum);
// //查询结果非空List升序排序(根据AlarmMsg::getAlatime)
// alarmList = alarmList.stream().sorted(Comparator.comparing(AlarmLog::getAlatime)).collect(Collectors.toList());
// //反转list排序
// Collections.reverse(alarmList);
// map.put("log",alarmList);
// map.put("logSize",total.get("count"));
// }
// return map;
// }
/* /*
public Map selectClusterStatus() { public Map selectClusterStatus() {
......
...@@ -148,14 +148,30 @@ public class CassandraDaoImpl { ...@@ -148,14 +148,30 @@ public class CassandraDaoImpl {
String cql="select count(*) from ctid_prof.alarm_log where alatime > '"+start+"' and alatime < '"+end+"' and state < '" +Constant.ALARM_ING+"' allow filtering"; String cql="select count(*) from ctid_prof.alarm_log where alatime > '"+start+"' and alatime < '"+end+"' and state < '" +Constant.ALARM_ING+"' allow filtering";
return template.selectOne(cql,Map.class); return template.selectOne(cql,Map.class);
} }
//根据开始与结束时间和偏移量查询告警日志
public List<AlarmLog> getAlarmLogByStartAndEndAndLimitnum(String start, String end,int limitNum) {
String cql="select * from ctid_prof.alarm_log where alatime > '"+start+"' and alatime < '"+end+"' and state < '" +Constant.ALARM_ING+"' limit "+limitNum+" allow filtering";
return template.select(cql,AlarmLog.class);
}
public Map getAlarmLogSize(String ip) { public Map getAlarmLogSize(String ip) {
String cql="select count(*) from ctid_prof.alarm_log where ip like '%"+ip+"%' and state < '" +Constant.ALARM_ING+"' allow filtering"; String cql="select count(*) from ctid_prof.alarm_log where ip like '%"+ip+"%' and state < '" +Constant.ALARM_ING+"' allow filtering";
return template.selectOne(cql,Map.class); return template.selectOne(cql,Map.class);
} }
//根据ip地址和偏移量查询告警日志
public List<AlarmLog> getAlarmLogByIpAndLimitnum(String ip,int limitNum) {
String cql="select * from ctid_prof.alarm_log where ip like '%"+ip+"%' and state < '" +Constant.ALARM_ING+"' limit "+limitNum+" allow filtering";
return template.select(cql,AlarmLog.class);
}
public Map getAlarmLogSize(String ip, String start, String end) { public Map getAlarmLogSize(String ip, String start, String end) {
String cql="select count(*) from ctid_prof.alarm_log where ip like '%"+ip+"%' and alatime > '"+start+"' and alatime <'"+end+"' and state < '" +Constant.ALARM_ING+"' allow filtering"; String cql="select count(*) from ctid_prof.alarm_log where ip like '%"+ip+"%' and alatime > '"+start+"' and alatime <'"+end+"' and state < '" +Constant.ALARM_ING+"' allow filtering";
return template.selectOne(cql,Map.class); return template.selectOne(cql,Map.class);
} }
//根据开始、结束时间、ip地址、偏移量查询告警日志
public List<AlarmLog> getAlarmLogByParam(String ip, String start, String end,int limitNum) {
String cql="select * from ctid_prof.alarm_log where ip like '%"+ip+"%' and alatime > '"+start+"' and alatime <'"+end+"' and state < '" +Constant.ALARM_ING+"' limit "+limitNum+" allow filtering";
return template.select(cql,AlarmLog.class);
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment