stream导出添加

This commit is contained in:
wangwei
2018-12-17 04:38:49 +08:00
parent f11f1186b5
commit b294a8ced0
5 changed files with 236 additions and 65 deletions

View File

@@ -2,6 +2,7 @@ package com.nis.domain.log;
import java.util.Date;
import com.nis.util.excel.ExcelField;
import com.wordnik.swagger.annotations.ApiModelProperty;
/**
@@ -13,11 +14,13 @@ import com.wordnik.swagger.annotations.ApiModelProperty;
*/
public class DkBehaviorLog extends BaseLogEntity<DkBehaviorLog> {
private static final long serialVersionUID = -589390375816690510L;
@ExcelField(title="basic_protocol",sort=8)
protected Integer labelProtoId; //协议类型id
protected Integer labelOsId;//操作系统id
protected Integer labelBsId; //浏览器id
@ExcelField(title="behaviour_type",sort=9)
protected Integer labelBehavId; //行为id
@ExcelField(title="social_app",sort=10)
protected Integer labelAppId; //应用id
protected Integer labelProtoSource; //应用id
protected Integer labelBehavSource; //应用id

View File

@@ -1,6 +1,7 @@
package com.nis.web.controller.log.manipulation;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -8,12 +9,14 @@ import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.client.ClientProtocolException;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
@@ -21,8 +24,10 @@ import com.google.gson.reflect.TypeToken;
import com.nis.domain.FunctionServiceDict;
import com.nis.domain.Page;
import com.nis.domain.PageLog;
import com.nis.domain.SysUser;
import com.nis.domain.log.DkBehaviorLog;
import com.nis.domain.log.NtcHttpLog;
import com.nis.domain.log.DkBehaviorLog;
import com.nis.domain.maat.LogRecvData;
import com.nis.util.CodeDicUtils;
import com.nis.util.Constants;
@@ -31,6 +36,7 @@ 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;
import com.nis.web.security.UserUtils;
@Controller
@RequestMapping(value = "${adminPath}/log/manipulation/dkbehaviorLogs")
@@ -101,5 +107,78 @@ public class DkBehaviorLogController extends BaseController{
return "/log/manipulation/dkBehaviorList";
}
// Stream配置导出
@RequestMapping(value = "exportStream")
public void exportStream(@ModelAttribute("log") DkBehaviorLog log, Model model, String hColumns, String type,
HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes) {
String name= "Stream";
try {
// export data info
List<String> titleList = new ArrayList<String>();
Map<String, Class<?>> classMap = new HashMap<String, Class<?>>();
Map<String, List> dataMap = new HashMap<String, List>();
Map<String, String> noExportMap = new HashMap<String, String>();
// ---------------------------
PageLog<DkBehaviorLog> page = new PageLog<DkBehaviorLog>(request, response);
page.setPageNo(1);
page.setPageSize(Constants.MAX_LOG_EXPORT_SIZE);
Map<String, Object> params = new HashMap<String, Object>();
params.put("pageSize", page.getPageSize());
params.put("pageNo", page.getPageNo());
initLogSearchValue(log, params);
List<FunctionServiceDict> serviceList = DictUtils.getFunctionServiceDictList(log.getFunctionId());
System.out.print(log.getFunctionId());
model.addAttribute("serviceList", serviceList);
String url = Constants.LOG_BASE_URL + Constants.NTC_DKBEHAVIOR_LOG;
String recv = HttpClientUtil.getMsg(url, params, request);
List<DkBehaviorLog> list = new ArrayList<DkBehaviorLog>();
if (StringUtils.isNotBlank(recv)) {
Gson gson = new GsonBuilder().create();
LogRecvData<DkBehaviorLog> fromJson = gson.fromJson(recv, new TypeToken<LogRecvData<DkBehaviorLog>>() {
}.getType());
if (fromJson.getStatus().intValue() == 200) {
Page<DkBehaviorLog> data = fromJson.getData();
list = data.getList();
}
}
for (DkBehaviorLog l : list) {
l.setFunctionId(log.getFunctionId());
setLogAction(l, serviceList);
}
if(log.getFunctionId()==407){
name="protocol_identify";
}else if(log.getFunctionId()==63){
name="social_app_control";
}else if(log.getFunctionId()==408){
name="encrypted_tunnel_behavior";
}
titleList.add(name);
classMap.put(name, DkBehaviorLog.class);
SysUser user = UserUtils.getUser();
if (!user.isAdmin()) {
hColumns += ",scene_file,";
} else {
hColumns += ",";
}
String cfgIndexInfoNoExport = "," + hColumns;
noExportMap.put(name, cfgIndexInfoNoExport);
dataMap.put(name, list);
if ("csv".equals(type)) {
this._exportCsv(model, request, response, redirectAttributes, name, titleList, classMap,
dataMap, noExportMap);
} else {
this._export(model, request, response, redirectAttributes, name, titleList, classMap, dataMap,
noExportMap);
}
} catch (Exception e) {
logger.error(name +" export failed", e);
addMessage(redirectAttributes, "error", "export_failed");
}
}
}

