asnRecord

ipRange
urlreport
三个报表功能提交
增加service国际化
This commit is contained in:
段冬梅
2018-12-17 02:32:50 +08:00
parent 6e6a35a28c
commit 159ae6715f
13 changed files with 879 additions and 4 deletions

View File

@@ -0,0 +1,31 @@
package com.nis.domain.report;
import com.nis.domain.log.BaseLogEntity;
import com.nis.util.excel.ExcelField;
public class NtcAsnRecord extends BaseLogEntity<NtcAsnRecord>{
private static final long serialVersionUID = -4947912502754359817L;
protected String bps;
protected String pps;
public String getBps() {
return bps;
}
public void setBps(String bps) {
this.bps = bps;
}
public String getPps() {
return pps;
}
public void setPps(String pps) {
this.pps = pps;
}
}

View File

@@ -0,0 +1,72 @@
package com.nis.domain.report;
import java.math.BigInteger;
import com.nis.domain.log.BaseLogEntity;
public class NtcIpRangeReport extends BaseLogEntity<NtcIpRangeReport>{
private static final long serialVersionUID = -4947912502754359817L;
protected String ipStart;
protected String ipEnd;
protected BigInteger ipStartNum;
protected BigInteger ipEndNum;
protected String ipSub;
protected String searchCountry;//国家
protected String searchStartIp;//开始IP
protected String searchEndIp;//结束IP
public String getSearchCountry() {
return searchCountry;
}
public void setSearchCountry(String searchCountry) {
this.searchCountry = searchCountry;
}
public String getSearchStartIp() {
return searchStartIp;
}
public void setSearchStartIp(String searchStartIp) {
this.searchStartIp = searchStartIp;
}
public String getSearchEndIp() {
return searchEndIp;
}
public void setSearchEndIp(String searchEndIp) {
this.searchEndIp = searchEndIp;
}
public String getIpStart() {
return ipStart;
}
public void setIpStart(String ipStart) {
this.ipStart = ipStart;
}
public String getIpEnd() {
return ipEnd;
}
public void setIpEnd(String ipEnd) {
this.ipEnd = ipEnd;
}
public BigInteger getIpStartNum() {
return ipStartNum;
}
public void setIpStartNum(BigInteger ipStartNum) {
this.ipStartNum = ipStartNum;
}
public BigInteger getIpEndNum() {
return ipEndNum;
}
public void setIpEndNum(BigInteger ipEndNum) {
this.ipEndNum = ipEndNum;
}
public String getIpSub() {
return ipSub;
}
public void setIpSub(String ipSub) {
this.ipSub = ipSub;
}
}

View File

@@ -0,0 +1,59 @@
package com.nis.domain.report;
import java.util.List;
import com.nis.domain.log.BaseLogEntity;
public class NtcURLReport extends BaseLogEntity<NtcURLReport>{
private static final long serialVersionUID = -4947912502754359817L;
protected String url;
protected Integer urlCount;
protected List<NtcURLReportBase> dataList;
protected String searchReportStartTime;//开始时间
protected String searchReportEndTime;//结束时间
protected String searchUrl;//查询条件 url
public String getUrl() {
return url;
}
public String getSearchReportStartTime() {
return searchReportStartTime;
}
public void setSearchReportStartTime(String searchReportStartTime) {
this.searchReportStartTime = searchReportStartTime;
}
public String getSearchReportEndTime() {
return searchReportEndTime;
}
public void setSearchReportEndTime(String searchReportEndTime) {
this.searchReportEndTime = searchReportEndTime;
}
public String getSearchUrl() {
return searchUrl;
}
public void setSearchUrl(String searchUrl) {
this.searchUrl = searchUrl;
}
public void setUrl(String url) {
this.url = url;
}
public Integer getUrlCount() {
return urlCount;
}
public void setUrlCount(Integer urlCount) {
this.urlCount = urlCount;
}
public List<NtcURLReportBase> getDataList() {
return dataList;
}
public void setDataList(List<NtcURLReportBase> dataList) {
this.dataList = dataList;
}
}

View File

