活跃IPTOP10及详情增加时间条件,app增加appType条件查询,时间范围做校验开始时间小于结束时间,

This commit is contained in:
zhanghongqing
2018-12-17 10:56:03 +08:00
parent b3264bc2dd
commit f1f95afe0a
12 changed files with 322 additions and 207 deletions

View File

@@ -31,7 +31,7 @@
<div class="data_info">
<div class="info_1 fl_fc">
<div class="text_1">
<div class="fr_fc">
<div class="fr_fc" style="width:60%">
<div class="fl_visual">
<a href="${ctx}/dashboard/traffic/bandwidthList"><i class="fa fa-cloud-download"></i></a>
</div>
@@ -45,7 +45,7 @@
<span class="numberRun4">0</span > <span class="numberRun4-unit">bps</span></a>
</div>
</div>
<div class="fr_fc">
<div class="fr_fc" style="width:40%">
<div class="fl_visual">
<a href="${ctx}/dashboard/traffic/trafficBlockList?searchAction=block"><i class="fa fa-ban"></i></a>
</div>
@@ -127,6 +127,29 @@
</div>
</div>
<div class="fr_fc">
<div class="fl_visual">
<i class="fa fa-smile-o"> </i>
</div>
<div class="fl_fc">
<p data-original-title="<spring:message code="pass"/>"
class="tooltips" data-flag="false" data-html="true" data-placement="top">
<!-- pass --><spring:message code="pass"/></p>
<p class="numberRun7">0</p>
</div>
</div>
<div class="fr_fc">
<div class="fl_visual">
<i class="fa fa-heartbeat"> </i>
</div>
<div class="fl_fc">
<p data-original-title="<spring:message code="live_link"/>"
class="tooltips" data-flag="false" data-html="true" data-placement="top">
<!-- live link--><spring:message code="live_link"/></p>
<p class="numberRun8">0</p>
</div>
</div>
</div>
</div>
</div>
@@ -139,6 +162,12 @@
<div class="main_title">
<spring:message code="traffic_ipactive_chart"/>&nbsp;&nbsp;<a href="${ctx}/dashboard/ipActiveList"><i class="fa fa-line-chart"></i></a> <a href="javascipt:void(0)" onclick="ipActiveList();return false;"><i class="fa fa-refresh"></i></a>
</div>
<div style="margin-left:150px;margin-top:19px;position:absolute;z-index:1000;">
<input id="iPBeginDate" name="beginDate" type="text" readonly="readonly" class="Wdate" style="font-size:10px;width:125px;background-color: #424242;border:0;color:#fff"
value="" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,maxDate:'#F{$dp.$D(\'iPEndDate\')}'});"/>
<input id="iPEndDate" name="endDate" type="text" readonly="readonly" class="Wdate" style="font-size:10px;width:125px;background-color: #424242;border:0;color:#fff""
value="" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,minDate:'#F{$dp.$D(\'iPBeginDate\')}'});"/>
</div>
<!-- 活跃IP图 --> <div id="chart_main" style="width:100%;height:400px;"></div>
</div>
</div>
@@ -184,7 +213,7 @@
<div class="main_left1 fl">
<div class="left_1">
<div class="main_title1">
<spring:message code="topic"/>&nbsp;&nbsp;<%-- <a href="${ctx}/dashboard/ipActiveList"><i class="fa fa-list-ul"></i></a> --%>
<spring:message code="service"/>&nbsp;&nbsp;<%-- <a href="${ctx}/dashboard/ipActiveList"><i class="fa fa-list-ul"></i></a> --%>
<a href="javascipt:void(0)" onclick="topicAndDomainList();return false;"><i class="fa fa-refresh"></i></a>
</div>
<!-- 网站主题分类图 --><div id="chart_topic" style="width:100%;height:400px;"></div>
@@ -196,7 +225,7 @@
<div class="main_center1 fl">
<div class="bottom_web fl">
<div class="main_title_web">
<spring:message code="traffic_website_list"/>&nbsp;&nbsp; <a href="${ctx}/dashboard/traffic/webTypeList"><i class="fa fa-line-chart"></i></a>
<spring:message code="traffic_website_list"/>&nbsp;&nbsp;<%-- <a href="${ctx}/dashboard/webTypeList"><i class="fa fa-list-ul"></i></a> --%>
<a href="javascipt:void(0)" onclick="websiteList();return false;"><i class="fa fa-refresh"></i></a>
</div>
<div class="main_table_web">
@@ -392,7 +421,7 @@ $(document).ready(function(){
ajaxinfo();
setInterval(function(){
ajaxinfo();
},30000);
},300000);
protocolList();//协议统计
ipActiveList();//活跃IP
@@ -413,8 +442,6 @@ $(document).ready(function(){
});
//获取数据info
function ajaxinfo(){
// var c2s = $(".c2sNum").text().trim();
// var s2c = $(".s2cNum").text().trim();
$.ajax({
url:'${ctx}/dashboard/traffic/info',
type : "get" ,
@@ -452,10 +479,11 @@ function ajaxinfo(){
dataScroll(".numberRun3",Math.round(dropConnNum));
dataScroll(".numberRun5",Math.round(newUniConnNum));
dataScroll(".numberRun6",Math.round(liveConnNum));
dataScroll(".numberRun7",Math.round(newUniConnNum-rejectNum));
dataScroll(".numberRun8",Math.round(newUniConnNum-rejectNum-dropConnNum));
//计算带宽进出口流量百分比
// $("#c2sColor").removeClass();
// $("#s2cColor").removeClass();
var inoctetsNum=Math.round(data.inoctetsNum);
var inoctetsNumK=inoctetsNum/1024;
var inoctetsNumM=inoctetsNumK/1024;
@@ -488,24 +516,7 @@ function ajaxinfo(){
bandwidth=parseFloat(inoctetsNum)+parseFloat(outoctetsNum);
dataScroll2(".numberRun4",bandwidth);
/* if(data.inoctetsNum!=c2s){
$(".c2sNum").text(data.c2sNum);
$(".s2cNum").text(100-data.c2sNum);
if(data.c2sNum>c2s){
//c2s增长 fa fa-arrow-up
$("#c2sColor").addClass("fa fa-arrow-up");
$("#c2sColor").attr({style:"color:green"});
$("#s2cColor").addClass("fa fa-arrow-down");
$("#s2cColor").attr({style:"color:red"});
}
//c2s下降
if(data.c2sNum<c2s){
$("#c2sColor").addClass("fa fa-arrow-down");
$("#c2sColor").attr({style:"color:red"});
$("#s2cColor").addClass("fa fa-arrow-up");
$("#s2cColor").attr({style:"color:green"});
}
} */
},
});
}
@@ -563,12 +574,17 @@ function protocolList(){
}
//活跃IP统计
function ipActiveList(){
var begin=$("#iPBeginDate").val();
var end=$("#iPEndDate").val();
loading();
$.ajax({
url: '${ctx}/dashboard/ipActive',
type : "get" ,
dataType:"json",
cache:false,async:true,timeout:60000,//超时时间设置,查询接口时间过长超时
data:{"beginDate":begin,"endDate":end},
cache:false,
async:true,
timeout:60000,//超时时间设置,查询接口时间过长超时
success:function (rs) {
if(rs!=null&&rs.length>0&&rs[0].error!=null){
top.$.jBox.tip("<spring:message code='request_service_failed'/>", "<spring:message code='info'/>");
@@ -951,7 +967,6 @@ function topicAndDomainList(){
}
});
}
</script>
</body>
</html>

View File

@@ -27,7 +27,7 @@
<span class="selectpicker form-control" ><spring:message code="begin_date"/></span>
</div>
<input id="beginDate" name="beginDate" type="text" readonly="readonly" class="form-control Wdate input-medium"
value="" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:00',isShowClear:true,maxDate:'${endDate}'});"/>
value="" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,maxDate:'#F{$dp.$D(\'endDate\')}'});"/>
</div>
</div>
<div class="pull-left">
@@ -36,7 +36,7 @@
<span class="selectpicker form-control" ><spring:message code="end_date"/></span>
</div>
<input id="endDate" name="endDate" type="text" readonly="readonly" class="form-control Wdate input-medium"
value="" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:00',isShowClear:true,maxDate:'${endDate}'});"/>
value="" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,minDate:'#F{$dp.$D(\'beginDate\')}',maxDate:'${endDate}'});"/>
</div>
</div>