View File

@@ -2,6 +2,7 @@ package com.nis.web.controller.log.ntc;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -17,6 +18,7 @@ import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
@@ -24,14 +26,17 @@ import com.google.gson.reflect.TypeToken;
import com.nis.domain.FunctionServiceDict;
import com.nis.domain.Page;
import com.nis.domain.PageLog;
import com.nis.domain.SysUser;
import com.nis.domain.log.NtcHttpLog;
import com.nis.domain.log.NtcIpLog;
import com.nis.domain.log.NtcIpLog;
import com.nis.domain.maat.LogRecvData;
import com.nis.exceptions.MaatConvertException;
import com.nis.util.Constants;
import com.nis.util.DictUtils;
import com.nis.util.httpclient.HttpClientUtil;
import com.nis.web.controller.BaseController;
import com.nis.web.security.UserUtils;
@Controller
@RequestMapping("${adminPath}/log/ntc/ip")
@@ -111,4 +116,69 @@ public class IpLogController extends BaseController {
return "/log/ntc/ipList";
}
// Ip配置导出
@RequestMapping(value = "exportIp")
public void exportIp(@ModelAttribute("log") NtcIpLog log, Model model, String hColumns, String type,
HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes) {
try {
// export data info
List<String> titleList = new ArrayList<String>();
Map<String, Class<?>> classMap = new HashMap<String, Class<?>>();
Map<String, List> dataMap = new HashMap<String, List>();
Map<String, String> noExportMap = new HashMap<String, String>();
// ---------------------------
PageLog<NtcIpLog> page = new PageLog<NtcIpLog>(request, response);
page.setPageNo(1);
page.setPageSize(Constants.MAX_LOG_EXPORT_SIZE);
Map<String, Object> params = new HashMap<String, Object>();
params.put("pageSize", page.getPageSize());
params.put("pageNo", page.getPageNo());
initLogSearchValue(log, params);
List<FunctionServiceDict> serviceList = DictUtils.getFunctionServiceDictList(log.getFunctionId());
model.addAttribute("serviceList", serviceList);
String url = Constants.LOG_BASE_URL + Constants.NTC_IP_LOG;
String recv = HttpClientUtil.getMsg(url, params, request);
List<NtcIpLog> list = new ArrayList<NtcIpLog>();
if (StringUtils.isNotBlank(recv)) {
Gson gson = new GsonBuilder().create();
LogRecvData<NtcIpLog> fromJson = gson.fromJson(recv, new TypeToken<LogRecvData<NtcIpLog>>() {
}.getType());
if (fromJson.getStatus().intValue() == 200) {
Page<NtcIpLog> data = fromJson.getData();
list = data.getList();
}
}
for (NtcIpLog l : list) {
l.setFunctionId(log.getFunctionId());
setLogAction(l, serviceList);
}
titleList.add("Ip");
classMap.put("Ip", NtcIpLog.class);
SysUser user = UserUtils.getUser();
if (!user.isAdmin()) {
hColumns += ",scene_file,";
} else {
hColumns += ",";
}
String cfgIndexInfoNoExport = "," + hColumns;
noExportMap.put("Ip", cfgIndexInfoNoExport);
dataMap.put("Ip", list);
if ("csv".equals(type)) {
this._exportCsv(model, request, response, redirectAttributes, "Ip", titleList, classMap,
dataMap, noExportMap);
} else {
this._export(model, request, response, redirectAttributes, "Ip", titleList, classMap, dataMap,
noExportMap);
}
} catch (Exception e) {
logger.error("Ip" +" export failed", e);
addMessage(redirectAttributes, "error", "export_failed");
}
}
}