@@ -0,0 +1,26 @@
package com.nis.domain.report;
public class NtcURLReportBase {
private static final long serialVersionUID = -4947912502754359817L;
protected String ipAddr;
protected Integer sum;
public String getIpAddr() {
return ipAddr;
}
public void setIpAddr(String ipAddr) {
this.ipAddr = ipAddr;
}
public Integer getSum() {
return sum;
}
public void setSum(Integer sum) {
this.sum = sum;
}
}

View File

@@ -769,6 +769,9 @@ public final class Constants {
public static final String NTC_COLLECT_RADIUS_LOG =Configurations.getStringProperty("ntcCollectRadiusLog",""); public static final String NTC_COLLECT_RADIUS_LOG =Configurations.getStringProperty("ntcCollectRadiusLog","");
public static final String NTC_CONN_RECORD_LOG =Configurations.getStringProperty("ntcConnRecordLog",""); public static final String NTC_CONN_RECORD_LOG =Configurations.getStringProperty("ntcConnRecordLog","");
public static final String NTC_CONN_RECORD_PERCENT =Configurations.getStringProperty("ntcConnRecordPercent",""); public static final String NTC_CONN_RECORD_PERCENT =Configurations.getStringProperty("ntcConnRecordPercent","");
public static final String NTC_ASN_RECORD =Configurations.getStringProperty("ntcAsnRecord","");
public static final String NTC_URL_REPORT =Configurations.getStringProperty("ntcURLReport","");
public static final String NTC_IP_RANGE_REPORT =Configurations.getStringProperty("ntcIpRangeReport","");
/** /**
* 每次最大导出条数 * 每次最大导出条数

View File

@@ -1,15 +1,39 @@
package com.nis.web.controller.report; package com.nis.web.controller.report;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.Model; import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping; 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;
import com.google.gson.reflect.TypeToken;
import com.nis.domain.Page;
import com.nis.domain.PageLog;
import com.nis.domain.SysUser;
import com.nis.domain.log.SearchReport; import com.nis.domain.log.SearchReport;
import com.nis.domain.maat.LogRecvData;
import com.nis.domain.report.NtcAsnRecord;
import com.nis.domain.report.NtcIpRangeReport;
import com.nis.domain.report.NtcURLReport;
import com.nis.util.Constants;
import com.nis.util.DateUtils;
import com.nis.util.DictUtils;
import com.nis.util.httpclient.HttpClientUtil;
import com.nis.web.controller.BaseController; import com.nis.web.controller.BaseController;
import com.nis.web.security.UserUtils;
@Controller @Controller
@RequestMapping("${adminPath}/report") @RequestMapping("${adminPath}/report")
@@ -19,4 +43,170 @@ public class ReportController extends BaseController {
initReportCondition(model, bean); initReportCondition(model, bean);
return "/report/list"; return "/report/list";
} }
//asn
@RequestMapping(value = {"/asnConnList", ""})
public String asnConnLists(@ModelAttribute("log") NtcAsnRecord log, Model model, HttpServletRequest request, HttpServletResponse response) {
try {
PageLog<NtcAsnRecord> page = new PageLog<NtcAsnRecord>(request, response);
Map<String, Object> params = new HashMap<String, Object>();
params.put("pageSize", page.getPageSize());
params.put("pageNo", page.getPageNo());
//判断请求参数
if (StringUtils.isNotBlank(log.getSearchFoundStartTime())
&& StringUtils.isNotBlank(log.getSearchFoundEndTime())) {
params.put("searchFoundStartTime", log.getSearchFoundStartTime());
params.put("searchFoundEndTime", log.getSearchFoundEndTime());
} else {
Calendar time = Calendar.getInstance();
String searchEndTime = DateUtils.formatDateTime(time.getTime());
time.add(Calendar.HOUR_OF_DAY, -1);
String searchStartTime = DateUtils.formatDateTime(time.getTime());
params.put("searchFoundStartTime", searchStartTime);
params.put("searchFoundEndTime", searchEndTime);
log.setSearchFoundStartTime(searchStartTime);
log.setSearchFoundEndTime(searchEndTime);
}
String url =Constants.LOG_BASE_URL + Constants.NTC_ASN_RECORD;
String recv = HttpClientUtil.getMsg(url, params, request);
// String recv="{\"status\":200,\"businessCode\":2001000,\"reason\":\"数据获取操作成功\",\"msg\":\"ASN通联关系(源,目的)检索成功\",\"fromuri\":\"/galaxy-service/service/log/v1/ntcAsnRecord\",\"logSource\":0,\"traceCode\":\"2018121609404451375322\",\"data\":"
// +"{\"pageNo\":1,\"pageSize\":30,\"count\":66564,\"last\":2219,\"list\":[{\"bps\":\"8.56\",\"pps\":\"0.07\",\"sAsn\":\"9198\",\"dAsn\":\"40545_26836\"},"+
// "{\"bps\":\"3.68\",\"pps\":\"0.12\",\"sAsn\":\"9198\",\"dAsn\":\"19506\"},{\"bps\":\"1.77\",\"pps\":\"0.08\",\"sAsn\":\"38266\",\"dAsn\":\"N/A\"},"+
// "{\"bps\":\"493.55\",\"pps\":\"0.76\",\"sAsn\":\"30922\",\"dAsn\":\"29555\"},{\"bps\":\"26.63\",\"pps\":\"0.04\",\"sAsn\":\"44546\",\"dAsn\":\"197482\"},"+
// "{\"bps\":\"25.43\",\"pps\":\"0.45\",\"sAsn\":\"44391\",\"dAsn\":\"9198\"},{\"bps\":\"52.96\",\"pps\":\"0.08\",\"sAsn\":\"29555\",\"dAsn\":\"14080\"}]}}";
if (StringUtils.isNotBlank(recv)) {
Gson gson = new GsonBuilder().create();
LogRecvData<NtcAsnRecord> fromJson = gson.fromJson(recv, new TypeToken<LogRecvData<NtcAsnRecord>>(){}.getType());
if (fromJson.getStatus().intValue() == 200) {
Page<NtcAsnRecord> data = fromJson.getData();
page.setCount(data.getCount());
page.setLast(data.getLast());
page.setList(data.getList());
/*List<NtcCollectRadiusLog> list = page.getList();
for (NtcConnRecordLog l : list) {
l.setFunctionId(log.getFunctionId());
setLogAction(l,serviceList);
}*/
model.addAttribute("page", page);
}
}
} catch (Exception e) {
logger.error("查询失败", e);
addMessageLog(model, e.getMessage());
}
return "/report/asnRecordList";
}
//
@RequestMapping(value = {"/httpsUrlList", ""})
public String httpsUrlLists(@ModelAttribute("log") NtcURLReport log, Model model, HttpServletRequest request, HttpServletResponse response) {
try {
PageLog<NtcURLReport> page = new PageLog<NtcURLReport>(request, response);
Map<String, Object> params = new HashMap<String, Object>();
params.put("pageSize", page.getPageSize());
params.put("pageNo", page.getPageNo());
//判断请求参数
if (StringUtils.isNotBlank(log.getSearchReportStartTime())
&& StringUtils.isNotBlank(log.getSearchReportEndTime())) {
params.put("searchReportStartTime", log.getSearchReportStartTime());
params.put("searchReportEndTime", log.getSearchReportEndTime());
} else {
Calendar time = Calendar.getInstance();
String searchEndTime = DateUtils.formatDateTime(time.getTime());
time.add(Calendar.HOUR_OF_DAY, -1);
String searchStartTime = DateUtils.formatDateTime(time.getTime());
params.put("searchReportStartTime", searchStartTime);
params.put("searchReportEndTime", searchEndTime);
log.setSearchReportStartTime(searchStartTime);
log.setSearchReportEndTime(searchEndTime);
}
//url参数
if (StringUtils.isNotBlank(log.getSearchUrl())) {
params.put("searchUrl", log.getSearchUrl());
}
String url =Constants.LOG_BASE_URL + Constants.NTC_URL_REPORT;
String recv = HttpClientUtil.getMsg(url, params, request);
// String recv="{\"status\":200,\"businessCode\":2001000,\"reason\":\"数据获取操作成功\",\"msg\":\"URL统计查询成功\",\"fromuri\":\"/galaxy-service/service/log/v1/ntcURLReport\",\"logSource\":0,\"traceCode\":\"2018121610374649425419\",\"data\":{\"pageNo\":1,\"pageSize\":30,\"count\":174,\"last\":6,\"list\":[{\"url\":\"142.44.167.226/eventproxy/v1/bulk\",\"urlCount\":1686,\"dataList\":[{\"sum\":1686,\"ipAddr\":\"100.101.129.6\"}]},{\"url\":\"188.0.145.98/YZ/e1cib/dlist?cmd=query\",\"urlCount\":2652,\"dataList\":[{\"sum\":1248,\"ipAddr\":\"188.0.145.98\"},{\"sum\":1404,\"ipAddr\":\"89.218.9.2\"}]},{\"url\":\"cdn7.alpha-ag.ru/1c1233923d1a6/c51e872ab5861be256408f6cafa99ed8/luckypatcher_v7.5.9.apk\",\"urlCount\":882,\"dataList\":[{\"sum\":882,\"ipAddr\":\"100.81.118.193\"}]}]}}";
if (StringUtils.isNotBlank(recv)) {
Gson gson = new GsonBuilder().create();
LogRecvData<NtcURLReport> fromJson = gson.fromJson(recv, new TypeToken<LogRecvData<NtcURLReport>>(){}.getType());
if (fromJson.getStatus().intValue() == 200) {
Page<NtcURLReport> data = fromJson.getData();
page.setCount(data.getCount());
page.setLast(data.getLast());
page.setList(data.getList());
/*List<NtcCollectRadiusLog> list = page.getList();
for (NtcConnRecordLog l : list) {
l.setFunctionId(log.getFunctionId());
setLogAction(l,serviceList);
}*/
model.addAttribute("page", page);
}
}
} catch (Exception e) {
logger.error("查询失败", e);
addMessageLog(model, e.getMessage());
}
return "/report/urlReportList";
}
//IP范围统计
@RequestMapping(value = {"/ipRangeList", ""})
public String ipRangeLists(@ModelAttribute("log") NtcIpRangeReport log, Model model, HttpServletRequest request, HttpServletResponse response) {
try {
PageLog<NtcIpRangeReport> page = new PageLog<NtcIpRangeReport>(request, response);
Map<String, Object> params = new HashMap<String, Object>();
params.put("pageSize", page.getPageSize());
params.put("pageNo", page.getPageNo());
//判断请求参数
//查询国家
if (StringUtils.isNotBlank(log.getSearchCountry())) {
params.put("searchCountry", log.getSearchCountry());
}
//查询开始IP
if (StringUtils.isNotBlank(log.getSearchStartIp())) {
params.put("searchStartIp", log.getSearchStartIp());
}
//查询结束IP
if (StringUtils.isNotBlank(log.getSearchEndIp())) {
params.put("searchEndIp", log.getSearchEndIp());
}
String url =Constants.LOG_BASE_URL + Constants.NTC_IP_RANGE_REPORT;
String recv = HttpClientUtil.getMsg(url, params, request);
// String recv="{\"status\":200,\"businessCode\":2001000,\"reason\":\"数据获取操作成功\",\"msg\":\"URL统计查询成功\",\"fromuri\":\"/galaxy-service/service/log/v1/ntcIpRangeReport\",\"logSource\":0,\"traceCode\":\"2018121616062785920271\",\"data\":{\"pageNo\":1,\"pageSize\":30,\"count\":0,\"last\":1,\"list\":[{\"ipStart\":\"192.168.10.121\",\"ipEnd\":\"192.168.10.122\",\"ipStartNum\":3232238201,\"ipEndNum\":3232238202,\"ipSub\":\"255.255.255.252\"}]}}";
if (StringUtils.isNotBlank(recv)) {
Gson gson = new GsonBuilder().create();
LogRecvData<NtcIpRangeReport> fromJson = gson.fromJson(recv, new TypeToken<LogRecvData<NtcIpRangeReport>>(){}.getType());
if (fromJson.getStatus().intValue() == 200) {
Page<NtcIpRangeReport> data = fromJson.getData();
page.setCount(data.getCount());
page.setLast(data.getLast());
page.setList(data.getList());
/*List<NtcCollectRadiusLog> list = page.getList();
for (NtcConnRecordLog l : list) {
l.setFunctionId(log.getFunctionId());
setLogAction(l,serviceList);
}*/
model.addAttribute("page", page);
}
}
} catch (Exception e) {
logger.error("查询失败", e);
addMessageLog(model, e.getMessage());
}
return "/report/ipRangeReportList";
}
} }