View File

@@ -43,16 +43,29 @@
<span class="selectpicker form-control" ><spring:message code="begin_date"/></span>
</div>
<input id="beginDate" name="beginDate" type="text" readonly="readonly" class="form-control Wdate input-medium"
value="${beginDate}" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,maxDate:'${endDate}'});"/>
value="${beginDate}" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,maxDate:'#F{$dp.$D(\'endDate\')}'});"/>
</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 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="endDate" name="endDate" type="text" readonly="readonly" class="form-control Wdate input-medium"
value="${endDate}" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,maxDate:'${endDate}'});"/>
value="${endDate}" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,minDate:'#F{$dp.$D(\'beginDate\')}',maxDate:'${endDate}'});"/>
</div>
</div>
<div class="pull-left">
<div class="input-group">
<div class="input-group-btn">
<span class="selectpicker form-control" ><spring:message code="social_app"/></span>
</div>
<select id="appType" name="appType" class="selectpicker form-control input-medium" data-live-search="true" data-live-search-placeholder="search">
<option value=""><spring:message code="select"/></option>
<c:forEach items="${fns:getCodeList('appCode')}" var="dict" >
<option value="${dict.code}"><spring:message code="${dict.item}"></spring:message></option>
</c:forEach>
</select>
</div>
</div>
@@ -127,12 +140,13 @@ function searchList(){
}
}
function ajaxAppList(start,end){
var appType=$("#appType").val();
loading();
$.ajax({
url: '${ctx}/dashboard/traffic/appList',
type: 'get',
dataType: "json",
data:{"beginDate":start,"endDate":end},
data:{"beginDate":start,"endDate":end,"appType":appType},
async:false,
timeout:10000,
success:function (data){

View File

@@ -32,7 +32,7 @@
<span class="selectpicker form-control" ><spring:message code="begin_date"/></span>
</div>
<input id="beginDate" name="beginDate" type="text" readonly="readonly" class="form-control Wdate input-medium"
value="" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,maxDate:'${endDate}'});"/>
value="" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,maxDate:'#F{$dp.$D(\'endDate\')}'});"/>
</div>
</div>
<div class="pull-left">
@@ -41,7 +41,7 @@
<span class="selectpicker form-control" ><spring:message code="end_date"/></span>
</div>
<input id="endDate" name="endDate" type="text" readonly="readonly" class="form-control Wdate input-medium"
value="" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,maxDate:'${endDate}'});"/>
value="" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,minDate:'#F{$dp.$D(\'beginDate\')}',maxDate:'${endDate}'});"/>
</div>
</div>

