diff --git a/src/main/java/com/nis/domain/restful/dashboard/TrafficIpActiveStatistic.java b/src/main/java/com/nis/domain/restful/dashboard/TrafficIpActiveStatistic.java index 514abd8..94c081d 100644 --- a/src/main/java/com/nis/domain/restful/dashboard/TrafficIpActiveStatistic.java +++ b/src/main/java/com/nis/domain/restful/dashboard/TrafficIpActiveStatistic.java @@ -2,7 +2,9 @@ package com.nis.domain.restful.dashboard; import java.util.Date; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.nis.domain.BaseEntity; +import com.nis.util.JsonDateSerializer; public class TrafficIpActiveStatistic extends BaseEntity { /** @@ -27,8 +29,19 @@ public class TrafficIpActiveStatistic extends BaseEntity trafficIpActiveOneHour(Model model, HttpServletRequest request, HttpServletResponse response) { + + long start = System.currentTimeMillis(); + AuditLogThread auditLogThread = super.saveRequestLog(servicesRequestLogService, Constants.OPACTION_GET, request, null); + List list = new ArrayList(); + try { + List ipActiveChart = dashboardService.ipActiveOneHour(); + if (ipActiveChart.size() > 0) { + list = ipActiveChart; + } + } catch (Exception e) { + e.printStackTrace(); + auditLogThread.setExceptionInfo(e.getMessage() + " " + e.getCause()); + logger.error("流量统计接口服务错误"+e); + if (!(e instanceof RestServiceException)) { + e = new RestServiceException(auditLogThread, System.currentTimeMillis() - start, "活跃IP实时统计数据检索失败"); + } + throw ((RestServiceException) e); + } + return serviceLogResponse(auditLogThread, System.currentTimeMillis() - start, request, "活跃IP实时统计数据检索成功",list, 0); + } + /** + * 活跃IP TOP10 一小时数据 + */ + @RequestMapping(value = "trafficIpActiveFiveMinute", method = RequestMethod.GET) + @ApiOperation(value = "活跃IP统计最近五分钟TOP10在近一个小时间隔五分钟的活跃IP数据", httpMethod = "GET", notes = "对应活跃IP实时统计查询服务。") + public Map trafficIpActiveFiveMinute(Model model, HttpServletRequest request, HttpServletResponse response) { + + long start = System.currentTimeMillis(); + AuditLogThread auditLogThread = super.saveRequestLog(servicesRequestLogService, Constants.OPACTION_GET, request, null); + List list = new ArrayList(); + try { + List ipActiveChart = dashboardService.ipActiveFiveMinute(); + if (ipActiveChart.size() > 0) { + list = ipActiveChart; + } + } catch (Exception e) { + e.printStackTrace(); + auditLogThread.setExceptionInfo(e.getMessage() + " " + e.getCause()); + logger.error("流量统计接口服务错误"+e); if (!(e instanceof RestServiceException)) { e = new RestServiceException(auditLogThread, System.currentTimeMillis() - start, "活跃IP实时统计数据检索失败"); } @@ -171,7 +223,7 @@ public class DashboardServiceController extends BaseRestController { } catch (Exception e) { e.printStackTrace(); auditLogThread.setExceptionInfo(e.getMessage() + " " + e.getCause()); - logger.error(e); + logger.error("流量统计接口服务错误"+e); if (!(e instanceof RestServiceException)) { e = new RestServiceException(auditLogThread, System.currentTimeMillis() - start, "App流量统计数据检索失败"); } @@ -193,7 +245,7 @@ public class DashboardServiceController extends BaseRestController { } catch (Exception e) { e.printStackTrace(); auditLogThread.setExceptionInfo(e.getMessage() + " " + e.getCause()); - logger.error(e); + logger.error("流量统计接口服务错误"+e); if (!(e instanceof RestServiceException)) { e = new RestServiceException(auditLogThread, System.currentTimeMillis() - start, "操作系统流量分析统计检索失败"); } @@ -216,7 +268,7 @@ public class DashboardServiceController extends BaseRestController { } catch (Exception e) { e.printStackTrace(); auditLogThread.setExceptionInfo(e.getMessage() + " " + e.getCause()); - logger.error(e); + logger.error("流量统计接口服务错误"+e); if (!(e instanceof RestServiceException)) { e = new RestServiceException(auditLogThread, System.currentTimeMillis() - start, "操作系统下浏览器分类统计数据检索失败"); } @@ -238,7 +290,7 @@ public class DashboardServiceController extends BaseRestController { } catch (Exception e) { e.printStackTrace(); auditLogThread.setExceptionInfo(e.getMessage() + " " + e.getCause()); - logger.error(e); + logger.error("流量统计接口服务错误"+e); if (!(e instanceof RestServiceException)) { e = new RestServiceException(auditLogThread, System.currentTimeMillis() - start, "浏览器流量分析统计数据检索失败"); } @@ -261,7 +313,7 @@ public class DashboardServiceController extends BaseRestController { } catch (Exception e) { e.printStackTrace(); auditLogThread.setExceptionInfo(e.getMessage() + " " + e.getCause()); - logger.error(e); + logger.error("流量统计接口服务错误"+e); if (!(e instanceof RestServiceException)) { e = new RestServiceException(auditLogThread, System.currentTimeMillis() - start, "浏览器下操作系统流量统计数据检索失败"); } @@ -285,7 +337,7 @@ public class DashboardServiceController extends BaseRestController { } catch (Exception e) { e.printStackTrace(); auditLogThread.setExceptionInfo(e.getMessage() + " " + e.getCause()); - logger.error(e); + logger.error("流量统计接口服务错误"+e); if (!(e instanceof RestServiceException)) { e = new RestServiceException(auditLogThread, System.currentTimeMillis() - start, "网站流量分析统计数据检索失败"); } @@ -308,7 +360,7 @@ public class DashboardServiceController extends BaseRestController { } catch (Exception e) { e.printStackTrace(); auditLogThread.setExceptionInfo(e.getMessage() + " " + e.getCause()); - logger.error(e); + logger.error("流量统计接口服务错误"+e); if (!(e instanceof RestServiceException)) { e = new RestServiceException(auditLogThread, System.currentTimeMillis() - start, "http网站分类分析数据检索失败"); } @@ -331,7 +383,7 @@ public class DashboardServiceController extends BaseRestController { } catch (Exception e) { e.printStackTrace(); auditLogThread.setExceptionInfo(e.getMessage() + " " + e.getCause()); - logger.error(e); + logger.error("流量统计接口服务错误"+e); if (!(e instanceof RestServiceException)) { e = new RestServiceException(auditLogThread, System.currentTimeMillis() - start, "http网站主题分类分析数据检索失败"); } diff --git a/src/main/java/com/nis/web/dao/dashboard/TrafficIpActiveStatisticDao.java b/src/main/java/com/nis/web/dao/dashboard/TrafficIpActiveStatisticDao.java index 3280bb6..d1b88fd 100644 --- a/src/main/java/com/nis/web/dao/dashboard/TrafficIpActiveStatisticDao.java +++ b/src/main/java/com/nis/web/dao/dashboard/TrafficIpActiveStatisticDao.java @@ -1,16 +1,23 @@ package com.nis.web.dao.dashboard; import java.util.ArrayList; +import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; +import org.apache.ibatis.annotations.Param; + import com.nis.domain.restful.dashboard.TrafficIpActiveStatistic; import com.nis.web.dao.MyBatisDao; @MyBatisDao public interface TrafficIpActiveStatisticDao { - List getList(TrafficIpActiveStatistic trafficIpActiveStatistic); - + List getIpList(TrafficIpActiveStatistic trafficIpActiveStatistic); + + ArrayList ipActiveFiveMinute(@Param("ipAddr") String ipAddr); + + ArrayList ipActiveOneHour(@Param("ipAddr") String ipAddr); + ArrayList ipActiveChart(); } \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/dashboard/TrafficIpActiveStatisticDao.xml b/src/main/java/com/nis/web/dao/dashboard/TrafficIpActiveStatisticDao.xml index be6183a..5925126 100644 --- a/src/main/java/com/nis/web/dao/dashboard/TrafficIpActiveStatisticDao.xml +++ b/src/main/java/com/nis/web/dao/dashboard/TrafficIpActiveStatisticDao.xml @@ -17,16 +17,37 @@ stat_time - select from galaxy.traffic_ip_active_statistic - + + + + + + diff --git a/src/main/java/com/nis/web/service/restful/DashboardService.java b/src/main/java/com/nis/web/service/restful/DashboardService.java index 6e1faad..e867689 100644 --- a/src/main/java/com/nis/web/service/restful/DashboardService.java +++ b/src/main/java/com/nis/web/service/restful/DashboardService.java @@ -84,14 +84,59 @@ public class DashboardService extends BaseService{ * 分页查询活跃IPtop100 * @return */ - public Page getList(Page page,TrafficIpActiveStatistic entry){ + public Page getIpList(Page page,TrafficIpActiveStatistic entry){ // 设置分页参数 entry.setPage(page); // 执行分页查询 - page.setList(trafficIpActiveStatisticDao.getList(entry)); + page.setList(trafficIpActiveStatisticDao.getIpList(entry)); return page; } - + public List ipActiveFiveMinute(){ + + ArrayList list = trafficIpActiveStatisticDao.ipActiveChart(); + ArrayList listMap=new ArrayList(); + if(list!=null&&list.size()>0) { + for (LinkedHashMap map : list) { + HashMap m = new HashMap(); + if(map.get("ipAddr")!=null) { + String ipAddr = (String) map.get("ipAddr"); + m.put("ipAddr", ipAddr); + ArrayList ipList = trafficIpActiveStatisticDao.ipActiveFiveMinute(ipAddr); + List linkList = new ArrayList(); + List timeList = new ArrayList(); + if(ipList!=null&&ipList.size()>0) { + for (TrafficIpActiveStatistic ip : ipList) { + if(ip.getLinkNum()!=null&&ip.getTime()!=null) { + linkList.add(ip.getLinkNum()); + timeList.add(ip.getTime()); + } + } + } + m.put("linkNum",linkList); + m.put("statTime",timeList); + listMap.add(m); + } + } + } + + return listMap; + } + public List ipActiveOneHour(){ + + ArrayList list = trafficIpActiveStatisticDao.ipActiveChart(); + ArrayList listMap=new ArrayList(); + if(list!=null&&list.size()>0) { + for (LinkedHashMap map : list) { + if(map.get("ipAddr")!=null) { + String ipAddr = (String) map.get("ipAddr"); + ArrayList iplList = trafficIpActiveStatisticDao.ipActiveOneHour(ipAddr); + listMap.add(iplList.get(0)); + } + } + } + + return listMap; + } public List ipActiveChart(){ ArrayList list = trafficIpActiveStatisticDao.ipActiveChart();