View File

@@ -1376,3 +1376,19 @@ spoofing_ip_object=Spoofing Policy Object
spoofing_ip_policy=Spoofing Policy spoofing_ip_policy=Spoofing Policy
action_spoofing=Spoofing action_spoofing=Spoofing
spoofing=spoofing spoofing=spoofing
service=Service
s_asn=SASN
d_asn=DASN
asn_conn_report=ANS Report
https_url_report=HTTP(s) URL Report
url=URL
sum=SUM
url_count=URL Count
ip_range_report=ip Range Report
ip_start=Start IP
ip_end=End IP
ip_start_num=IP Start Num
ip_end_num=IP End Num
ip_sub=IP Subnet
start_ip=Start IP
end_ip=End IP

View File

@@ -1380,3 +1380,19 @@ spoofing_ip_object=Spoofing Policy Object
spoofing_ip_policy=Spoofing Policy spoofing_ip_policy=Spoofing Policy
action_spoofing=Spoofing action_spoofing=Spoofing
spoofing=spoofing spoofing=spoofing
service=Service
s_asn=SASN
d_asn=DASN
asn_conn_report=ANS Report
https_url_report=HTTP(s) URL Report
url=URL
sum=SUM
url_count=URL Count
ip_range_report=ip Range Report
ip_start=Start IP
ip_end=End IP
ip_start_num=IP Start Num
ip_end_num=IP End Num
ip_sub=IP Subnet
start_ip=Start IP
end_ip=End IP