View File

@@ -143,12 +143,21 @@ $(document).ready(function(){
</div>
<div class="pull-right">
<a class="btn btn-icon-only btn-default setfields tooltips"
data-container="body" data-placement="top" data-original-title=<spring:message code="custom_columns"/> href="javascript:;">
<i class="icon-wrench"></i>
</a>
</div>
</div>
<div class="btn-group">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
<i class="fa fa-wrench"></i> <spring:message code="export"></spring:message>
<i class="fa fa-angle-down"></i>
</button>
<ul class="dropdown-menu pull-right" style="min-width: 110px;" >
<li><sys:delRow url="${ctx}/log/manipulation/dkbehaviorLogs/exportStream?type=excel" searchUrl="${ctx}/log/manipulation/dkbehaviorLogs" id="contentTable" maxRow="10000" label="excel"></sys:delRow></li>
<li><sys:delRow url="${ctx}/log/manipulation/dkbehaviorLogs/exportStream?type=csv" searchUrl="${ctx}/log/manipulation/dkbehaviorLogs" id="contentTable" maxRow="10000" label="csv"></sys:delRow></li>
</ul>
</div>
<a class="btn btn-icon-only btn-default setfields tooltips"
data-container="body" data-placement="top" data-original-title=<spring:message code="custom_columns"/> href="javascript:;">
<i class="icon-wrench"></i>
</a>
</div> </div>
<!-- 筛选搜索内容栏默认隐藏-->
<div class="col-md-12 filter-action-select-panle hide" >
@@ -223,46 +232,46 @@ $(document).ready(function(){
<thead>
<tr>
<th><spring:message code="log"/></th>
<th class="sort-column cfg_id " isVisible="false" ><spring:message code="cfg_id"/></th>
<th class="sort-column service" isVisible="false"><spring:message code="action"/></th>
<th class="sort-column found_time"><spring:message code="found_time"/></th>
<th class="sort-column recv_time" isVisible="false"><spring:message code="recv_time"/></th>
<th class="sort-column cfg_id " isVisible="false" column="cfg_id" ><spring:message code="cfg_id"/></th>
<th class="sort-column service" isVisible="false" column="action" ><spring:message code="action"/></th>
<th class="sort-column found_time" column="cfg_id" ><spring:message code="found_time"/></th>
<th class="sort-column recv_time" isVisible="false" column="recv_time" ><spring:message code="recv_time"/></th>
<th class="sort-column entrance_id" isVisible="false"><spring:message code="entrance_id"/></th>
<th class="sort-column entrance_id" isVisible="false" column="entrance_id" ><spring:message code="entrance_id"/></th>
<th class="sort-column label_proto_id"><spring:message code='basic_protocol'/></th>
<th class="sort-column label_proto_id" column="basic_protocol" ><spring:message code='basic_protocol'/></th>
<%-- <th class="sort-column label_proto_source" isVisible="false"><spring:message code='label_proto_source'/></th> --%>
<c:if test="${functionID ne 407}">
<th class="sort-column label_behav_id"><spring:message code='behaviour_type'/></th>
<th class="sort-column label_behav_id" column="behaviour_type" ><spring:message code='behaviour_type'/></th>
</c:if>
<%-- <th class="sort-column label_behav_source" isVisible="false"><spring:message code='label_behav_source'/></th> --%>
<th class="sort-column label_app_id"><spring:message code='social_app'/></th>
<th class="sort-column label_app_id" column="social_app" ><spring:message code='social_app'/></th>
<%-- <th class="sort-column label_app_source" isVisible="false"><spring:message code='label_app_source'/></th> --%>
<th class="sort-column cap_ip" isVisible="false"><spring:message code="clj_ip"/></th>
<th class="sort-column trans_proto"><spring:message code="transport_layer_protocol"/></th>
<th class="sort-column addr_type"><spring:message code='addr_type'/></th>
<th class="sort-column d_ip"><spring:message code="server_ip"/></th>
<th class="sort-column s_ip"><spring:message code="client_ip"/></th>
<th class="sort-column d_port"><spring:message code="server_port"/></th>
<th class="sort-column s_port"><spring:message code="client_port"/></th>
<th class="sort-column cap_ip" isVisible="false" column="clj_ip" ><spring:message code="clj_ip"/></th>
<th class="sort-column trans_proto" column="transport_layer_protocol" ><spring:message code="transport_layer_protocol"/></th>
<th class="sort-column addr_type" column="addr_type" ><spring:message code='addr_type'/></th>
<th class="sort-column d_ip" column="server_ip" ><spring:message code="server_ip"/></th>
<th class="sort-column s_ip" column="client_ip" ><spring:message code="client_ip"/></th>
<th class="sort-column d_port" column="server_port" ><spring:message code="server_port"/></th>
<th class="sort-column s_port" column="client_port" ><spring:message code="client_port"/></th>
<th class="sort-column device_id" isVisible="false"><spring:message code="deviceid"/></th>
<th class="sort-column link_id" isVisible="false"><spring:message code="link_id"/></th>
<th class="sort-column encap_type"><spring:message code="encap_type"/></th>
<th class="sort-column direction"><spring:message code="direction"/></th>
<th class="sort-column inner_smac"><spring:message code="inner_smac"/></th>
<th class="sort-column inner_dmac"><spring:message code="inner_dmac"/></th>
<th class="sort-column stream_dir"><spring:message code="stream_type"/></th>
<th class="sort-column device_id" isVisible="false" column="deviceid" ><spring:message code="deviceid"/></th>
<th class="sort-column link_id" isVisible="false" column="link_id" ><spring:message code="link_id"/></th>
<th class="sort-column encap_type" column="encap_type" ><spring:message code="encap_type"/></th>
<th class="sort-column direction" column="direction" ><spring:message code="direction"/></th>
<th class="sort-column inner_smac" column="inner_smac" ><spring:message code="inner_smac"/></th>
<th class="sort-column inner_dmac" column="inner_dmac" ><spring:message code="inner_dmac"/></th>
<th class="sort-column stream_dir" column="stream_type" ><spring:message code="stream_type"/></th>
<th class="sort-column addr_list"><spring:message code="nest_addr_list"/></th>
<th class="sort-column server_locate"><spring:message code='server_locate'/></th>
<th class="sort-column client_locate"><spring:message code='client_locate'/></th>
<th class="sort-column s_asn" isVisible="false"><spring:message code='s_asn'/></th>
<th class="sort-column d_asn" isVisible="false"><spring:message code='d_asn'/></th>
<th class="sort-column s_subscribe_id" isVisible="false"><spring:message code='s_subscribe_id'/></th>
<th class="sort-column d_subscribe_id" isVisible="false"><spring:message code='d_subscribe_id'/></th>
<th class="sort-column user_region" isVisible="false"><spring:message code='user_region'/></th>
<c:if test="${fns:getUser().isAdmin()}"><th class="sort-column scene_file"><spring:message code='scene_file'/></th></c:if>
<th class="sort-column addr_list" column="nest_addr_list" ><spring:message code="nest_addr_list"/></th>
<th class="sort-column server_locate" column="server_locate" ><spring:message code='server_locate'/></th>
<th class="sort-column client_locate" column="client_locate" ><spring:message code='client_locate'/></th>
<th class="sort-column s_asn" isVisible="false" column="s_asn" ><spring:message code='s_asn'/></th>
<th class="sort-column d_asn" isVisible="false" column="d_asn" ><spring:message code='d_asn'/></th>
<th class="sort-column s_subscribe_id" isVisible="false" column="s_subscribe_id" ><spring:message code='s_subscribe_id'/></th>
<th class="sort-column d_subscribe_id" isVisible="false" column="d_subscribe_id" ><spring:message code='d_subscribe_id'/></th>
<th class="sort-column user_region" isVisible="false" column="user_region" ><spring:message code='user_region'/></th>
<c:if test="${fns:getUser().isAdmin()}"><th class="sort-column scene_file" column="scene_file" ><spring:message code='scene_file'/></th></c:if>
</tr>
</thead>
<tbody>

View File

@@ -129,6 +129,16 @@
<button type="button" class="btn btn-default" id="filter-btn"> <spring:message code="filter"/><i class="fa fa-angle-double-down"></i></button>
</div>
<div class="pull-right">
<div class="btn-group">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
<i class="fa fa-wrench"></i> <spring:message code="export"></spring:message>
<i class="fa fa-angle-down"></i>
</button>
<ul class="dropdown-menu pull-right" style="min-width: 110px;" >
<li><sys:delRow url="${ctx}/log/ntc/ip/exportIp?type=excel" searchUrl="${ctx}/log/ntc/ip/list" id="contentTable" maxRow="10000" label="excel"></sys:delRow></li>
<li><sys:delRow url="${ctx}/log/ntc/ip/exportIp?type=csv" searchUrl="${ctx}/log/ntc/ip/list" id="contentTable" maxRow="10000" label="csv"></sys:delRow></li>
</ul>
</div>
<a class="btn btn-icon-only btn-default setfields tooltips"
data-container="body" data-placement="top" data-original-title=<spring:message code="custom_columns"/> href="javascript:;">
<i class="icon-wrench"></i>
@@ -214,34 +224,34 @@
<thead>
<tr>
<th><spring:message code="log"/></th>
<th class="sort-column cfg_id " isVisible="false" ><spring:message code="cfg_id"/></th>
<th class="sort-column service" isVisible="false"><spring:message code="action"/></th>
<th class="sort-column found_time"><spring:message code="found_time"/></th>
<th class="sort-column recv_time" isVisible="false"><spring:message code="recv_time"/></th>
<th class="sort-column entrance_id" isVisible="false"><spring:message code="entrance_id"/></th>
<th class="sort-column cap_ip" isVisible="false"><spring:message code="clj_ip"/></th>
<th class="sort-column trans_proto"><spring:message code="transport_layer_protocol"/></th>
<th class="sort-column addr_type"><spring:message code='addr_type'/></th>
<th class="sort-column d_ip"><spring:message code="server_ip"/></th>
<th class="sort-column s_ip"><spring:message code="client_ip"/></th>
<th class="sort-column d_port"><spring:message code="server_port"/></th>
<th class="sort-column s_port"><spring:message code="client_port"/></th>
<th class="sort-column device_id" isVisible="false"><spring:message code="deviceid"/></th>
<th class="sort-column link_id" isVisible="false"><spring:message code="link_id"/></th>
<th class="sort-column encap_type"><spring:message code="encap_type"/></th>
<th class="sort-column direction"><spring:message code="direction"/></th>
<th class="sort-column inner_smac"><spring:message code="inner_smac"/></th>
<th class="sort-column inner_dmac"><spring:message code="inner_dmac"/></th>
<th class="sort-column stream_dir"><spring:message code="stream_type"/></th>
<th class="sort-column cfg_id " isVisible="false" column="cfg_id" ><spring:message code="cfg_id"/></th>
<th class="sort-column service" isVisible="false" column="action" ><spring:message code="action"/></th>
<th class="sort-column found_time" column="found_time" ><spring:message code="found_time"/></th>
<th class="sort-column recv_time" isVisible="false" column="recv_time" ><spring:message code="recv_time"/></th>
<th class="sort-column entrance_id" isVisible="false" column="entrance_id" ><spring:message code="entrance_id"/></th>
<th class="sort-column cap_ip" isVisible="false" column="clj_ip" ><spring:message code="clj_ip"/></th>
<th class="sort-column trans_proto" column="transport_layer_protocol" ><spring:message code="transport_layer_protocol"/></th>
<th class="sort-column addr_type" column="addr_type" ><spring:message code='addr_type'/></th>
<th class="sort-column d_ip" column="server_ip" ><spring:message code="server_ip"/></th>
<th class="sort-column s_ip" column="client_ip" ><spring:message code="client_ip"/></th>
<th class="sort-column d_port" column="server_port" ><spring:message code="server_port"/></th>
<th class="sort-column s_port" column="client_port" ><spring:message code="client_port"/></th>
<th class="sort-column device_id" isVisible="false" column="deviceid" ><spring:message code="deviceid"/></th>
<th class="sort-column link_id" isVisible="false" column="link_id" ><spring:message code="link_id"/></th>
<th class="sort-column encap_type" column="encap_type" ><spring:message code="encap_type"/></th>
<th class="sort-column direction" column="direction" ><spring:message code="direction"/></th>
<th class="sort-column inner_smac" column="inner_smac" ><spring:message code="inner_smac"/></th>
<th class="sort-column inner_dmac" column="inner_dmac" ><spring:message code="inner_dmac"/></th>
<th class="sort-column stream_dir" column="stream_type" ><spring:message code="stream_type"/></th>
<th class="sort-column addr_list"><spring:message code="nest_addr_list"/></th>
<th class="sort-column server_locate"><spring:message code='server_locate'/></th>
<th class="sort-column client_locate"><spring:message code='client_locate'/></th>
<th class="sort-column s_asn" isVisible="false"><spring:message code='s_asn'/></th>
<th class="sort-column d_asn" isVisible="false"><spring:message code='d_asn'/></th>
<th class="sort-column s_subscribe_id" isVisible="false"><spring:message code='s_subscribe_id'/></th>
<th class="sort-column d_subscribe_id" isVisible="false"><spring:message code='d_subscribe_id'/></th>
<th class="sort-column user_region" isVisible="false"><spring:message code='user_region'/></th>
<th class="sort-column addr_list" column="nest_addr_list" ><spring:message code="nest_addr_list"/></th>
<th class="sort-column server_locate" column="server_locate" ><spring:message code='server_locate'/></th>
<th class="sort-column client_locate" column="client_locate" ><spring:message code='client_locate'/></th>
<th class="sort-column s_asn" isVisible="false" column="s_asn" ><spring:message code='s_asn'/></th>
<th class="sort-column d_asn" isVisible="false" column="d_asn" ><spring:message code='d_asn'/></th>
<th class="sort-column s_subscribe_id" isVisible="false" column="s_subscribe_id" ><spring:message code='s_subscribe_id'/></th>
<th class="sort-column d_subscribe_id" isVisible="false" column="d_subscribe_id" ><spring:message code='d_subscribe_id'/></th>
<th class="sort-column user_region" isVisible="false" column="user_region" ><spring:message code='user_region'/></th>
<c:if test="${fns:getUser().isAdmin()}"><th class="sort-column scene_file"><spring:message code='scene_file'/></th></c:if>
</tr>
</thead>