This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
k18-ntcs-web-ntc/src/main/java/com/nis/web/controller/dashboard/TrafficStatisticsInfoController.java

157 lines
5.0 KiB
Java
Raw Normal View History

2018-09-21 20:49:57 +08:00
package com.nis.web.controller.dashboard;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
2018-09-21 20:49:57 +08:00
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
2018-09-21 20:49:57 +08:00
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
2018-09-21 20:49:57 +08:00
import org.springframework.web.bind.annotation.ResponseBody;
import com.beust.jcommander.internal.Maps;
2018-09-21 20:49:57 +08:00
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import com.nis.domain.PageLog;
import com.nis.domain.dashboard.TrafficIpActiveStatistic;
2018-09-21 20:49:57 +08:00
import com.nis.util.Constants;
import com.nis.util.StringUtil;
2018-09-21 20:49:57 +08:00
import com.nis.util.httpclient.HttpClientUtil;
import com.nis.web.controller.BaseController;
@Controller
@RequestMapping("${adminPath}/dashboard/traffic")
public class TrafficStatisticsInfoController extends BaseController {
/**
* 协议类型详细列表
*/
@RequestMapping(value="protocolTypeList")
public String protocolTypeList(){
return "/dashboard/trafficProtocolTypeList";
}
/**
* rejectNum 封堵数量
* newUniConn 新建连接数
* liveConnNum 活跃链接数
* dropConnNum 丢弃链接数
*
*/
@RequestMapping(value="info")
@ResponseBody
public Map ipActive(){
Map<String, Object> fromJsonList = new HashMap<String, Object>();
HashMap<String, Object> m = new HashMap<String, Object>();
List list = new ArrayList();
try {
String string = HttpClientUtil.get(Constants.DASHBOARD_URL+Constants.NTC_TOTAL_REPORT);
Gson gson = new GsonBuilder().create();
fromJsonList = gson.fromJson(string, new TypeToken<Map>(){}.getType());
list = (ArrayList) fromJsonList.get("data");
Random r = new Random();
2018-09-26 16:27:17 +08:00
Double rejectNum=0d;
Double dropConnNum=0d;
Double monitorNum=0d;
Double loopConnNum=0d;
Double liveConnNum=0d;
Double newUniConnNum=0d;
2018-09-26 16:27:17 +08:00
Double inoctetsNum=0d;
Double outoctetsNum=0d;
Double bandwidth=0d;
2018-09-21 20:49:57 +08:00
if(list!=null&&list.size()>0){
Map map = (Map) list.get(0);
rejectNum = (Double) map.get("rejectNum") ;
monitorNum = (Double) map.get("monitorNum");
dropConnNum = (Double) map.get("dropConnNum");
loopConnNum = (Double) map.get("loopConnNum");
liveConnNum = (Double) map.get("liveConnNum");
newUniConnNum = (Double) map.get("newUniConnNum");
2018-09-26 16:27:17 +08:00
inoctetsNum = (Double) map.get("inoctets");
outoctetsNum = (Double) map.get("outoctets");
//单位换算 byte->bit/s
inoctetsNum=(inoctetsNum*8)/(5*60);
outoctetsNum=(outoctetsNum*8)/(5*60);
2018-09-26 16:27:17 +08:00
2018-09-21 20:49:57 +08:00
}
2018-09-26 16:27:17 +08:00
bandwidth=inoctetsNum+outoctetsNum;
2018-09-21 20:49:57 +08:00
m.put("rejectNum", rejectNum);
m.put("monitorNum", monitorNum);
m.put("loopConnNum", loopConnNum);
m.put("dropConnNum", dropConnNum);
m.put("liveConnNum", liveConnNum);
m.put("newUniConnNum", newUniConnNum);
2018-09-26 16:27:17 +08:00
2018-09-21 20:49:57 +08:00
m.put("bandwidth", bandwidth);
2018-09-26 16:27:17 +08:00
m.put("inoctetsNum", inoctetsNum);
m.put("outoctetsNum", outoctetsNum);
2018-09-21 20:49:57 +08:00
2018-09-26 16:27:17 +08:00
logger.info("统计流量信息数据"+fromJsonList);
2018-09-21 20:49:57 +08:00
return m;
} catch (Exception e) {
e.printStackTrace();
2018-09-26 16:27:17 +08:00
logger.error("统计流量信息数据错误"+e);
2018-09-21 20:49:57 +08:00
}
return m;
}
/**
* 根据ip46,协议tcp,udp查询带宽 间隔5分钟数据
*/
@RequestMapping(value="bandwidthTrans")
@ResponseBody
public Map ipActiveMinuteList(@RequestParam("addrType")String addrType,@RequestParam("transType")Integer transType){
Map<String, Object> fromJsonList = new HashMap<String, Object>();
Map map = new HashMap();
String url = Constants.DASHBOARD_URL+Constants.TRAFFIC_BANDWIDTH_TRANS;
if(!StringUtil.isBlank(addrType)){
url=url+"?addrType="+addrType;
}
if(transType!=null){
url=url+"?transType="+transType;
}
try {
String string = HttpClientUtil.get(url);
Gson gson = new GsonBuilder().create();
fromJsonList = gson.fromJson(string, new TypeToken<Map>(){}.getType());
logger.info("带宽1小时,间隔5分钟数据"+fromJsonList);
List list = (ArrayList) fromJsonList.get("data");
if(!StringUtil.isEmpty(list)){
map=(Map) list.get(0);
}
return map;
} catch (Exception e) {
e.printStackTrace();
logger.error("带宽详情数据获取错误"+e);
}
return map;
}
2018-11-05 10:17:14 +08:00
@RequestMapping(value="bandwidthList")
public String bandwidthList( HttpServletRequest request, HttpServletResponse response, Model model){
PageLog<TrafficIpActiveStatistic> page = new PageLog<TrafficIpActiveStatistic>(request, response);
List list = new ArrayList();
for (int i = 1; i < 10; i++) {
TrafficIpActiveStatistic ip = new TrafficIpActiveStatistic();
ip.setId(i);
ip.setIpAddr(3+i+".1.1."+i);
ip.setAreaId("11");
ip.setLinkNum(1212l);
list.add(ip);
}
page.setList(list);
model.addAttribute("page", page);
return "/dashboard/trafficBandwidthList";
}
2018-09-21 20:49:57 +08:00
}