View File

@@ -17,18 +17,45 @@
<h3 class="page-title">
<spring:message code="traffic_ipactive_hour_trend"></spring:message>
</h3>
<div class="row" >
<form:form id="searchForm" action="${ctx}/traffic/ipActiveList" method="get" class="form-search">
<input id="beginDateh" type="hidden" value="${beginDate}"/>
<input id="endDateh" type="hidden" value="${endDate}"/>
<!-- 搜索内容与操作按钮栏 -->
<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 id="beginDate" name="beginDate" type="text" readonly="readonly" class="form-control Wdate input-medium"
value="" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,maxDate:'#F{$dp.$D(\'endDate\')}'});"/>
</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="endDate" name="endDate" type="text" readonly="readonly" class="form-control Wdate input-medium"
value="" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,minDate:'#F{$dp.$D(\'beginDate\')}',maxDate:'${endDate}'});"/>
</div>
</div>
<div class="pull-left">
<button type="button" class="btn blue" onClick="return searchList()"> <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>
<div id="chart" style="width:95%;height:350px;"></div>
<div class="col-md-12">
<div class="portlet">
<div class="portlet-body">
<div class="row" >
<form:form id="searchForm" modelAttribute="entry" action="${ctx}/traffic/ipActiveList" 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}"/>
</form:form>
</div>
<sys:message content="${message}" type="${messageType }"/>
<h3 class="page-title">
<spring:message code="traffic_ipactive_hour_max"></spring:message>
@@ -54,30 +81,8 @@
<th><spring:message code="stat_time"/></th>
</tr>
</thead>
<tbody>
<c:forEach var="entry" items="${ipActiveList }" varStatus="status">
<tr>
<td>${entry.ipAddr }</td>
<td>
<c:forEach items="${fns:getDictList('AREA_NAME')}" var="dic">
<c:choose>
<c:when test="${dic.itemCode eq entry.areaId}">
<spring:message code="${dic.itemValue}"/>
</c:when>
</c:choose>
</c:forEach>
</td>
<td>${entry.c2sByteLen }</td>
<td>${entry.s2cByteLen }</td>
<td>${entry.s2cByteLen+entry.c2sByteLen }</td>
<td>${entry.linkNum }</td>
<td>${entry.c2sPktNum }</td>
<td>${entry.s2cPktNum }</td>
<td>${entry.s2cPktNum+entry.c2sPktNum}</td>
<td>${entry.statTime }</td>
<%-- <td><fmt:formatDate value="${entry.statTime }" pattern="yyyy-MM-dd HH:mm:ss"/></td> --%>
</tr>
</c:forEach>
<tbody id="tbodyData">
</tbody>
</table>
<%-- <div class="page">${page}</div> --%>
@@ -93,9 +98,58 @@
<%-- <script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/themes/grid.js"></script> --%>
<script type="text/javascript">
$(document).ready(function(){
ipActiveMinuteList()
var starth=$("#beginDateh").val();
var endh=$("#endDateh").val();
$("#beginDate").val(starth);
$("#endDate").val(endh);
ipActiveMinuteList(starth,endh);
ipActiveOneHourList(starth,endh);
//筛选功能初始化
$("#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",'');
$("#searchForm")[0].reset();
});
});
function searchList(){
var start=$("#beginDate").val();
var end=$("#endDate").val();
// IF(!CHECKDATE(START,END)){
// RETURN FALSE
// }
loading();
if(start==''||end==''||end==null||start==null){
window.location.reload();
}else{
ipActiveMinuteList(start,end);
ipActiveOneHourList(start,end);
}
}
function checkDate(start,end){
if(getDate(start)-getDate(end)>0){
alert("结束时间不能小于开始时间!");
return false;
}
}
function getDate(date){
var dates = date.split("-");
var dateReturn = '';
for(var i=0; i<dates.length; i++){
dateReturn+=dates[i];
}
return dateReturn;
}
function showIpActiveChart(rs){
var data=new Array();
@@ -167,22 +221,76 @@ function showIpActiveChart(rs){
});
}
//活跃IP一小时间隔五分钟统计
function ipActiveMinuteList(){
function ipActiveMinuteList(beginDate,endDate){
loading();
$.ajax({
url: '${ctx}/dashboard/ipActiveMinuteList',
type : "get" ,
dataType:"json",
cache:false,async:true,
data:{"beginDate":beginDate,"endDate":endDate},
cache:false,
async:false,
timeout:40000,
success:function (rs) {
showIpActiveChart(rs);
$("#tbodyData").html("");
if(rs!=null&&rs.length>0){
showIpActiveChart(rs);
}
closeTip();
},
error: function(data, textStatus, errorThrown){
closeTip();
// warning_prompt("获取实时列表数据失败!",1500);
},
complete:function(XMLHttpRequest,status){//超时设置
closeTip();
}
});
}
//活跃IP一小时统计
function ipActiveOneHourList(beginDate,endDate){
loading();
$.ajax({
url: '${ctx}/dashboard/ajaxIpActiveList',
type : "get" ,
dataType:"json",
data:{"beginDate":beginDate,"endDate":endDate},
cache:false,
async:false,
timeout:40000,
success:function (data) {
$("#tbodyData").html("");
if(data!=null&&data.length>0){
$(data).each(function(i, rs) {
var byteNum=rs.s2cByteLen+rs.c2sByteLen;
var packetNum=rs.s2cPktNum+rs.c2sPktNum;
var html = "<tr>";
html+= "<td class='tc'>"+rs.ipAddr+"</td>";
html+= "<td class='tc'>"+(rs.areaId==1? "Astana":"Alamty")+"</td>";
html+= "<td class='tc'>"+rs.c2sByteLen+"</td>";
html+= "<td class='tc'>"+rs.s2cByteLen+"</td>";
html+= "<td class='tc'>"+byteNum+"</td>";
html+= "<td class='tc'>"+rs.linkNum+"</td>";
html+= "<td class='tc'>"+rs.c2sPktNum+"</td>";
html+= "<td class='tc'>"+rs.s2cPktNum+"</td>";
html+= "<td class='tc'>"+packetNum+"</td>";
html+= "<td class='tc'>"+rs.statTime+"</td>";
html+="</tr>"
$("#tbodyData").append(html);
})
}
closeTip();
},
error: function(data, textStatus, errorThrown){
closeTip();
// warning_prompt("获取实时列表数据失败!",1500);
},
complete:function(XMLHttpRequest,status){//超时设置
closeTip();
}
});
}

View File

@@ -33,7 +33,7 @@
<span class="selectpicker form-control" ><spring:message code="begin_date"/></span>
</div>
<input id="beginDate" name="beginDate" type="text" readonly="readonly" class="form-control Wdate input-medium"
value="" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,maxDate:'${endDate}'});"/>
value="" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,maxDate:'#F{$dp.$D(\'endDate\')}'});"/>
</div>
</div>
<div class="pull-left">
@@ -42,7 +42,7 @@
<span class="selectpicker form-control" ><spring:message code="end_date"/></span>
</div>
<input id="endDate" name="endDate" type="text" readonly="readonly" class="form-control Wdate input-medium"
value="" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,maxDate:'${endDate}'});"/>
value="" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,minDate:'#F{$dp.$D(\'beginDate\')}',maxDate:'${endDate}'});"/>
</div>
</div>

View File

@@ -21,7 +21,7 @@ p{
display: inline-block;
}
.data_content .data_info .info_2{
width: 70%;
width: 75%;
height: 110px;
}
@@ -67,7 +67,7 @@ p{
}
.data_content .data_info .info_1{
width: 30%;
width: 25%;
height: 110px;
}
.data_content .data_info .info_2 .fr_fc:first-child{
@@ -94,7 +94,7 @@ p{
} */
.data_content .data_info>div.info_2>.text_2>div{
width: 20%;
width: 14.2%;
position: relative;
}
.data_content .data_info>div.info_1>div>div,
@@ -170,6 +170,22 @@ p{
margin-top: 2.1em;
margin-left: 0px;
}
.data_content .data_info .info_2 .fr_fc .numberRun7{
width:100%;
font-weight: 600;
font-size: 16px;
color:#288dce;
margin-top: 2.1em;
margin-left: 0px;
}
.data_content .data_info .info_2 .fr_fc .numberRun8{
width:100%;
font-weight: 600;
font-size: 16px;
color:#288dce;
margin-top: 2.1em;
margin-left: 0px;
}
.data_content .data_info .info_2 .fr_fc .numberRun{
width:100%;
font-weight: 600;