日志:voip样例、音频色情样例、视频色情样例

This commit is contained in:
chenjinsong
2018-07-24 15:58:20 +08:00
parent 1efa4de4e8
commit d7b250e544
9 changed files with 1056 additions and 6 deletions

View File

@@ -18,7 +18,7 @@ public class MmVoipLog extends BaseLogEntity<MmVoipLog> {
@ApiModelProperty(value="VOIP通话时长", required=true) @ApiModelProperty(value="VOIP通话时长", required=true)
private String duation; private String duation;
@ApiModelProperty(value="VOIP协议", required=true) @ApiModelProperty(value="VOIP协议", required=true)
private String protocol; private String voipProtocol;
@ApiModelProperty(value="主叫VOIP账号", required=false) @ApiModelProperty(value="主叫VOIP账号", required=false)
private String callingAccount; private String callingAccount;
@ApiModelProperty(value="被叫VOIP账号", required=false) @ApiModelProperty(value="被叫VOIP账号", required=false)
@@ -68,11 +68,11 @@ public class MmVoipLog extends BaseLogEntity<MmVoipLog> {
public void setFdType(Integer fdType) { public void setFdType(Integer fdType) {
this.fdType = fdType; this.fdType = fdType;
} }
public String getProtocol() { public String getVoipProtocol() {
return protocol; return voipProtocol;
} }
public void setProtocol(String protocol) { public void setVoipProtocol(String voipProtocol) {
this.protocol = protocol; this.voipProtocol = voipProtocol;
} }
public String getDuation() { public String getDuation() {
return duation; return duation;

View File

@@ -380,7 +380,10 @@ public final class Constants {
public static final String NTC_DDOS_LOG = Configurations.getStringProperty("ntcDdosLog", ""); public static final String NTC_DDOS_LOG = Configurations.getStringProperty("ntcDdosLog", "");
public static final String NTC_DKBEHAVIOR_LOG = Configurations.getStringProperty("dkBehaviorLog", ""); public static final String NTC_DKBEHAVIOR_LOG = Configurations.getStringProperty("dkBehaviorLog", "");
public static final String NTC_MMVOIP_LOG = Configurations.getStringProperty("mmVoipLog", ""); public static final String NTC_MMVOIP_LOG = Configurations.getStringProperty("mmVoipLog", "");
public static final String NTC_MMSAMPLE_VOIP_LOG = Configurations.getStringProperty("mmSampleVoipLog", "");
public static final String NTC_MMAVIP_LOG = Configurations.getStringProperty("mmAvIpLog", ""); public static final String NTC_MMAVIP_LOG = Configurations.getStringProperty("mmAvIpLog", "");
public static final String NTC_MMPORNAUDIOSAMPLE_LOG = Configurations.getStringProperty("mmPornAudioLevelLog", "");
public static final String NTC_MMPORNVIDEOSAMPLE_LOG = Configurations.getStringProperty("mmPornVideoLevelLog", "");
public static final String NTC_MMAVURL_LOG = Configurations.getStringProperty("mmAvUrlLog", ""); public static final String NTC_MMAVURL_LOG = Configurations.getStringProperty("mmAvUrlLog", "");
public static final String NTC_MMPICIP_LOG = Configurations.getStringProperty("mmPicIpLog", ""); public static final String NTC_MMPICIP_LOG = Configurations.getStringProperty("mmPicIpLog", "");
public static final String NTC_MMPICURL_LOG = Configurations.getStringProperty("mmPicUrlLog", ""); public static final String NTC_MMPICURL_LOG = Configurations.getStringProperty("mmPicUrlLog", "");

View File

@@ -588,7 +588,7 @@ public class BaseController {
public void setLogAction(BaseLogEntity log) { public void setLogAction(BaseLogEntity log) {
List<FunctionServiceDict> serviceList = DictUtils.getFunctionServiceDictList(log.getFunctionId()); List<FunctionServiceDict> serviceList = DictUtils.getFunctionServiceDictList(log.getFunctionId());
for (FunctionServiceDict dict : serviceList) { for (FunctionServiceDict dict : serviceList) {
if (dict.getServiceId().intValue() == log.getService().intValue()) { if (dict.getServiceId().intValue() == log.getService()) {
log.setAction(dict.getAction()); log.setAction(dict.getAction());
} }
} }

View File

@@ -0,0 +1,104 @@
package com.nis.web.controller.log.ntc;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
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 com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import com.nis.domain.Page;
import com.nis.domain.PageLog;
import com.nis.domain.log.MmAvIpLog;
import com.nis.domain.maat.LogRecvData;
import com.nis.util.Constants;
import com.nis.util.httpclient.HttpClientUtil;
import com.nis.web.controller.BaseController;
@Controller
@RequestMapping(value = "${adminPath}/log/ntc")
public class MmPornAvSampleController extends BaseController {
@RequestMapping(value = {"mmSampleAudioLevelLogs", "mmSampleAudioLevelLogs/list"})
public String audioList(Model model, @ModelAttribute("log") MmAvIpLog entry, HttpServletRequest request, HttpServletResponse response) {
try {
PageLog<MmAvIpLog> page = new PageLog<MmAvIpLog>(request, response);
Map<String, Object> params=new HashMap<>();
params.put("pageSize", page.getPageSize());
params.put("pageNo", page.getPageNo());
//查询值判断
initLogSearchValue(entry, params);
String url = "";
url = Constants.LOG_BASE_URL + Constants.NTC_MMPORNAUDIOSAMPLE_LOG;
String jsonString = HttpClientUtil.getMsg(url, params, request);
Gson gson = new GsonBuilder().create();
//gson泛型支持
LogRecvData<MmAvIpLog> fromJson = gson.fromJson(jsonString, new TypeToken<LogRecvData<MmAvIpLog>>(){}.getType());
if (fromJson.getStatus().intValue() == 200) {
Page<MmAvIpLog> data = fromJson.getData();
page.setList(data.getList());
List<MmAvIpLog> list = page.getList();
for (MmAvIpLog l : list) {
l.setFunctionId(entry.getFunctionId());
setLogAction(l);
}
model.addAttribute("page", page);
logger.info("查询音频色情样例日志成功");
}
} catch (Exception e) {
logger.info("查询音频色情样例日志失败", e);
addMessage(model, e.getMessage());
}
return "/log/ntc/mmPornAudioSampleList";
}
@RequestMapping(value = {"mmSampleVideoLevelLogs", "mmSampleVideoLevelLogs/list"})
public String videoList(Model model, @ModelAttribute("log") MmAvIpLog entry, HttpServletRequest request, HttpServletResponse response) {
try {
PageLog<MmAvIpLog> page = new PageLog<MmAvIpLog>(request, response);
Map<String, Object> params=new HashMap<>();
params.put("pageSize", page.getPageSize());
params.put("pageNo", page.getPageNo());
//查询值判断
initLogSearchValue(entry, params);
String url = "";
url = Constants.LOG_BASE_URL + Constants.NTC_MMPORNVIDEOSAMPLE_LOG;
String jsonString = HttpClientUtil.getMsg(url,params,request);
Gson gson = new GsonBuilder().create();
//gson泛型支持
LogRecvData<MmAvIpLog> fromJson = gson.fromJson(jsonString, new TypeToken<LogRecvData<MmAvIpLog>>(){}.getType());
if (fromJson.getStatus().intValue() == 200) {
Page<MmAvIpLog> data = fromJson.getData();
page.setList(data.getList());
List<MmAvIpLog> list = page.getList();
for (MmAvIpLog l : list) {
l.setFunctionId(entry.getFunctionId());
setLogAction(l);
}
model.addAttribute("page", page);
logger.info("查询视频色情样例日志成功");
}
} catch (Exception e) {
logger.info("查询视频色情样例日志失败", e);
addMessage(model, e.getMessage());
}
return "/log/ntc/mmPornVideoSampleList";
}
}

View File

@@ -0,0 +1,71 @@
package com.nis.web.controller.log.ntc;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.http.client.ClientProtocolException;
import org.aspectj.util.FileUtil;
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 com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import com.nis.domain.Page;
import com.nis.domain.PageLog;
import com.nis.domain.log.MmVoipLog;
import com.nis.domain.maat.LogRecvData;
import com.nis.util.Constants;
import com.nis.util.httpclient.HttpClientUtil;
import com.nis.web.controller.BaseController;
@Controller
@RequestMapping(value = "${adminPath}/log/ntc/mmSampleVoipLogs")
public class MmSampleVoipLogController extends BaseController {
@RequestMapping(value = {"list", ""})
public String list(Model model, @ModelAttribute("log") MmVoipLog entry, HttpServletRequest request, HttpServletResponse response) throws ClientProtocolException, IOException {
try {
PageLog<MmVoipLog> page = new PageLog<MmVoipLog>(request, response);
Map<String, Object> params=new HashMap<>();
params.put("pageSize", page.getPageSize());
params.put("pageNo", page.getPageNo());
//查询值判断
initLogSearchValue(entry,params);
String url = Constants.LOG_BASE_URL+Constants.NTC_MMSAMPLE_VOIP_LOG;
String jsonString = HttpClientUtil.getMsg(url,params,request);
//String path = request.getClass().getClassLoader().getResource("").getPath();
//String jsonString = FileUtil.readAsString(new File(path + "com/nis/web/test/voipSampleLogTest.txt"));
Gson gson = new GsonBuilder().create();
//gson泛型支持
LogRecvData<MmVoipLog> fromJson = gson.fromJson(jsonString, new TypeToken<LogRecvData<MmVoipLog>>(){}.getType());
if (fromJson.getStatus().intValue() == 200) {
Page<MmVoipLog> data = fromJson.getData();
page.setList(data.getList());
List<MmVoipLog> list = page.getList();
for (MmVoipLog l : list) {
l.setFunctionId(entry.getFunctionId());
setLogAction(l);
}
model.addAttribute("page", page);
logger.info("查询Voip样例日志成功");
}
} catch (Exception e) {
logger.info("查询Voip日志失败", e);
addMessage(model, e.getMessage());
}
return "/log/ntc/mmSampleVoipList";
}
}

View File

@@ -0,0 +1,81 @@
{
"status":200,
"businessCode":2000,
"reason":"Success",
"msg":"success",
"fromuri":"abc",
"logSource":0,
"data":{
"pageNo":1,
"pageSize":15,
"count":41,
"last":3,
"list":[
{
"cfgId":21,
"foundTime":"2018-06-10 10:10:10",
"recvTime":"2018-06-11 11:11:11",
"transProto":"L2TP",
"addrType":4,
"dIp":"10.0.6.121",
"sIp":"10.0.6.122",
"dPort":"8080",
"sPort":"8080",
"service":264,
"entranceId":21,
"deviceId":2,
"direction":1,
"streamDir":0,
"capIp":"10.1.1.2",
"addrList":"11111",
"userRegion":"aaa",
"duation":"123",
"voipProtocol":"SIP",
"callingAccount":"yiyiwyf",
"calledAccount":"jingl",
"callingNumber":"13041000000",
"calledNumber":"13113113133",
"fromToStoreIp":"10.1.1.1",
"fromToStoreUrl":"www.baidu.com",
"toFromStoreIp":"10.2.2.2",
"toFromStoreUrl":"beian.baidu.com",
"pid":"5",
"logUri":"aaacc",
"level":2,
"fdType":1
},{
"cfgId":22,
"foundTime":"2018-06-10 10:10:10",
"recvTime":"2018-06-11 11:11:11",
"transProto":"L2TP",
"addrType":4,
"dIp":"10.0.6.121",
"sIp":"10.0.6.122",
"dPort":"8080",
"sPort":"8080",
"service":392,
"entranceId":112,
"deviceId":2,
"direction":0,
"streamDir":1,
"capIp":"10.1.1.2",
"addrList":"11111",
"userRegion":"aaa",
"duation":"123",
"voipProtocol":"SIP",
"callingAccount":"yiyiwyf",
"calledAccount":"jingl",
"callingNumber":"13041000000",
"calledNumber":"13113113133",
"fromToStoreIp":"10.1.1.1",
"fromToStoreUrl":"www.baidu.com",
"toFromStoreIp":"10.2.2.2",
"toFromStoreUrl":"beian.baidu.com",
"pid":"5",
"logUri":"aaacc",
"level":2,
"fdType":1
}
]
}
}

View File

@@ -0,0 +1,259 @@
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ include file="/WEB-INF/include/taglib.jsp"%>
<html>
<head>
<script type="text/javascript">
$(document).ready(function(){
//筛选功能
filterActionInit();
//reset
$("#resetBtn").on("click",function(){
$("select.selectpicker").each(function(){
$(this).selectpicker('val',$(this).find('option:first').val());
$(this).find("option").attr("selected",false);
$(this).find("option:first").attr("selected",true);
});
$(".Wdate").attr("value",'');
$(':input','#searchForm')
.not(':button,:submit,:reset,:hidden')
.attr("value",'');
$("#searchForm")[0].reset();
});
});
//查询
function page(n,s){
$("#intype").attr("name",$("#seltype").val());
$("#pageNo").val(n);
$("#pageSize").val(s);
$("#searchForm").attr("action","${ctx}/log/ntc/mmSampleAudioLevelLogs");
$("#searchForm").submit();
loading();
return false;
}
</script>
</head>
<body>
<div class="page-content">
<h3 class="page-title">
<spring:message code="av_sample_audio_porn_control"/>
<small><spring:message code="date_list"/></small>
</h3>
<h5 class="page-header"></h5>
<div class="row">
<div class="col-md-12">
<div class="portlet">
<div class="portlet-body">
<div class="row" >
<form:form id="searchForm" modelAttribute="log" action="${ctx}/log/ntc/mmSampleAudioLevelLogs" method="post" class="form-search">
<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
<input id="functionId" name="functionId" type="hidden" value="${log.functionId}"/>
<!-- 筛选按钮展开状态-->
<input id="isFilterAction" name="isFilterAction" type="hidden" value="${log.isFilterAction }"/>
<sys:tableSort id="orderBy" name="orderBy" value="${page.orderBy}" callback="page();"/>
<!-- 搜索内容与操作按钮栏 -->
<div class="col-md-12">
<div class="pull-left">
<form:select path="action" class="selectpicker select2 input-small">
<form:option value=""><spring:message code="action"/></form:option>
<form:option value="16"><spring:message code="action_reject"/></form:option>
<form:option value="1"><spring:message code="action_monit"/></form:option>
</form:select>
</div>
<div class="pull-left">
<div class="input-group">
<div class="input-group-btn">
<span class="selectpicker form-control" ><spring:message code="begin_date"/></span>
</div>
<input id="searchFoundStartTime" name="searchFoundStartTime" type="text" readonly="readonly" class="form-control input-medium Wdate "
value="${log.searchFoundStartTime}" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
</div>
</div>
<div class="pull-left">
<div class="input-group">
<div class="input-group-btn">
<span class="selectpicker form-control" ><spring:message code="end_date"/></span>
</div>
<input id="searchFoundEndTime" name="searchFoundEndTime" type="text" readonly="readonly" class="form-control input-medium Wdate "
value="${log.searchFoundEndTime}" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
</div>
</div>
<div class="pull-left">
<button type="button" class="btn blue" onClick="page()"> <i class="fa fa-search"></i> <spring:message code="search"/> </button>
<button type="button" class="btn btn-default" id="resetBtn"> <i class="fa fa-refresh"></i> <spring:message code="reset"/> </button>
<button type="button" class="btn btn-default" id="filter-btn"> <spring:message code="filter"></spring:message> <i class="fa fa-angle-double-down"></i></button>
</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="col-md-12 filter-action-select-panle hide" >
<div class="row">
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="protocol_type"/></label>
<c:set var="select"><spring:message code='select'/></c:set>
<form:select path="transProto" class="selectpicker select2 form-control" data-live-search="true" data-live-search-placeholder="search">
<form:option value=""><spring:message code="select"/></form:option>
<c:forEach items="${fns:getDictList('LOG_PROTOCOL')}" var="dict">
<form:option value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/></form:option>
</c:forEach>
</form:select>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="direct"/></label>
<form:select path="direction" class="selectpicker select2 form-control">
<form:option value=""><spring:message code="select"/></form:option>
<c:forEach items="${fns:getDictList('DIRECTION')}" var="dict">
<form:option value="${dict.itemCode}"><spring:message code="${dict.itemValue}"/></form:option>
</c:forEach>
</form:select>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="entrance"/></label>
<form:select path="entranceId" class="selectpicker form-control" data-live-search="true" data-live-search-placeholder="search">
<form:option value=""><spring:message code="select"/></form:option>
<c:forEach items="${fns:getDictList('ENTRANCE')}" var="entrance" >
<form:option value="${entrance.itemCode}"><spring:message code="${entrance.itemValue}"></spring:message></form:option>
</c:forEach>
</form:select>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="clj_ip"/></label>
<input id="capIp" name="capIp" class="form-control" type="text" value="${log.capIp}"/>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="clientip"/></label>
<input id="sIp" name="sIp" class="form-control" type="text" value="${log.sIp}"/>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="serverip"/></label>
<input id="dIp" name="dIp" class="form-control" type="text" value="${log.dIp}"/>
</div>
</div>
</div>
</div>
<!-- /筛选搜索内容栏 结束-->
</form:form>
</div>
<div class="table-responsive">
<sys:message content="${message}"/>
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap">
<thead>
<tr>
<th><spring:message code='cfg_id'/></th>
<th><spring:message code='entrance_id'/></th>
<th><spring:message code="action"/></th>
<th><spring:message code='direct'/></th>
<th><spring:message code='pid'/></th>
<th><spring:message code='access_url'/></th>
<th><spring:message code='log_uri'/></th>
<th><spring:message code='refer'/></th>
<th><spring:message code='harm_level'/></th>
<th><spring:message code='fd_type'/></th>
<th><spring:message code='av_protocol'/></th>
<th><spring:message code='found_time'/></th>
<th><spring:message code='recv_time'/></th>
<th><spring:message code='protocol'/></th>
<th><spring:message code='addr_type'/></th>
<th><spring:message code='serverip'/></th>
<th><spring:message code='clientip'/></th>
<th><spring:message code='serverport'/></th>
<th><spring:message code='clientport'/></th>
<th><spring:message code='deviceid'/></th>
<th><spring:message code='stream_type'/></th>
<th><spring:message code='clj_ip'/></th>
<th><spring:message code='nest_addr_list'/></th>
<th><spring:message code='user_region'/></th>
</tr>
</thead>
<tbody>
<c:forEach items="${page.list}" var="log" varStatus="status" step="1">
<tr>
<td>${log.cfgId}</td>
<td>${log.entranceId}</td>
<td>
<c:if test="${log.action eq 16 }"><spring:message code="action_reject"/></c:if>
<c:if test="${log.action eq 1 }"><spring:message code="action_monit"/></c:if>
</td>
<td>
<c:forEach items="${fns:getDictList('DIRECTION')}" var="dic">
<c:if test="${log.direction==dic.itemCode}"><spring:message code="${dic.itemValue }"/></c:if>
</c:forEach>
</td>
<td>${log.pid}</td>
<td>${log.url}</td>
<td>${log.logUri}</td>
<td>${log.refer}</td>
<td>${log.level}</td>
<!--0动态黑名单FD1静态配置FD2首次分析命中 -->
<td>
<c:if test="${log.fdType eq 0 }"><spring:message code="black_block_list"/></c:if>
<c:if test="${log.fdType eq 1 }"><spring:message code="static_cfg_block"/></c:if>
<c:if test="${log.fdType eq 2 }"><spring:message code="first_hit"/></c:if>
</td>
<td>${log.protocol}</td>
<td>${log.foundTime}</td>
<td>${log.recvTime}</td>
<td>${log.transProto}</td>
<td>
<c:forEach items="${fns:getDictList('IP_TYPE')}" var="dic">
<c:if test="${log.addrType==dic.itemCode}"><spring:message code="${dic.itemValue }"/></c:if>
</c:forEach>
</td>
<td>${log.dIp}</td>
<td>${log.sIp}</td>
<td>${log.dPort}</td>
<td>${log.sPort}</td>
<td>${log.deviceId}</td>
<td>
<c:forEach items="${fns:getDictList('LOG_STREAM_TYPE')}" var="dic">
<c:if test="${log.streamDir==dic.itemCode}"><spring:message code="${dic.itemValue }"/></c:if>
</c:forEach>
</td>
<td>${log.capIp}</td>
<td>${log.addrList}</td>
<td>${log.userRegion}</td>
</tr>
</c:forEach>
</tbody>
</table>
<div class="page">${page}</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,259 @@
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ include file="/WEB-INF/include/taglib.jsp"%>
<html>
<head>
<script type="text/javascript">
$(document).ready(function(){
//筛选功能
filterActionInit();
//reset
$("#resetBtn").on("click",function(){
$("select.selectpicker").each(function(){
$(this).selectpicker('val',$(this).find('option:first').val());
$(this).find("option").attr("selected",false);
$(this).find("option:first").attr("selected",true);
});
$(".Wdate").attr("value",'');
$(':input','#searchForm')
.not(':button,:submit,:reset,:hidden')
.attr("value",'');
$("#searchForm")[0].reset();
});
});
//查询
function page(n,s){
$("#intype").attr("name",$("#seltype").val());
$("#pageNo").val(n);
$("#pageSize").val(s);
$("#searchForm").attr("action","${ctx}/log/ntc/mmSampleVideoLevelLogs");
$("#searchForm").submit();
loading();
return false;
}
</script>
</head>
<body>
<div class="page-content">
<h3 class="page-title">
<spring:message code="av_sample_vedio_porn_control"/>
<small><spring:message code="date_list"/></small>
</h3>
<h5 class="page-header"></h5>
<div class="row">
<div class="col-md-12">
<div class="portlet">
<div class="portlet-body">
<div class="row" >
<form:form id="searchForm" modelAttribute="log" action="${ctx}/log/ntc/mmSampleVideoLevelLogs" method="post" class="form-search">
<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
<input id="functionId" name="functionId" type="hidden" value="${log.functionId}"/>
<!-- 筛选按钮展开状态-->
<input id="isFilterAction" name="isFilterAction" type="hidden" value="${log.isFilterAction }"/>
<sys:tableSort id="orderBy" name="orderBy" value="${page.orderBy}" callback="page();"/>
<!-- 搜索内容与操作按钮栏 -->
<div class="col-md-12">
<div class="pull-left">
<form:select path="action" class="selectpicker select2 input-small">
<form:option value=""><spring:message code="action"/></form:option>
<form:option value="16"><spring:message code="action_reject"/></form:option>
<form:option value="1"><spring:message code="action_monit"/></form:option>
</form:select>
</div>
<div class="pull-left">
<div class="input-group">
<div class="input-group-btn">
<span class="selectpicker form-control" ><spring:message code="begin_date"/></span>
</div>
<input id="searchFoundStartTime" name="searchFoundStartTime" type="text" readonly="readonly" class="form-control input-medium Wdate "
value="${log.searchFoundStartTime}" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
</div>
</div>
<div class="pull-left">
<div class="input-group">
<div class="input-group-btn">
<span class="selectpicker form-control" ><spring:message code="end_date"/></span>
</div>
<input id="searchFoundEndTime" name="searchFoundEndTime" type="text" readonly="readonly" class="form-control input-medium Wdate "
value="${log.searchFoundEndTime}" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
</div>
</div>
<div class="pull-left">
<button type="button" class="btn blue" onClick="page()"> <i class="fa fa-search"></i> <spring:message code="search"/> </button>
<button type="button" class="btn btn-default" id="resetBtn"> <i class="fa fa-refresh"></i> <spring:message code="reset"/> </button>
<button type="button" class="btn btn-default" id="filter-btn"> <spring:message code="filter"></spring:message> <i class="fa fa-angle-double-down"></i></button>
</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="col-md-12 filter-action-select-panle hide" >
<div class="row">
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="protocol_type"/></label>
<c:set var="select"><spring:message code='select'/></c:set>
<form:select path="transProto" class="selectpicker select2 form-control" data-live-search="true" data-live-search-placeholder="search">
<form:option value=""><spring:message code="select"/></form:option>
<c:forEach items="${fns:getDictList('LOG_PROTOCOL')}" var="dict">
<form:option value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/></form:option>
</c:forEach>
</form:select>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="direct"/></label>
<form:select path="direction" class="selectpicker select2 form-control">
<form:option value=""><spring:message code="select"/></form:option>
<c:forEach items="${fns:getDictList('DIRECTION')}" var="dict">
<form:option value="${dict.itemCode}"><spring:message code="${dict.itemValue}"/></form:option>
</c:forEach>
</form:select>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="entrance"/></label>
<form:select path="entranceId" class="selectpicker form-control" data-live-search="true" data-live-search-placeholder="search">
<form:option value=""><spring:message code="select"/></form:option>
<c:forEach items="${fns:getDictList('ENTRANCE')}" var="entrance" >
<form:option value="${entrance.itemCode}"><spring:message code="${entrance.itemValue}"></spring:message></form:option>
</c:forEach>
</form:select>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="clj_ip"/></label>
<input id="capIp" name="capIp" class="form-control" type="text" value="${log.capIp}"/>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="clientip"/></label>
<input id="sIp" name="sIp" class="form-control" type="text" value="${log.sIp}"/>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="serverip"/></label>
<input id="dIp" name="dIp" class="form-control" type="text" value="${log.dIp}"/>
</div>
</div>
</div>
</div>
<!-- /筛选搜索内容栏 结束-->
</form:form>
</div>
<div class="table-responsive">
<sys:message content="${message}"/>
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap">
<thead>
<tr>
<th><spring:message code='cfg_id'/></th>
<th><spring:message code='entrance_id'/></th>
<th><spring:message code="action"/></th>
<th><spring:message code='direct'/></th>
<th><spring:message code='pid'/></th>
<th><spring:message code='access_url'/></th>
<th><spring:message code='log_uri'/></th>
<th><spring:message code='refer'/></th>
<th><spring:message code='harm_level'/></th>
<th><spring:message code='fd_type'/></th>
<th><spring:message code='av_protocol'/></th>
<th><spring:message code='found_time'/></th>
<th><spring:message code='recv_time'/></th>
<th><spring:message code='protocol'/></th>
<th><spring:message code='addr_type'/></th>
<th><spring:message code='serverip'/></th>
<th><spring:message code='clientip'/></th>
<th><spring:message code='serverport'/></th>
<th><spring:message code='clientport'/></th>
<th><spring:message code='deviceid'/></th>
<th><spring:message code='stream_type'/></th>
<th><spring:message code='clj_ip'/></th>
<th><spring:message code='nest_addr_list'/></th>
<th><spring:message code='user_region'/></th>
</tr>
</thead>
<tbody>
<c:forEach items="${page.list}" var="log" varStatus="status" step="1">
<tr>
<td>${log.cfgId}</td>
<td>${log.entranceId}</td>
<td>
<c:if test="${log.action eq 16 }"><spring:message code="action_reject"/></c:if>
<c:if test="${log.action eq 1 }"><spring:message code="action_monit"/></c:if>
</td>
<td>
<c:forEach items="${fns:getDictList('DIRECTION')}" var="dic">
<c:if test="${log.direction==dic.itemCode}"><spring:message code="${dic.itemValue }"/></c:if>
</c:forEach>
</td>
<td>${log.pid}</td>
<td>${log.url}</td>
<td>${log.logUri}</td>
<td>${log.refer}</td>
<td>${log.level}</td>
<!--0动态黑名单FD1静态配置FD2首次分析命中 -->
<td>
<c:if test="${log.fdType eq 0 }"><spring:message code="black_block_list"/></c:if>
<c:if test="${log.fdType eq 1 }"><spring:message code="static_cfg_block"/></c:if>
<c:if test="${log.fdType eq 2 }"><spring:message code="first_hit"/></c:if>
</td>
<td>${log.protocol}</td>
<td>${log.foundTime}</td>
<td>${log.recvTime}</td>
<td>${log.transProto}</td>
<td>
<c:forEach items="${fns:getDictList('IP_TYPE')}" var="dic">
<c:if test="${log.addrType==dic.itemCode}"><spring:message code="${dic.itemValue }"/></c:if>
</c:forEach>
</td>
<td>${log.dIp}</td>
<td>${log.sIp}</td>
<td>${log.dPort}</td>
<td>${log.sPort}</td>
<td>${log.deviceId}</td>
<td>
<c:forEach items="${fns:getDictList('LOG_STREAM_TYPE')}" var="dic">
<c:if test="${log.streamDir==dic.itemCode}"><spring:message code="${dic.itemValue }"/></c:if>
</c:forEach>
</td>
<td>${log.capIp}</td>
<td>${log.addrList}</td>
<td>${log.userRegion}</td>
</tr>
</c:forEach>
</tbody>
</table>
<div class="page">${page}</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,273 @@
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ include file="/WEB-INF/include/taglib.jsp"%>
<html>
<head>
<script type="text/javascript">
$(document).ready(function(){
//筛选功能
filterActionInit();
//reset
$("#resetBtn").on("click",function(){
$("select.selectpicker").each(function(){
$(this).selectpicker('val',$(this).find('option:first').val());
$(this).find("option").attr("selected",false);
$(this).find("option:first").attr("selected",true);
});
$(".Wdate").attr("value",'');
$(':input','#searchForm')
.not(':button,:submit,:reset,:hidden')
.attr("value",'');
$("#searchForm")[0].reset();
});
});
//查询
function page(n,s){
$("#intype").attr("name",$("#seltype").val());
$("#pageNo").val(n);
$("#pageSize").val(s);
$("#searchForm").attr("action","${ctx}/log/ntc/mmSampleVoipLogs");
$("#searchForm").submit();
loading();
return false;
}
</script>
</head>
<body>
<div class="page-content">
<h3 class="page-title">
<spring:message code="av_sample_voip_control"/></small>
<small><spring:message code="date_list"/></small>
</h3>
<h5 class="page-header"></h5>
<div class="row">
<div class="col-md-12">
<div class="portlet">
<div class="portlet-body">
<div class="row" >
<form:form id="searchForm" modelAttribute="log" action="${ctx}/log/ntc/mmSampleVoipLogs" method="post" class="form-search">
<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
<input id="functionId" name="functionId" type="hidden" value="${log.functionId}"/>
<!-- 筛选按钮展开状态-->
<input id="isFilterAction" name="isFilterAction" type="hidden" value="${log.isFilterAction }"/>
<sys:tableSort id="orderBy" name="orderBy" value="${page.orderBy}" callback="page();"/>
<!-- 搜索内容与操作按钮栏 -->
<div class="col-md-12">
<div class="pull-left">
<form:select path="action" class="selectpicker select2 input-small">
<form:option value=""><spring:message code="action"/></form:option>
<form:option value="16"><spring:message code="action_reject"/></form:option>
<form:option value="1"><spring:message code="action_monit"/></form:option>
</form:select>
</div>
<div class="pull-left">
<div class="input-group">
<div class="input-group-btn">
<span class="selectpicker form-control" ><spring:message code="begin_date"/></span>
</div>
<input id="searchFoundStartTime" name="searchFoundStartTime" type="text" readonly="readonly" class="form-control input-medium Wdate "
value="${log.searchFoundStartTime}" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
</div>
</div>
<div class="pull-left">
<div class="input-group">
<div class="input-group-btn">
<span class="selectpicker form-control" ><spring:message code="end_date"/></span>
</div>
<input id="searchFoundEndTime" name="searchFoundEndTime" type="text" readonly="readonly" class="form-control input-medium Wdate "
value="${log.searchFoundEndTime}" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
</div>
</div>
<div class="pull-left">
<button type="button" class="btn blue" onClick="page()"> <i class="fa fa-search"></i> <spring:message code="search"/> </button>
<button type="button" class="btn btn-default" id="resetBtn"> <i class="fa fa-refresh"></i> <spring:message code="reset"/> </button>
<button type="button" class="btn btn-default" id="filter-btn"> <spring:message code="filter"></spring:message> <i class="fa fa-angle-double-down"></i></button>
</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="col-md-12 filter-action-select-panle hide" >
<div class="row">
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="protocol_type"/></label>
<c:set var="select"><spring:message code='select'/></c:set>
<form:select path="transProto" class="selectpicker select2 form-control" data-live-search="true" data-live-search-placeholder="search">
<form:option value=""><spring:message code="select"/></form:option>
<c:forEach items="${fns:getDictList('LOG_PROTOCOL')}" var="dict">
<form:option value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/></form:option>
</c:forEach>
</form:select>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="direct"/></label>
<form:select path="direction" class="selectpicker select2 form-control">
<form:option value=""><spring:message code="select"/></form:option>
<c:forEach items="${fns:getDictList('DIRECTION')}" var="dict">
<form:option value="${dict.itemCode}"><spring:message code="${dict.itemValue}"/></form:option>
</c:forEach>
</form:select>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="entrance"/></label>
<form:select path="entranceId" class="selectpicker form-control" data-live-search="true" data-live-search-placeholder="search">
<form:option value=""><spring:message code="select"/></form:option>
<c:forEach items="${fns:getDictList('ENTRANCE')}" var="entrance" >
<form:option value="${entrance.itemCode}"><spring:message code="${entrance.itemValue}"></spring:message></form:option>
</c:forEach>
</form:select>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="clj_ip"/></label>
<input id="capIp" name="capIp" class="form-control" type="text" value="${log.capIp}"/>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="clientip"/></label>
<input id="sIp" name="sIp" class="form-control" type="text" value="${log.sIp}"/>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="serverip"/></label>
<input id="dIp" name="dIp" class="form-control" type="text" value="${log.dIp}"/>
</div>
</div>
</div>
</div>
<!-- /筛选搜索内容栏 结束-->
</form:form>
</div>
<div class="table-responsive">
<sys:message content="${message}"/>
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap">
<thead>
<tr>
<th><spring:message code='cfg_id'/></th>
<th><spring:message code='entrance_id'/></th>
<th><spring:message code="action"/></th>
<th><spring:message code='direct'/></th>
<th><spring:message code='found_time'/></th>
<th><spring:message code='recv_time'/></th>
<th><spring:message code='protocol'/></th>
<th><spring:message code='duation'/></th>
<th><spring:message code='voip_protocol'/></th>
<th><spring:message code='calling_account'/></th>
<th><spring:message code='called_account'/></th>
<th><spring:message code='calling_number'/></th>
<th><spring:message code='called_number'/></th>
<th><spring:message code='from_to_store_ip'/></th>
<th><spring:message code='from_to_store_url'/></th>
<th><spring:message code='to_from_store_ip'/></th>
<th><spring:message code='to_from_store_url'/></th>
<th><spring:message code='pid'/></th>
<th><spring:message code='log_uri'/></th>
<th><spring:message code='harm_level'/></th>
<th><spring:message code='fd_type'/></th>
<th><spring:message code='addr_type'/></th>
<th><spring:message code='serverip'/></th>
<th><spring:message code='clientip'/></th>
<th><spring:message code='serverport'/></th>
<th><spring:message code='clientport'/></th>
<th><spring:message code='deviceid'/></th>
<th><spring:message code='stream_type'/></th>
<th><spring:message code='clj_ip'/></th>
<th><spring:message code='nest_addr_list'/></th>
<th><spring:message code='user_region'/></th>
</tr>
</thead>
<tbody>
<c:forEach items="${page.list}" var="log" varStatus="status" step="1">
<tr>
<td>${log.cfgId}</td>
<td>${log.entranceId}</td>
<td>
<c:if test="${log.action eq 16 }"><spring:message code="action_reject"/></c:if>
<c:if test="${log.action eq 1 }"><spring:message code="action_monit"/></c:if>
</td>
<td>
<c:forEach items="${fns:getDictList('DIRECTION')}" var="dic">
<c:if test="${log.direction==dic.itemCode}"><spring:message code="${dic.itemValue }"/></c:if>
</c:forEach>
</td>
<td>${log.foundTime}</td>
<td>${log.recvTime}</td>
<td>${log.transProto}</td>
<td>${log.duation}</td>
<td>${log.voipProtocol}</td>
<td>${log.callingAccount}</td>
<td>${log.calledAccount}</td>
<td>${log.callingNumber}</td>
<td>${log.calledNumber}</td>
<td>${log.fromToStoreIp}</td>
<td>${log.fromToStoreUrl}</td>
<td>${log.toFromStoreIp}</td>
<td>${log.toFromStoreUrl}</td>
<td>${log.pid}</td>
<td>${log.logUri}</td>
<td>${log.level}</td>
<!--0动态黑名单FD1静态配置FD2首次分析命中 -->
<td>
<c:if test="${log.fdType eq 0 }"><spring:message code="black_block_list"/></c:if>
<c:if test="${log.fdType eq 1 }"><spring:message code="static_cfg_block"/></c:if>
<c:if test="${log.fdType eq 2 }"><spring:message code="first_hit"/></c:if>
</td>
<td>
<c:forEach items="${fns:getDictList('IP_TYPE')}" var="dic">
<c:if test="${log.addrType==dic.itemCode}"><spring:message code="${dic.itemValue }"/></c:if>
</c:forEach>
</td>
<td>${log.dIp}</td>
<td>${log.sIp}</td>
<td>${log.dPort}</td>
<td>${log.sPort}</td>
<td>${log.deviceId}</td>
<td>
<c:forEach items="${fns:getDictList('LOG_STREAM_TYPE')}" var="dic">
<c:if test="${log.streamDir==dic.itemCode}"><spring:message code="${dic.itemValue }"/></c:if>
</c:forEach>
</td>
<td>${log.capIp}</td>
<td>${log.addrList}</td>
<td>${log.userRegion}</td>
</tr>
</c:forEach>
</tbody>
</table>
<div class="page">${page}</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>