View File

@@ -1376,3 +1376,19 @@ spoofing_ip_object=Spoofing Policy Object
spoofing_ip_policy=Spoofing Policy spoofing_ip_policy=Spoofing Policy
action_spoofing=Spoofing action_spoofing=Spoofing
spoofing=spoofing spoofing=spoofing
service=Service
s_asn=SASN
d_asn=DASN
asn_conn_report=ANS Report
https_url_report=HTTP(s) URL Report
url=URL
sum=SUM
url_count=URL Count
ip_range_report=ip Range Report
ip_start=Start IP
ip_end=End IP
ip_start_num=IP Start Num
ip_end_num=IP End Num
ip_sub=IP Subnet
start_ip=Start IP
end_ip=End IP

View File

@@ -590,3 +590,6 @@ ntcConnRecordPercent=ntcConnRecordPercent
maxLogExportSize=2000 maxLogExportSize=2000
pxy_crtl_subscribe_id_region=PXY_CTRL_SUBSCRIBE_ID pxy_crtl_subscribe_id_region=PXY_CTRL_SUBSCRIBE_ID
ntc_subscribe_id_region=NTC_SUBSCRIBE_ID ntc_subscribe_id_region=NTC_SUBSCRIBE_ID
ntcAsnRecord=ntcAsnRecord
ntcURLReport=ntcURLReport
ntcIpRangeReport=ntcIpRangeReport

