From 6da583a766da8df35e5071b7317139a3535a3856 Mon Sep 17 00:00:00 2001 From: zhanghongqing Date: Mon, 17 Dec 2018 11:12:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E8=AF=AF=E8=A6=86=E7=9B=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dashboard/DashboardController.java | 11 ++- .../TrafficStatisticsInfoController.java | 99 +++++++++++++++++++ .../views/dashboard/dashBoardIndex.jsp | 21 ++-- 3 files changed, 121 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/nis/web/controller/dashboard/DashboardController.java b/src/main/java/com/nis/web/controller/dashboard/DashboardController.java index 9a5f54758..9d2a99198 100644 --- a/src/main/java/com/nis/web/controller/dashboard/DashboardController.java +++ b/src/main/java/com/nis/web/controller/dashboard/DashboardController.java @@ -58,8 +58,15 @@ public class DashboardController extends BaseController{ * @return */ @RequestMapping(value="logChart") - public String logChart(){ - + public String logChart(Model model){ + // 默认当前时间一小时 + Calendar cal = Calendar. getInstance (); + cal.setTime(new Date()); + String endDate = new SimpleDateFormat( "yyyy-MM-dd HH:mm:00" ).format(cal.getTime());//获取到完整的时间 + cal.set(Calendar.HOUR_OF_DAY, cal.get(Calendar.HOUR_OF_DAY) - 1); + String beginDate = new SimpleDateFormat( "yyyy-MM-dd HH:mm:00" ).format(cal.getTime()); + model.addAttribute("beginDate", beginDate); + model.addAttribute("endDate", endDate); return "/dashboard/dashBoardIndex"; } diff --git a/src/main/java/com/nis/web/controller/dashboard/TrafficStatisticsInfoController.java b/src/main/java/com/nis/web/controller/dashboard/TrafficStatisticsInfoController.java index fa44e2a27..7e13e331a 100644 --- a/src/main/java/com/nis/web/controller/dashboard/TrafficStatisticsInfoController.java +++ b/src/main/java/com/nis/web/controller/dashboard/TrafficStatisticsInfoController.java @@ -1,12 +1,15 @@ package com.nis.web.controller.dashboard; import java.lang.reflect.Type; +import java.math.BigDecimal; import java.net.URISyntaxException; import java.net.URLEncoder; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; +import java.util.Collections; +import java.util.Comparator; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -35,6 +38,7 @@ import com.google.gson.JsonParseException; import com.google.gson.LongSerializationPolicy; import com.google.gson.reflect.TypeToken; import com.nis.domain.PageLog; +import com.nis.domain.configuration.WebsiteDomainTopic; import com.nis.domain.dashboard.TrafficIpActiveStatistic; import com.nis.util.CodeDicUtils; import com.nis.util.Constants; @@ -385,4 +389,99 @@ public class TrafficStatisticsInfoController extends BaseController { } return list; } + /** + * 网址类型列表 + */ + @RequestMapping("webTypeList") + public String webTypeList(Model model){ + Calendar cal = Calendar. getInstance (); + cal.setTime(new Date()); + String now = new SimpleDateFormat( "yyyy-MM-dd HH:mm:00" ).format(cal.getTime());//获取到完整的时间 + cal.set(Calendar.HOUR_OF_DAY, cal.get(Calendar.HOUR_OF_DAY) - 1); + String oneHoursAgo = new SimpleDateFormat( "yyyy-MM-dd HH:mm:00" ).format(cal.getTime()); + model.addAttribute("beginDate", oneHoursAgo); + model.addAttribute("endDate", now); + return "/dashboard/trafficWebTypeList"; + } + /** + * 网站统计图跟表 + */ + @RequestMapping(value="websiteList") + @ResponseBody + public List websiteList(Model model,@RequestParam(required=false)String beginDate,@RequestParam(required=false)String endDate){ + Map fromJsonList = new HashMap(); + List list = new ArrayList(); + String url = Constants.DASHBOARD_URL+Constants.TRAFFIC_WEBSITELIST; +// String url = "http://192.168.11.87:8088/galaxy-service/service/log/v1/"+Constants.TRAFFIC_WEBSITELIST; + try { + url=urlAddDate(url,beginDate,endDate); + String string = HttpClientUtil.get(url); + Gson gson = new GsonBuilder().create(); + fromJsonList = gson.fromJson(string, new TypeToken(){}.getType()); + logger.debug("website接口数据"+fromJsonList); + list = (ArrayList) fromJsonList.get("data"); + BigDecimal divisor=new BigDecimal(1024*1024*1024); + DecimalFormat df = new DecimalFormat("0.00"); + DecimalFormat dl = new DecimalFormat("0"); + DecimalFormat pf = new DecimalFormat("0.00%"); + Double totalLink=0d; + Double totalGbyte=0d; + Double totalPackets=0d; + for (Object object : list) { + Map m=(Map)object; + Double count=(Double)m.get("count"); + totalGbyte+=count; + totalLink+=(Double)m.get("linkNum"); + totalPackets+=(Double)m.get("packets"); + String format = df.format(count/1024/1024/1024); + m.put("Gbyte", format); + } + List codeList = appCfgService.getDomainDict(new WebsiteDomainTopic()); + Map map = new HashMap(); + for (WebsiteDomainTopic websiteDomainTopic : codeList) { + if(!map.containsKey(websiteDomainTopic.getWebsiteServiceId())){ + map.put(websiteDomainTopic.getId(),websiteDomainTopic.getDomain()); + } + } + for (Object object : list) { + Map m=(Map)object; + Double perLink = ((Double)m.get("linkNum"))/totalLink; + m.put("perLink",pf.format(perLink)); + Double perPackets = ((Double)m.get("packets"))/totalPackets; + m.put("perPackets", pf.format(perPackets)); + Double perGbyte = ((Double)m.get("count"))/totalGbyte; + m.put("perGbyte", pf.format(perGbyte)); + if(map.containsKey(Long.parseLong(dl.format(m.get("webId"))))){ + m.put("website", map.get(Long.parseLong(dl.format(m.get("webId"))))); + } + } + Collections.sort(list, new Comparator() { + + @Override + public int compare(Object o1, Object o2) { + if(o1==null&&o2!=null){ + return 1; + } + if(o1!=null&&o2==null){ + return -1; + } + if(o1==null&&o2==null){ + return 0; + } + Map m1=(Map)o1; + Map m2=(Map)o2; + if((Double)m1.get("count")==(Double)m2.get("count")){ + return 0; + } + int result=((Double)m1.get("count")-(Double)m2.get("count"))>0?-1:1; + return result; + } + }); + } catch (Exception e) { + e.printStackTrace(); + logger.error("网站域名数据获取错误"+e); + list.add(Maps.newHashMap("error","request_service_failed")); + } + return list; + } } diff --git a/src/main/webapp/WEB-INF/views/dashboard/dashBoardIndex.jsp b/src/main/webapp/WEB-INF/views/dashboard/dashBoardIndex.jsp index 5488022c3..4c8704c8f 100644 --- a/src/main/webapp/WEB-INF/views/dashboard/dashBoardIndex.jsp +++ b/src/main/webapp/WEB-INF/views/dashboard/dashBoardIndex.jsp @@ -154,6 +154,8 @@ + +
@@ -163,10 +165,10 @@   
- - + +
@@ -225,7 +227,7 @@
-   <%-- --%> +   
@@ -438,7 +440,10 @@ $(document).ready(function(){ uaSelectChange(); }); - + var starth=$("#beginDateh").val(); + var endh=$("#endDateh").val(); + $("#ipBeginDate").val(starth); + $("#ipEndDate").val(endh); }); //获取数据info function ajaxinfo(){ @@ -574,8 +579,8 @@ function protocolList(){ } //活跃IP统计 function ipActiveList(){ - var begin=$("#iPBeginDate").val(); - var end=$("#iPEndDate").val(); + var begin=$("#ipBeginDate").val(); + var end=$("#ipEndDate").val(); loading(); $.ajax({ url: '${ctx}/dashboard/ipActive',