301 lines
10 KiB
Java
301 lines
10 KiB
Java
package com.nis.web.controller.dashboard;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Controller;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import org.springframework.web.bind.annotation.RequestParam;
|
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
|
|
import com.google.gson.Gson;
|
|
import com.google.gson.GsonBuilder;
|
|
import com.google.gson.reflect.TypeToken;
|
|
import com.nis.util.CodeDicUtils;
|
|
import com.nis.util.StringUtil;
|
|
import com.nis.util.httpclient.HttpClientUtil;
|
|
import com.nis.web.controller.BaseController;
|
|
import com.nis.web.dao.dashboard.codedic.CodeResult;
|
|
@SuppressWarnings("rawtypes")
|
|
@Controller
|
|
@RequestMapping(value = "${adminPath}/dashboard")
|
|
public class DashboardController extends BaseController{
|
|
|
|
|
|
@RequestMapping(value="logChart")
|
|
public String logChart(){
|
|
bsList();
|
|
systemChart("Google Chrome");
|
|
|
|
|
|
return "/dashboard/dashBoardIndex";
|
|
}
|
|
|
|
/**
|
|
* 活跃IP TOP10
|
|
*/
|
|
@RequestMapping(value="ipActive")
|
|
@ResponseBody
|
|
public List ipActive(){
|
|
Map<String, Object> fromJsonList = new HashMap<String, Object>();
|
|
List list = new ArrayList();
|
|
try {
|
|
String string = HttpClientUtil.get("http://10.0.6.101:8080/gwall/service/log/v1/trafficIpActive");
|
|
Gson gson = new GsonBuilder().create();
|
|
fromJsonList = gson.fromJson(string, new TypeToken<Map>(){}.getType());
|
|
list = (ArrayList) fromJsonList.get("data");
|
|
logger.info("活跃IP数据"+fromJsonList);
|
|
return list;
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
logger.error("活跃ip错误"+e);
|
|
}
|
|
return list;
|
|
}
|
|
/**
|
|
* 协议统计
|
|
*/
|
|
@SuppressWarnings("unchecked")
|
|
@RequestMapping(value="protocol")
|
|
@ResponseBody
|
|
public List protocolChart(){
|
|
Map<String, Object> fromJsonList = new HashMap<String, Object>();
|
|
List<Map> list = new ArrayList<Map>();
|
|
List<Map> resultList = new ArrayList<Map>();
|
|
try {
|
|
String string = HttpClientUtil.get("http://10.0.6.101:8080/gwall/service/log/v1/trafficProtocol");
|
|
Gson gson = new GsonBuilder().create();
|
|
fromJsonList = gson.fromJson(string, new TypeToken<Map>(){}.getType());
|
|
list = (List<Map>) fromJsonList.get("data");
|
|
//标签集合
|
|
List<CodeResult> codeList = CodeDicUtils.getCodeList("protocolCode");
|
|
//将数字替换为标签文字
|
|
for (Map map : list) {
|
|
Double value1 = Double.parseDouble(map.get("protoType").toString());
|
|
for (CodeResult code : codeList) {
|
|
Double value2 = Double.valueOf(code.getCode());
|
|
if(value1.equals(value2)){
|
|
map.put("protoType", code.getItem());
|
|
break;
|
|
}
|
|
}
|
|
resultList.add(map);
|
|
}
|
|
logger.info("协议统计"+fromJsonList);
|
|
return resultList;
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
logger.error("协议统计错误"+e);
|
|
}
|
|
return resultList;
|
|
}
|
|
/**
|
|
* app流量分析
|
|
*/
|
|
@RequestMapping(value="app")
|
|
@ResponseBody
|
|
public List appChart(){
|
|
Map<String, Object> fromJsonList = new HashMap<String, Object>();
|
|
List<Map> list = new ArrayList<Map>();
|
|
List<Map> resultList = new ArrayList<Map>();
|
|
try {
|
|
String string = HttpClientUtil.get("http://10.0.6.101:8080/gwall/service/log/v1/trafficApp");
|
|
Gson gson = new GsonBuilder().create();
|
|
fromJsonList = gson.fromJson(string, new TypeToken<Map>(){}.getType());
|
|
list = (List<Map>) fromJsonList.get("data");
|
|
//标签集合
|
|
List<CodeResult> codeList = CodeDicUtils.getCodeList("appCode");
|
|
//将数字替换为标签文字
|
|
for (Map map : list) {
|
|
Double value1 = Double.parseDouble(map.get("appType").toString());
|
|
for (CodeResult code : codeList) {
|
|
Double value2 = Double.valueOf(code.getCode());
|
|
if(value1.equals(value2)){
|
|
map.put("appType", code.getItem());
|
|
break;
|
|
}
|
|
}
|
|
resultList.add(map);
|
|
}
|
|
logger.info("app流量分析"+fromJsonList);
|
|
return resultList;
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
logger.error("app流量分析错误"+e);
|
|
}
|
|
return resultList;
|
|
}
|
|
/**
|
|
* 终端用户-操作系统列表
|
|
*/
|
|
@RequestMapping(value="osList")
|
|
@ResponseBody
|
|
public List osList(){
|
|
Map<String, Object> fromJsonList = new HashMap<String, Object>();
|
|
List<Map> list = new ArrayList<Map>();
|
|
List<Map> resultList = new ArrayList<Map>();
|
|
try {
|
|
String string = HttpClientUtil.get("http://10.0.6.101:8080/gwall/service/log/v1/trafficOsList");
|
|
Gson gson = new GsonBuilder().create();
|
|
fromJsonList = gson.fromJson(string, new TypeToken<Map>(){}.getType());
|
|
list = (List<Map>) fromJsonList.get("data");
|
|
//标签集合
|
|
List<CodeResult> codeList = CodeDicUtils.getCodeList("osCode");
|
|
//将数字替换为标签文字
|
|
for (Map map : list) {
|
|
Double value1 = Double.parseDouble(map.get("osType").toString());
|
|
for (CodeResult code : codeList) {
|
|
Double value2 = Double.valueOf(code.getCode());
|
|
if(value1.equals(value2)){
|
|
map.put("osType", code.getItem());
|
|
break;
|
|
}
|
|
}
|
|
resultList.add(map);
|
|
}
|
|
logger.info("终端用户-获取操作系统列表"+fromJsonList);
|
|
return resultList;
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
logger.error("终端用户-获取操作系统列表错误"+e);
|
|
}
|
|
return resultList;
|
|
}
|
|
/**
|
|
* 终端用户-指定操作系统下浏览器分类流量统计
|
|
*/
|
|
@RequestMapping(value="browserChart")
|
|
@ResponseBody
|
|
public List browserChart(@RequestParam("osType") String osType){
|
|
Map<String, Object> fromJsonList = new HashMap<String, Object>();
|
|
List<Map> list = new ArrayList<Map>();
|
|
List<Map> resultList = new ArrayList<Map>();
|
|
//标签集合
|
|
List<CodeResult> codeList1 = CodeDicUtils.getCodeList("osCode");
|
|
//将标签文字转为数字
|
|
Integer os=null;
|
|
for (CodeResult codeResult : codeList1) {
|
|
if(osType.equalsIgnoreCase(codeResult.getItem())){
|
|
os=Integer.parseInt(codeResult.getCode());
|
|
break;
|
|
}
|
|
}
|
|
try {
|
|
String string = HttpClientUtil.get("http://10.0.6.101:8080/gwall/service/log/v1/trafficBrowserChart?osType="+os);
|
|
Gson gson = new GsonBuilder().create();
|
|
fromJsonList = gson.fromJson(string, new TypeToken<Map>(){}.getType());
|
|
list = (List<Map>) fromJsonList.get("data");
|
|
//标签集合
|
|
List<CodeResult> codeList2 = CodeDicUtils.getCodeList("browserCode");
|
|
//将数字替换为标签文字
|
|
if(null!=list&&!list.isEmpty()){
|
|
for (Map map : list) {
|
|
Double value1 = Double.parseDouble(map.get("bsType").toString());
|
|
for (CodeResult code : codeList2) {
|
|
Double value2 = Double.valueOf(code.getCode());
|
|
if(value1.equals(value2)){
|
|
map.put("bsType", code.getItem());
|
|
break;
|
|
}
|
|
}
|
|
resultList.add(map);
|
|
}
|
|
}
|
|
logger.info("终端用户-获取操作系统下浏览器类型"+fromJsonList);
|
|
return resultList;
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
logger.error("终端用户-获取操作系统下浏览器类型错误"+e);
|
|
}
|
|
return resultList;
|
|
}
|
|
/**
|
|
* 终端用户-浏览器列表
|
|
*/
|
|
@RequestMapping(value="bsList")
|
|
@ResponseBody
|
|
public List bsList(){
|
|
Map<String, Object> fromJsonList = new HashMap<String, Object>();
|
|
List<Map> list = new ArrayList<Map>();
|
|
List<Map> resultList = new ArrayList<Map>();
|
|
try {
|
|
String string = HttpClientUtil.get("http://10.0.6.101:8080/gwall/service/log/v1/trafficBsList");
|
|
Gson gson = new GsonBuilder().create();
|
|
fromJsonList = gson.fromJson(string, new TypeToken<Map>(){}.getType());
|
|
list = (List<Map>) fromJsonList.get("data");
|
|
//标签集合
|
|
List<CodeResult> codeList = CodeDicUtils.getCodeList("browserCode");
|
|
//将数字替换为标签文字
|
|
for (Map map : list) {
|
|
Double value1 = Double.parseDouble(map.get("bsType").toString());
|
|
for (CodeResult code : codeList) {
|
|
Double value2 = Double.valueOf(code.getCode());
|
|
if(value1.equals(value2)){
|
|
map.put("bsType", code.getItem());
|
|
break;
|
|
}
|
|
}
|
|
resultList.add(map);
|
|
}
|
|
logger.info("终端用户-获取浏览器列表"+fromJsonList);
|
|
return resultList;
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
logger.error("终端用户-获取浏览器列表错误"+e);
|
|
}
|
|
return resultList;
|
|
}
|
|
/**
|
|
* 终端用户-指定操作系统下浏览器分类流量统计
|
|
*/
|
|
@RequestMapping(value="systemChart")
|
|
@ResponseBody
|
|
public List systemChart(@RequestParam("bsType") String bsType){
|
|
Map<String, Object> fromJsonList = new HashMap<String, Object>();
|
|
List<Map> list = new ArrayList<Map>();
|
|
List<Map> resultList = new ArrayList<Map>();
|
|
//标签集合
|
|
List<CodeResult> codeList1 = CodeDicUtils.getCodeList("bsCode");
|
|
//将标签文字转为数字
|
|
Integer bs=null;
|
|
for (CodeResult codeResult : codeList1) {
|
|
if(bsType.equalsIgnoreCase(codeResult.getItem())){
|
|
bs=Integer.parseInt(codeResult.getCode());
|
|
break;
|
|
}
|
|
}
|
|
try {
|
|
String string = HttpClientUtil.get("http://10.0.6.101:8080/gwall/service/log/v1/trafficBrowserChart?bsType="+bs);
|
|
Gson gson = new GsonBuilder().create();
|
|
fromJsonList = gson.fromJson(string, new TypeToken<Map>(){}.getType());
|
|
list = (List<Map>) fromJsonList.get("data");
|
|
//标签集合
|
|
List<CodeResult> codeList2 = CodeDicUtils.getCodeList("osCode");
|
|
//将数字替换为标签文字
|
|
if(null!=list&&!list.isEmpty()){
|
|
for (Map map : list) {
|
|
Double value1 = Double.parseDouble(map.get("osType").toString());
|
|
for (CodeResult code : codeList2) {
|
|
Double value2 = Double.valueOf(code.getCode());
|
|
if(value1.equals(value2)){
|
|
map.put("osType", code.getItem());
|
|
break;
|
|
}
|
|
}
|
|
resultList.add(map);
|
|
}
|
|
}
|
|
logger.info("终端用户-获取浏览器下操作系统类型"+fromJsonList);
|
|
return resultList;
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
logger.error("终端用户-获取浏览器下操作系统类型错误"+e);
|
|
}
|
|
return resultList;
|
|
}
|
|
}
|