View File

@@ -0,0 +1,124 @@
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ include file="/WEB-INF/include/taglib.jsp"%>
<html>
<head>
<title>
<spring:message code="asn_conn_report"/>
</title>
<script>
$(document).ready(function() {
//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();
});
//筛选功能
// filterActionInit();
// $("span[id^=close]").on("click",function(){
// var closeId=$(this).attr("id");
// var openId=$(this).attr("id").replace("close","open");
// $("#"+closeId).hide();
// $("#"+openId).show();
// $("#"+closeId).parent().parent().next("tr").hide();
// });
// ajaxConnPercent();
});
</script>
</head>
<body>
<div class="page-content">
<h3 class="page-title">
<spring:message code="asn_conn_report"/>
</h3>
<h5 class="page-header"></h5>
<div class="col-md-12">
<div class="portlet">
<div class="portlet-body">
<div class="row" >
<form:form id="searchForm" modelAttribute="log" action="${ctx}/report/asnConnList" 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}"/>
<div class="col-md-12">
<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 name="searchFoundStartTime" type="text" readonly="readonly" maxlength="20" class="form-control Wdate input-medium"
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 name="searchFoundEndTime" type="text" readonly="readonly" maxlength="20" class="form-control Wdate input-medium"
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="return 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>
</div>
</div>
<!-- 搜索内容与操作按钮栏 -->
</form:form>
</div>
<sys:message content="${message}"/>
<div class="table-responsive">
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap logTb">
<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 bps" columan="bps"><spring:message code="bps"/></th>
<th class="sort-column pps" columan="pps"><spring:message code="pps"/></th>
<th class="sort-column s_asn" columan="s_asn"><spring:message code="s_asn"/></th>
<th class="sort-column d_asn" columan="d_asn"><spring:message code="d_asn"/></th>
</tr>
</thead>
<tbody>
<c:forEach var="log" items="${page.list }" varStatus="status">
<tr>
<%-- <td>
<span id="open${status.index}" class="log-open-cfg" compileId="${log.cfgId }"> ▷ </span><span style="display: none" id="close${status.index}" > ▼ </span>
<a href="javascript:void(0)" name="viewLogInfo" ><i class="icon-book-open"></i></a>
</td> --%>
<td>${log.bps }</td>
<td>${log.pps }</td>
<td>${log.sAsn}</td>
<td>${log.dAsn}</td>
</tr>
</c:forEach>
</tbody>
</table>
<div class="page">${page}</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,154 @@
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ include file="/WEB-INF/include/taglib.jsp"%>
<html>
<head>
<title>
<spring:message code="ip_range_report"/>
</title>
<script>
$(document).ready(function() {
//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();
});
//筛选功能
// filterActionInit();
// $("span[id^=close]").on("click",function(){
// var closeId=$(this).attr("id");
// var openId=$(this).attr("id").replace("close","open");
// $("#"+closeId).hide();
// $("#"+openId).show();
// $("#"+closeId).parent().parent().next("tr").hide();
// });
// ajaxConnPercent();
});
</script>
</head>
<body>
<div class="page-content">
<h3 class="page-title">
<spring:message code="ip_range_report"/>
</h3>
<h5 class="page-header"></h5>
<div class="col-md-12">
<div class="portlet">
<div class="portlet-body">
<div class="row" >
<form:form id="searchForm" modelAttribute="log" action="${ctx}/report/ipRangeList" 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}"/>
<div class="col-md-12">
<div class="pull-left">
<div class="input-group">
<div class="input-group-btn">
<span class="selectpicker form-control" ><spring:message code="area_type"/></span>
</div>
</div>
</div>
<div class="pull-left">
<div class="input-group">
<div class="input-group-btn">
<form:select path="searchCountry" class="selectpicker form-control">
<form:option value=""><spring:message code="select"/></form:option>
<c:forEach items="${fns:getDictList('AREA_TYPE')}" var="areaType" >
<form:option value="${areaType.itemCode}"><spring:message code="${areaType.itemValue}"></spring:message></form:option>
</c:forEach>
</form:select>
</div>
</div>
</div>
<div class="pull-left">
<div class="input-group">
<div class="input-group-btn">
<span class="selectpicker form-control" ><spring:message code="start_ip"/></span>
</div>
</div>
</div>
<div class="pull-left">
<div class="input-group">
<div class="input-group-btn">
<input name="searchStartIp" type="text" class="form-control input-small" value="${log.searchStartIp }" />
</div>
</div>
</div>
<div class="pull-left">
<div class="input-group">
<div class="input-group-btn">
<span class="selectpicker form-control" ><spring:message code="end_ip"/></span>
</div>
</div>
</div>
<div class="pull-left">
<div class="input-group">
<div class="input-group-btn">
<input name="searchEndIp" type="text" class="form-control input-small" value="${log.searchEndIp }" />
</div>
</div>
</div>
<div class="pull-left">
<button type="button" class="btn blue" onClick="return 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>
</div>
</div>
<!-- 搜索内容与操作按钮栏 -->
</form:form>
</div>
<sys:message content="${message}"/>
<div class="table-responsive">
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap logTb">
<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 ip_start" columan="ip_start"><spring:message code="ip_start"/></th>
<th class="sort-column ip_end" columan="ip_end"><spring:message code="ip_end"/></th>
<th class="sort-column ip_start_num" columan="ip_start_num"><spring:message code="ip_start_num"/></th>
<th class="sort-column ip_end_num" columan="ip_end_num"><spring:message code="ip_end_num"/></th>
<th class="sort-column ip_sub" columan="ip_sub"><spring:message code="ip_sub"/></th>
</tr>
</thead>
<tbody>
<c:forEach var="log" items="${page.list }" varStatus="status">
<tr>
<%-- <td>
<span id="open${status.index}" class="log-open-cfg" compileId="${log.cfgId }"> ▷ </span><span style="display: none" id="close${status.index}" > ▼ </span>
<a href="javascript:void(0)" name="viewLogInfo" ><i class="icon-book-open"></i></a>
</td> --%>
<td>${log.ipStart }</td>
<td>${log.ipEnd }</td>
<td>${log.ipStartNum}</td>
<td>${log.ipEndNum}</td>
<td>${log.ipSub}</td>
</tr>
</c:forEach>
</tbody>
</table>
<div class="page">${page}</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,165 @@
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ include file="/WEB-INF/include/taglib.jsp"%>
<html>
<head>
<title>
<spring:message code="https_url_report"/>
</title>
<script>
$(document).ready(function() {
//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();
});
$("#contentTable").find("tr").each(function(index){
// $(this).find("th").eq(0).width=300;
if(index > 0 ){
var title=$(this).find("td").eq(0).attr("title");
console.log(title);
if(title != undefined && title != null){
if(title.length > 80){
$(this).find("td").eq(0).text(title.substring(0,80));
}else{
$(this).find("td").eq(0).text(title);
}
}
}
});
//筛选功能
// filterActionInit();
// $("span[id^=close]").on("click",function(){
// var closeId=$(this).attr("id");
// var openId=$(this).attr("id").replace("close","open");
// $("#"+closeId).hide();
// $("#"+openId).show();
// $("#"+closeId).parent().parent().next("tr").hide();
// });
// ajaxConnPercent();
});
</script>
</head>
<body>
<div class="page-content">
<h3 class="page-title">
<spring:message code="https_url_report"/>
</h3>
<h5 class="page-header"></h5>
<div class="col-md-12">
<div class="portlet">
<div class="portlet-body">
<div class="row" >
<form:form id="searchForm" modelAttribute="log" action="${ctx}/report/httpsUrlList" 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}"/>
<div class="col-md-12">
<div class="pull-left">
<div class="input-group">
<div class="input-group-btn">
<span class="selectpicker form-control" ><spring:message code="url"/></span>
</div>
</div>
</div>
<div class="pull-left">
<div class="input-group">
<div class="input-group-btn">
<input name="searchUrl" type="text" class="form-control input-medium" value="${log.searchUrl }" />
</div>
</div>
</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 name="searchReportStartTime" type="text" readonly="readonly" maxlength="20" class="form-control Wdate input-medium"
value="${log.searchReportStartTime}" 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 name="searchReportEndTime" type="text" readonly="readonly" maxlength="20" class="form-control Wdate input-medium"
value="${log.searchReportEndTime}" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
</div>
</div>
<div class="pull-left">
<button type="button" class="btn blue" onClick="return 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>
</div>
</div>
<!-- 搜索内容与操作按钮栏 -->
</form:form>
</div>
<sys:message content="${message}"/>
<div class="table-responsive">
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap">
<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 url" columan="url" style="width: 350px;"><spring:message code="url"/></th>
<th class="sort-column ip_addr" columan="ip_addr"><spring:message code="ip_addr"/></th>
<th class="sort-column sum" columan="sum"><spring:message code="sum"/></th>
<th class="sort-column url_count" columan="url_count"><spring:message code="url_count"/></th>
</tr>
</thead>
<tbody>
<c:forEach var="log" items="${page.list }" varStatus="status">
<c:if test="${empty log.dataList}">
<tr>
<td>${log.url }</td>
<td></td>
<td></td>
<td >${log.urlCount}</td>
</tr>
</c:if>
<c:if test="${!empty log.dataList}">
<c:forEach var="ips" items="${log.dataList}" varStatus="status">
<tr>
<c:if test="${status.index==0}">
<td rowspan="${fn:length(log.dataList)}">${log.url }</td>
</c:if>
<td>${ips.ipAddr }</td>
<td >${ips.sum}</td>
<c:if test="${status.index==0}">
<td rowspan="${fn:length(log.dataList)}">${log.urlCount}</td>
</c:if>
</tr>
</c:forEach>
</c:if>
</c:forEach>
</tbody>
</table>
<div class="page">${page}</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>