Merge branch 'develop' of http://192.168.10.125/k18_web/NFS.git into develop

This commit is contained in:
zhangwq
2018-12-11 10:46:21 +08:00
13 changed files with 709 additions and 472 deletions

View File

@@ -37,7 +37,6 @@ import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
import org.apache.http.util.EntityUtils;
import org.apache.log4j.Logger;
import com.google.gson.Gson;
import com.nis.exceptions.MaatConvertException;
import com.nis.util.Constants;
import com.nis.util.Encodes;
@@ -69,10 +68,9 @@ public class HttpClientUtil {
URIBuilder uriBuilder = new URIBuilder(destUrl);
System.err.println(uriBuilder);
url=uriBuilder.toString();
logger.info("流量统计数据请求路径:"+url);
logger.debug("流量统计数据请求路径:"+url);
//创建连接
WebTarget wt = ClientUtil.getWebTarger(url);
logger.info("getMsg url:"+url);
//获取响应结果
Builder header = wt.request(MediaType.APPLICATION_JSON).header("Content-Type", MediaType.APPLICATION_JSON);
response= header.get();
@@ -80,10 +78,10 @@ public class HttpClientUtil {
if (status == HttpStatus.SC_OK) {
result= response.readEntity(String.class);
//调用处理数据方法
logger.info("获取消息成功,相应内容如下: " + result);
logger.debug("获取消息成功,相应内容如下: " + result);
} else {
logger.error("获取消息失败,相应内容如下: " + result);
throw new ConnectException("流量统计服务接口连接错误"+result);
logger.error("获取消息失败,相应内容如下: " + response);
throw new ConnectException("流量统计服务接口连接错误"+response);
}
} catch (Exception e) {
throw e;
@@ -276,9 +274,9 @@ public class HttpClientUtil {
//调用处理数据方法
result = galaxyMessageFormat(result);
if(!StringUtil.isEmpty(result) && result.length() > 501) {
logger.info("获取消息成功,相应内容如下: " + result.substring(0, 500));
logger.debug("获取消息成功,相应内容如下: " + result.substring(0, 500));
}else {
logger.info("获取消息成功,相应内容如下: " + result);
logger.debug("获取消息成功,相应内容如下: " + result);
}
} else {

View File

@@ -71,7 +71,7 @@ public class DashboardController extends BaseController{
Gson gson = new GsonBuilder().create();
fromJsonList = gson.fromJson(string, new TypeToken<Map>(){}.getType());
list = (ArrayList) fromJsonList.get("data");
logger.info("活跃端口数据"+fromJsonList);
logger.debug("活跃端口数据"+fromJsonList);
return list;
} catch (Exception e) {
e.printStackTrace();
@@ -92,7 +92,7 @@ public class DashboardController extends BaseController{
String string = HttpClientUtil.get(Constants.DASHBOARD_URL+Constants.TRAFFIC_IPACTIVE);
Gson gson = new GsonBuilder().create();
fromJsonList = gson.fromJson(string, new TypeToken<Map>(){}.getType());
logger.info("活跃IP数据"+fromJsonList);
logger.debug("活跃IP数据"+fromJsonList);
list = (ArrayList) fromJsonList.get("data");
return list;
} catch (Exception e) {
@@ -114,7 +114,7 @@ public class DashboardController extends BaseController{
String string = HttpClientUtil.get(Constants.DASHBOARD_URL+Constants.TRAFFIC_IPACTIVE_FIVEMINUTE);
Gson gson = new GsonBuilder().create();
fromJsonList = gson.fromJson(string, new TypeToken<Map>(){}.getType());
logger.info("活跃IP1小时,间隔5分钟数据"+fromJsonList);
logger.debug("活跃IP1小时,间隔5分钟数据"+fromJsonList);
list = (ArrayList) fromJsonList.get("data");
return list;
} catch (Exception e) {
@@ -163,7 +163,7 @@ public class DashboardController extends BaseController{
Gson gson = getIntGson();
fromJsonList = gson.fromJson(string, new TypeToken<Map<String, Object>>(){}.getType());
logger.info("活跃IP1小时"+fromJsonList);
logger.debug("活跃IP1小时"+fromJsonList);
ipActiveList = gson.fromJson(fromJsonList.get("data").toString(), new TypeToken<List<TrafficIpActiveStatistic>>() {}.getType()) ;
} catch (Exception e) {
e.printStackTrace();
@@ -246,7 +246,7 @@ public class DashboardController extends BaseController{
}
resultList.add(map);
}
logger.info("协议统计"+fromJsonList);
logger.debug("协议统计"+fromJsonList);
return resultList;
}
} catch (Exception e) {
@@ -285,7 +285,7 @@ public class DashboardController extends BaseController{
}
resultList.add(map);
}
logger.info("app流量分析"+fromJsonList);
logger.debug("app流量分析"+fromJsonList);
return resultList;
}
} catch (Exception e) {
@@ -324,7 +324,7 @@ public class DashboardController extends BaseController{
}
resultList.add(map);
}
logger.info("终端用户-获取操作系统列表"+fromJsonList);
logger.debug("终端用户-获取操作系统列表"+fromJsonList);
return resultList;
}
} catch (Exception e) {
@@ -382,7 +382,7 @@ public class DashboardController extends BaseController{
resultList.add(map);
}
}
logger.info("终端用户-获取操作系统下浏览器类型"+fromJsonList);
logger.debug("终端用户-获取操作系统下浏览器类型"+fromJsonList);
return resultList;
} catch (Exception e) {
e.printStackTrace();
@@ -421,7 +421,7 @@ public class DashboardController extends BaseController{
resultList.add(map);
}
}
logger.info("终端用户-获取浏览器列表"+fromJsonList);
logger.debug("终端用户-获取浏览器列表"+fromJsonList);
return resultList;
} catch (Exception e) {
e.printStackTrace();
@@ -478,7 +478,7 @@ public class DashboardController extends BaseController{
resultList.add(map);
}
}
logger.info("终端用户-获取浏览器下操作系统类型"+fromJsonList);
logger.debug("终端用户-获取浏览器下操作系统类型"+fromJsonList);
return resultList;
} catch (Exception e) {
e.printStackTrace();
@@ -523,7 +523,7 @@ public class DashboardController extends BaseController{
resultList.add(map);
}
}
logger.info("http网站流量分析数据"+fromJsonList);
logger.debug("http网站流量分析数据"+fromJsonList);
return resultList;
} catch (Exception e) {
e.printStackTrace();
@@ -573,7 +573,7 @@ public class DashboardController extends BaseController{
}
}
logger.info("http某个网站子域名流量统计"+fromJsonList);
logger.debug("http某个网站子域名流量统计"+fromJsonList);
return resultList;
} catch (Exception e) {
e.printStackTrace();
@@ -640,7 +640,7 @@ public class DashboardController extends BaseController{
resultList.add(map);
}
}
logger.info("http网站主题流量分析数据"+fromJsonList);
logger.debug("http网站主题流量分析数据"+fromJsonList);
return resultList;
} catch (Exception e) {
e.printStackTrace();

View File

@@ -1,8 +1,12 @@
package com.nis.web.controller.dashboard;
import java.lang.reflect.Type;
import java.net.URLEncoder;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -31,6 +35,7 @@ import com.google.gson.reflect.TypeToken;
import com.nis.domain.PageLog;
import com.nis.domain.dashboard.TrafficIpActiveStatistic;
import com.nis.util.Constants;
import com.nis.util.DateUtil;
import com.nis.util.StringUtil;
import com.nis.util.httpclient.HttpClientUtil;
import com.nis.web.controller.BaseController;
@@ -93,7 +98,7 @@ public class TrafficStatisticsInfoController extends BaseController {
m.put("inoctetsNum", inoctetsNum);
m.put("outoctetsNum", outoctetsNum);
logger.info("统计流量信息数据"+fromJsonList);
logger.debug("统计流量信息数据"+fromJsonList);
return m;
} catch (Exception e) {
e.printStackTrace();
@@ -103,7 +108,14 @@ public class TrafficStatisticsInfoController extends BaseController {
}
@RequestMapping(value="bandwidthList")
public String bandwidthList( HttpServletRequest request, HttpServletResponse response, Model model){
public String bandwidthList(Model model){
Calendar cal = Calendar. getInstance ();
cal.setTime(new Date());
String now = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" ).format(cal.getTime());//获取到完整的时间
cal.set(Calendar.HOUR_OF_DAY, cal.get(Calendar.HOUR_OF_DAY) - 1);
String oneHoursAgo = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" ).format(cal.getTime());
model.addAttribute("beginDate", oneHoursAgo);
model.addAttribute("endDate", now);
return "/dashboard/trafficBandwidthList";
}
/**
@@ -128,7 +140,7 @@ public class TrafficStatisticsInfoController extends BaseController {
String string = HttpClientUtil.get(url);
Gson gson = new GsonBuilder().create();
fromJsonList = gson.fromJson(string, new TypeToken<Map>(){}.getType());
logger.info(searchAction+"动作间隔5分钟数据"+fromJsonList);
logger.debug(searchAction+"动作间隔5分钟数据"+fromJsonList);
resultList = (ArrayList) fromJsonList.get("data");
} catch (Exception e) {
e.printStackTrace();
@@ -156,7 +168,7 @@ public class TrafficStatisticsInfoController extends BaseController {
String string = HttpClientUtil.get(url);
Gson gson = new GsonBuilder().create();
fromJsonList = gson.fromJson(string, new TypeToken<Map>(){}.getType());
logger.info("带宽1小时,间隔5分钟数据"+fromJsonList);
logger.debug("带宽1小时,间隔5分钟数据"+fromJsonList);
List list = (ArrayList) fromJsonList.get("data");
if(!StringUtil.isEmpty(list)){
map=(Map) list.get(0);
@@ -180,15 +192,20 @@ public class TrafficStatisticsInfoController extends BaseController {
*/
@RequestMapping(value="protocolList")
@ResponseBody
public List protocolList(){
public List protocolList(Model model,@RequestParam(required=false)String searchFoundStartTime,@RequestParam(required=false)String searchFoundEndTime){
Map<String, Object> fromJsonList = new HashMap<String, Object>();
List list = new ArrayList();
String url = Constants.DASHBOARD_URL+Constants.TRAFFIC_PROTOCOL_LIST;
try {
if(!StringUtil.isBlank(searchFoundStartTime)&&!StringUtil.isBlank(searchFoundEndTime)){
searchFoundStartTime=URLEncoder.encode(searchFoundStartTime, "UTF-8");
searchFoundEndTime=URLEncoder.encode(searchFoundEndTime, "UTF-8");
url+="?searchFoundStartTime="+searchFoundStartTime+"&searchFoundEndTime="+searchFoundEndTime;
}
String string = HttpClientUtil.get(url);
Gson gson = new GsonBuilder().create();
fromJsonList = gson.fromJson(string, new TypeToken<Map>(){}.getType());
logger.info("协议详情5分钟数据"+fromJsonList);
logger.debug("协议详情5分钟数据"+fromJsonList);
list = (ArrayList) fromJsonList.get("data");
Long totalLink=0l;
Long totalPackets=0l;
@@ -229,19 +246,24 @@ public class TrafficStatisticsInfoController extends BaseController {
return "/dashboard/trafficAppTypeList";
}
/**
* 协议详情统计图跟表
* App详情统计图跟表
*/
@RequestMapping(value="appList")
@ResponseBody
public List appList(){
public List appList(@RequestParam(value="searchFoundStartTime",required=false)String searchFoundStartTime,@RequestParam(value="searchFoundEndTime",required=false)String searchFoundEndTime){
Map<String, Object> fromJsonList = new HashMap<String, Object>();
List list = new ArrayList();
String url = Constants.DASHBOARD_URL+Constants.TRAFFIC_APP_LIST;
try {
if(!StringUtil.isBlank(searchFoundStartTime)&&!StringUtil.isBlank(searchFoundEndTime)){
searchFoundStartTime=URLEncoder.encode(searchFoundStartTime, "UTF-8");
searchFoundEndTime=URLEncoder.encode(searchFoundEndTime, "UTF-8");
url+="?searchFoundStartTime="+searchFoundStartTime+"&searchFoundEndTime="+searchFoundEndTime;
}
String string = HttpClientUtil.get(url);
Gson gson = new GsonBuilder().create();
fromJsonList = gson.fromJson(string, new TypeToken<Map>(){}.getType());
logger.info("app详情5分钟数据"+fromJsonList);
logger.debug("app详情5分钟数据"+fromJsonList);
list = (ArrayList) fromJsonList.get("data");
Long totalLink=0l;
Long totalPackets=0l;

View File

@@ -31,8 +31,12 @@ public interface CommonPolicyDao {
public void deleteComplexStringCfg(CfgIndexInfo entity);
public void updateCfgValid(BaseCfg entity);
public void auditCfg(BaseCfg entity);
public List<CfgIndexInfo> getHttpUrlCfgBySourceCompileId(@Param("compileIds")List compileIds);
public void auditCfgBatch(@Param("tableName")String tableName,
@Param("entity")BaseCfg baseCfg,
@Param("compileIds")List compileIds,
@Param("requestId")Integer requestId);
public void deleteHttpUrlCfg(@Param("tableName")String tableName,
@Param("entity")BaseCfg baseCfg,
@Param("compileIds")List compileIds);
}

View File

@@ -784,4 +784,27 @@
</where>
</if>
</update>
<update id="deleteHttpUrlCfg">
update ${tableName} set is_valid =-1,is_audit = 0,
editor_id = #{entity.auditorId,jdbcType=INTEGER},
edit_time = #{entity.auditTime,jdbcType=TIMESTAMP}
<where>
and compile_id in
<foreach collection="compileIds" index="index" item="compileId" open="(" separator="," close=")">
#{compileId}
</foreach>
</where>
</update>
<select id="getHttpUrlCfgBySourceCompileId" resultMap="CfgIndexInfoMap">
SELECT
<include refid="ConfigIndex_Column" />
FROM cfg_index_info a
<where>
and source_compile_id in
<foreach collection="compileIds" index="index" item="compileId" open="(" separator="," close=")">
#{compileId}
</foreach>
</where>
</select>
</mapper>

View File

@@ -100,6 +100,37 @@ public class CommonPolicyService extends CrudService<WebsiteCfgDao, CfgIndexInfo
}
if(!StringUtil.isEmpty(compileIds) && !StringUtil.isEmpty(entity.getTableName())) {
List auditHttpCompileIds= new ArrayList();
List deleteHttpCompileIds= new ArrayList();
//http关键字配置失效获取与其匹配的http url配置
if(entity.getServiceId().equals(152) || entity.getServiceId().equals(40)) {
List<CfgIndexInfo> httpUrlCfgs=commonPolicyDao.getHttpUrlCfgBySourceCompileId(compileIds);
if(!StringUtil.isEmpty(httpUrlCfgs)) {
for (CfgIndexInfo httpUrlCfg: httpUrlCfgs) {
//审核通过的
if(httpUrlCfg.getIsValid().equals(1) && httpUrlCfg.getIsAudit().equals(1)) {
auditHttpCompileIds.add(httpUrlCfg.getCompileId());
maatCfg = new MaatCfg();
maatCfg.setCompileId(httpUrlCfg.getCompileId());
maatCfg.setServiceId(httpUrlCfg.getServiceId());
maatCfg.setIsValid(0);//无效
configCompileList.add(maatCfg);
}
//未审核或者审核未通过的
if(httpUrlCfg.getIsValid().equals(0) && (httpUrlCfg.getIsAudit().equals(0) || httpUrlCfg.getIsAudit().equals(2))) {
deleteHttpCompileIds.add(httpUrlCfg.getCompileId());
}
}
}
}
if(!StringUtil.isEmpty(auditHttpCompileIds)) {
commonPolicyDao.auditCfgBatch("cfg_index_info", entity,auditHttpCompileIds,null);
commonPolicyDao.auditCfgBatch("http_url_cfg", entity,auditHttpCompileIds,null);
}
if(!StringUtil.isEmpty(deleteHttpCompileIds)) {
commonPolicyDao.deleteHttpUrlCfg("cfg_index_info", entity,deleteHttpCompileIds);
commonPolicyDao.deleteHttpUrlCfg("http_url_cfg", entity,deleteHttpCompileIds);
}
commonPolicyDao.auditCfgBatch( entity.getTableName(), entity,compileIds,null);
}

View File

@@ -1351,8 +1351,8 @@ traffic=Traffic
ip_info=IP Info
original_dest_ip=Original destination address
original_dest_port=Original destination port
translated_dest_ip=Post-translational destination address
translated_dest_port=Post-translational destination port
translated_dest_ip=Translated destination address
translated_dest_port=Translated destination port
show_ips=View all IP
show_available_ips=View available IP
log_search_http_monit=HTTP Monitor

View File

@@ -1344,19 +1344,22 @@ crl_file=\u0424\u0430\u0439\u043B Crl
equal_password=\u041D\u0435\u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u043F\u0430\u0440\u043E\u043B\u0438!
cgi_failed=CGL \u0441\u0435\u0440\u0432\u0435\u0440
ip_check=\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u044B\u0439 IP-\u0430\u0434\u0440\u0435\u0441
user_type=User Type
policy_vpn_user=VPN access user name
policy_sipv4_user=Three tier access to IP(IPv4)
policy_sipv6_user=Three tier access to IP(IPv6)
user_type=\u0422\u0438\u043F \u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439
policy_vpn_user=\u0418\u043C\u044F \u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F VPN \u0414\u043E\u0441\u0442\u0443\u043F\u0430
policy_sipv4_user=\u0422\u0440\u0435\u0445\u0443\u0440\u043E\u0432\u043D\u0435\u0432\u044B\u0439 \u0414\u043E\u0441\u0442\u0443\u043F \u043A IP (IPv4)
policy_sipv6_user=\u0422\u0440\u0435\u0445\u0443\u0440\u043E\u0432\u043D\u0435\u0432\u044B\u0439 \u0414\u043E\u0441\u0442\u0443\u043F \u043A IP (IPv6)
creat_time=\u0412\u0440\u0435\u043C\u044F \u0421\u043E\u0437\u0434\u0430\u043D\u0438\u044F
close_time=\u0412\u0440\u0435\u043C\u044F \u041E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F
nat_ip=\u041F\u043E\u0432\u0442\u043E\u0440\u043D\u044B\u0439 \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u044B\u0439 IP-\u0430\u0434\u0440\u0435\u0441
traffic=\u0422\u0440\u0430\u0444\u0438\u043A
ip_info=IP Info
original_dest_ip=Original destination address
original_dest_port=Original destination port
translated_dest_ip=Post-translational destination address
translated_dest_port=Post-translational destination port
show_ips=View all IP
show_available_ips=View available IP
log_search_http_monit=HTTP Monitor
log_search_http_reject=HTTP Block
log_search_keyword_monit=Keyword Monitor
log_search_keyword_reject=Keyword Block
ip_info=IP \u0418\u043D\u0444\u043E
original_dest_ip=\u041E\u0440\u0438\u0433\u0438\u043D\u0430\u043B\u044C\u043D\u044B\u0439 \u0410\u0434\u0440\u0435\u0441 \u041D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F
original_dest_port=\u041E\u0440\u0438\u0433\u0438\u043D\u0430\u043B\u044C\u043D\u044B\u0439 \u041F\u043E\u0440\u0442 \u041D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F
translated_dest_ip=\u041F\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043D\u043D\u044B\u0439 \u0410\u0434\u0440\u0435\u0441 \u041D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F
translated_dest_port=\u041F\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043D\u043D\u044B\u0439 \u041F\u043E\u0440\u0442 \u041D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F
show_ips=\u041F\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C \u0412\u0441\u0435 IP
show_available_ips=\u041F\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C \u0414\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0439 IP
log_search_http_monit=HTTP \u041C\u043E\u043D\u0438\u0442\u043E\u0440\u0438\u043D\u0433
log_search_http_reject=HTTP \u0411\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435
log_search_keyword_monit=\u041C\u043E\u043D\u0438\u0442\u043E\u0440\u0438\u043D\u0433 \u041A\u043B\u044E\u0447\u0435\u0432\u044B\u0445 \u0421\u043B\u043E\u0432
log_search_keyword_reject=\u0411\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u041A\u043B\u044E\u0447\u0435\u0432\u044B\u0445 \u0421\u043B\u043E\u0432

View File

@@ -0,0 +1,156 @@
/*
Navicat MySQL Data Transfer
Source Server : 192.168.10.204_3306
Source Server Version : 50505
Source Host : 192.168.10.204:3306
Source Database : gwall_dev
Target Server Type : MYSQL
Target Server Version : 50505
File Encoding : 65001
Date: 2018-12-09 19:38:47
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for code_protocol_type_dic
-- ----------------------------
DROP TABLE IF EXISTS `code_protocol_type_dic`;
CREATE TABLE `code_protocol_type_dic` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`protocol_type` varchar(255) DEFAULT '',
`view_code` varchar(255) DEFAULT NULL,
`service_id` int(11) DEFAULT NULL,
`remarks` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=124 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of code_protocol_type_dic
-- ----------------------------
INSERT INTO `code_protocol_type_dic` VALUES ('1', '超出协议范筹', '0', null, '');
INSERT INTO `code_protocol_type_dic` VALUES ('2', 'TCP', '10001', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('3', 'UDP', '10002', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('4', 'DNS', '10003', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('5', 'FTP', '10004', '105', '');
INSERT INTO `code_protocol_type_dic` VALUES ('6', 'FTPS', '10005', '105', '');
INSERT INTO `code_protocol_type_dic` VALUES ('7', 'GRE', '10006', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('8', 'HTTP', '10007', '104', '行为见行为类型sheet\nHTTP Streaming\nMobile_HTTP_Streaming\nHTTP_File_Transfer\nHTTP_Browsing\nMobile_HTTP_Browsing\nHTTP DownloadManager\nHTTP_Audio\nMobile_HTTP_DownloadManager HTTP TUNNEL');
INSERT INTO `code_protocol_type_dic` VALUES ('9', 'HTTPS', '10008', '104', '');
INSERT INTO `code_protocol_type_dic` VALUES ('10', 'ICMP', '10009', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('11', 'IKE', '10010', '102', '');
INSERT INTO `code_protocol_type_dic` VALUES ('12', 'IMAP', '10011', '106', '');
INSERT INTO `code_protocol_type_dic` VALUES ('13', 'IMAPS', '10012', '106', '');
INSERT INTO `code_protocol_type_dic` VALUES ('14', 'IPSEC', '10013', '102', '');
INSERT INTO `code_protocol_type_dic` VALUES ('15', 'XMPP', '10014', '101', '');
INSERT INTO `code_protocol_type_dic` VALUES ('16', 'L2TP', '10015', '103', '');
INSERT INTO `code_protocol_type_dic` VALUES ('17', 'NTP', '10016', '112', '');
INSERT INTO `code_protocol_type_dic` VALUES ('18', 'POP3', '10017', '106', '');
INSERT INTO `code_protocol_type_dic` VALUES ('19', 'POP3 SSL', '10018', '106', '');
INSERT INTO `code_protocol_type_dic` VALUES ('20', 'PPTP', '10019', '103', '');
INSERT INTO `code_protocol_type_dic` VALUES ('21', 'Quic', '10020', '104', '');
INSERT INTO `code_protocol_type_dic` VALUES ('22', 'SIP', '10021', '101', '');
INSERT INTO `code_protocol_type_dic` VALUES ('23', 'smb', '10022', '112', '');
INSERT INTO `code_protocol_type_dic` VALUES ('24', 'SMTP', '10023', '106', '');
INSERT INTO `code_protocol_type_dic` VALUES ('25', 'SMTPS', '10024', '106', '');
INSERT INTO `code_protocol_type_dic` VALUES ('26', 'SPDY', '10025', '104', 'google tcp');
INSERT INTO `code_protocol_type_dic` VALUES ('27', 'SSH', '10028', '109', '');
INSERT INTO `code_protocol_type_dic` VALUES ('28', 'SSL', '10029', '104', '');
INSERT INTO `code_protocol_type_dic` VALUES ('29', 'SOCKS', '10030', '108', 'procy');
INSERT INTO `code_protocol_type_dic` VALUES ('30', 'BITTORRENT', '10031', '105', '');
INSERT INTO `code_protocol_type_dic` VALUES ('31', 'RTSP', '10032', '110', '');
INSERT INTO `code_protocol_type_dic` VALUES ('32', 'TELNET', '10033', '109', '');
INSERT INTO `code_protocol_type_dic` VALUES ('33', 'UTP', '10034', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('34', 'FASTTRACK', '10035', '105', '');
INSERT INTO `code_protocol_type_dic` VALUES ('35', 'SKINNY', '10036', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('36', 'IAX', '10037', '114', '');
INSERT INTO `code_protocol_type_dic` VALUES ('37', 'MGCP', '10038', '114', '');
INSERT INTO `code_protocol_type_dic` VALUES ('38', 'RTCP', '10039', '114', '');
INSERT INTO `code_protocol_type_dic` VALUES ('39', 'RTP', '10040', '114', '');
INSERT INTO `code_protocol_type_dic` VALUES ('40', 'VNC', '10041', '109', '');
INSERT INTO `code_protocol_type_dic` VALUES ('41', 'XDMCP', '10042', '109', '');
INSERT INTO `code_protocol_type_dic` VALUES ('42', 'RDP', '10043', '109', '');
INSERT INTO `code_protocol_type_dic` VALUES ('43', 'AIMINI', '10044', '105', '');
INSERT INTO `code_protocol_type_dic` VALUES ('44', 'IPP', '10045', '112', '');
INSERT INTO `code_protocol_type_dic` VALUES ('45', 'NFS', '10046', '105', '');
INSERT INTO `code_protocol_type_dic` VALUES ('46', 'TFTP', '10047', '105', '');
INSERT INTO `code_protocol_type_dic` VALUES ('47', 'BGP', '10048', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('48', 'DHCP', '10049', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('49', 'DHCPV6', '10050', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('50', 'FINGER', '10051', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('51', 'KERBEROS', '10052', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('52', 'LDAP', '10053', '112', '');
INSERT INTO `code_protocol_type_dic` VALUES ('53', 'MDNS', '10054', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('54', 'NNTP', '10055', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('55', 'SNMP', '10056', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('56', 'SSDP', '10057', '112', '');
INSERT INTO `code_protocol_type_dic` VALUES ('57', 'SYSLOG', '10058', '112', '');
INSERT INTO `code_protocol_type_dic` VALUES ('58', 'WHOIS', '10059', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('59', 'RADIUS', '10060', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('60', 'OPENVPN', '10061', '113', '');
INSERT INTO `code_protocol_type_dic` VALUES ('61', 'STUN', '10062', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('62', 'TEREDO', '10063', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('63', 'GTP', '10064', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('64', 'RTMP', '10065', '110', '');
INSERT INTO `code_protocol_type_dic` VALUES ('65', 'chargen_tcp_udp', '10066', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('66', 'llmnr_udp', '10067', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('67', 'nbns_udp', '10068', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('68', 'NETBIOS', '10069', '112', '');
INSERT INTO `code_protocol_type_dic` VALUES ('69', 'DirectDownloadLink', '10070', '105', '');
INSERT INTO `code_protocol_type_dic` VALUES ('70', 'I23V5', '10071', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('71', 'DirectConnect', '10072', '105', '');
INSERT INTO `code_protocol_type_dic` VALUES ('72', 'OFF', '10073', null, '');
INSERT INTO `code_protocol_type_dic` VALUES ('73', 'OGG', '10074', '110', '');
INSERT INTO `code_protocol_type_dic` VALUES ('74', 'MPEG', '10075', '110', '');
INSERT INTO `code_protocol_type_dic` VALUES ('75', 'IRC', '10076', '101', '');
INSERT INTO `code_protocol_type_dic` VALUES ('76', 'Jabber', '10077', '101', '');
INSERT INTO `code_protocol_type_dic` VALUES ('77', 'VRRP', '10078', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('78', 'IGMP', '10079', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('79', 'EGP', '10080', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('80', 'SCTP', '10081', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('81', 'OSPF', '10082', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('82', 'IP in IP', '10083', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('83', 'ICMPv6', '10084', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('84', 'DCE RPC', '10085', '109', '');
INSERT INTO `code_protocol_type_dic` VALUES ('85', 'NetFlow_IPFIX', '10086', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('86', 'sFlow', '10087', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('87', 'HTTP Connect (SSL over HTTP)', '10088', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('88', 'SAP', '10089', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('89', 'UPnP', '10090', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('90', 'H323', '10091', '114', '');
INSERT INTO `code_protocol_type_dic` VALUES ('91', 'Megaco', '10092', '114', '');
INSERT INTO `code_protocol_type_dic` VALUES ('92', 'bacnet', '10094', '109', '');
INSERT INTO `code_protocol_type_dic` VALUES ('93', 'bjnp', '10096', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('94', 'cgp', '10097', '109', '');
INSERT INTO `code_protocol_type_dic` VALUES ('95', 'dahua', '10098', '116', '');
INSERT INTO `code_protocol_type_dic` VALUES ('96', 'dcc', '10099', '101', '');
INSERT INTO `code_protocol_type_dic` VALUES ('97', 'kademlia', '10100', '105', '');
INSERT INTO `code_protocol_type_dic` VALUES ('98', 'lansync', '10101', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('99', 'ldap_ad', '10102', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('100', 'llp2p', '10103', '110', '');
INSERT INTO `code_protocol_type_dic` VALUES ('101', 'mfnp', '10104', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('102', 'mp2p', '10105', '105', '');
INSERT INTO `code_protocol_type_dic` VALUES ('103', 'msn_cache', '10106', '101', '');
INSERT INTO `code_protocol_type_dic` VALUES ('104', 'msn_video', '10107', '101', '');
INSERT INTO `code_protocol_type_dic` VALUES ('105', 'msnc', '10108', '105', '');
INSERT INTO `code_protocol_type_dic` VALUES ('106', 'netflow', '10109', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('107', 'notes_rpc', '10110', '13', '');
INSERT INTO `code_protocol_type_dic` VALUES ('108', 'esp', '10111', '113', '');
INSERT INTO `code_protocol_type_dic` VALUES ('109', 'fbcdn_ssl', '10112', '113', '');
INSERT INTO `code_protocol_type_dic` VALUES ('110', 'forticlient_sslvpn', '10113', '113', '');
INSERT INTO `code_protocol_type_dic` VALUES ('111', 'rfb', '10114', '109', '');
INSERT INTO `code_protocol_type_dic` VALUES ('112', 'rtmfp', '10115', '101', '');
INSERT INTO `code_protocol_type_dic` VALUES ('113', 'slp', '10117', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('114', 'steam_inhomebroadcast', '10118', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('115', 'steam_localbroadcast', '10119', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('116', 'tpkt', '10120', '114', '');
INSERT INTO `code_protocol_type_dic` VALUES ('117', 'xmpps', '10121', '101', '');
INSERT INTO `code_protocol_type_dic` VALUES ('118', 'S7COMM', '10122', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('119', 'CitrixCGP', '10123', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('120', 'ID_Protocol', '10124', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('121', 'SMTP_Secure', '10125', '106', '');
INSERT INTO `code_protocol_type_dic` VALUES ('122', 'NAT-PMP', '10126', '107', '');
INSERT INTO `code_protocol_type_dic` VALUES ('123', 'Unspecified', '268435455', null, '');

View File

@@ -0,0 +1 @@
update specific_service_cfg set is_valid=0 where cfg_type=2 and is_Valid=1 and is_leaf = 0 and spec_service_code not in(10015,10019,10061,10013);

View File

@@ -50,73 +50,72 @@ $(function () {
$("#httpUrl tbody tr").eq(i).find("td").eq(1).attr("title",urls[i]);
$("#httpUrl tbody tr").eq(i).find("td").eq(1)
.append(url);
$("#httpUrl tbody tr").eq(i).find("td").eq(2).append(
$("select[name='service']").clone()
$("#http_url_modal").find("select[name='service']").clone()
.attr("name",prefixName+"action")
.removeClass("hidden")
);
$("#httpUrl tbody tr").eq(i).find("td").eq(2).append(
$("input[name='serviceId']").clone()
$("#http_url_modal").find("input[name='serviceId']").clone()
.attr("name",prefixName+"serviceId")
.attr("value","6")
);
$("#httpUrl tbody tr").eq(i).find("td").eq(2).append(
$("input[name='cfgType']").clone()
$("#http_url_modal").find("input[name='cfgType']").clone()
.attr("name",prefixName+"cfgType")
);
$("#httpUrl tbody tr").eq(i).find("td").eq(2).append(
$("input[name='cfgRegionCode']").clone()
$("#http_url_modal").find("input[name='cfgRegionCode']").clone()
.attr("name",prefixName+"cfgRegionCode")
);
$("#httpUrl tbody tr").eq(i).find("td").eq(2).append(
$("input[name='serviceId']").clone()
$("#http_url_modal").find("input[name='serviceId']").clone()
.attr("name",prefixName+"functionId")
.attr("value","6")
);
$("#httpUrl tbody tr").eq(i).find("td").eq(3).append(
$("select[name='doLog']").clone()
$("#http_url_modal").find("select[name='doLog']").clone()
.attr("name",prefixName+"doLog")
.removeClass("hidden")
);
$("#httpUrl tbody tr").eq(i).find("td").eq(4).append(
$("select[name='exprType']").clone()
$("#http_url_modal").find("select[name='exprType']").clone()
.attr("name",prefixName+"exprType")
.removeClass("hidden")
);
$("#httpUrl tbody tr").eq(i).find("td").eq(5).append(
$("select[name='matchMethod']").clone()
$("#http_url_modal").find("select[name='matchMethod']").clone()
.attr("name",prefixName+"matchMethod")
.removeClass("hidden")
);
$("#httpUrl tbody tr").eq(i).find("td").eq(6).append(
$("input[name='isHexbin']").clone()
$("#http_url_modal").find("input[name='isHexbin']").clone()
.attr("name",prefixName+"isHexbin")
);
$("#httpUrl tbody tr").eq(i).find("td").eq(7).append(
$("input[name='requestId']").clone()
$("#http_url_modal").find("input[name='requestId']").clone()
.attr("name",prefixName+"requestId")
);
$("#httpUrl tbody tr").eq(i).find("td").eq(7).append(
$("input[name='classify']").clone()
$("#http_url_modal").find("input[name='classify']").clone()
.attr("name",prefixName+"classify")
);
$("#httpUrl tbody tr").eq(i).find("td").eq(7).append(
$("input[name='attribute']").clone()
$("#http_url_modal").find("input[name='attribute']").clone()
.attr("name",prefixName+"attribute")
);
$("#httpUrl tbody tr").eq(i).find("td").eq(7).append(
$("input[name='lable']").clone()
$("#http_url_modal").find("input[name='lable']").clone()
.attr("name",prefixName+"lable")
);
$("#httpUrl tbody tr").eq(i).find("td").eq(8).append(
$("input[name='isAreaEffective']").clone()
$("#http_url_modal").find("input[name='isAreaEffective']").clone()
.attr("name",prefixName+"isAreaEffective")
);
$("#httpUrl tbody tr").eq(i).find("td").eq(9).append(
$("input[name='sourceCompileId']").clone()
$("#http_url_modal").find("input[name='sourceCompileId']").clone()
.attr("name",prefixName+"sourceCompileId")
.attr("value",compileIds[i])
);
@@ -128,9 +127,9 @@ $(function () {
});
}
$("select").selectpicker("refresh");
$("#http_url_modal").find("select").selectpicker("refresh");
$("select[name$='.action']").each(function(){
$("#http_url_modal").find("select[name$='.action']").each(function(){
var action=$(this).val();
var objNamePrefix=$(this).attr("name").split("action")[0];
$(this).on("change", function() {
@@ -142,7 +141,7 @@ $(function () {
$("input[name='"+objNamePrefix+"cfgType']").attr("value",$("#httpUrlRegion").val());
$("input[name='"+objNamePrefix+"cfgRegionCode']").attr("value",$("#httpUrlRegion").attr("cfgRegionCode"));
}
if(action == 1){ //白名单
if(action == 1){
$("select[name='"+objNamePrefix+"doLog']").attr("value",1);
$("select[name='"+objNamePrefix+"doLog']").attr("disabled",true);
$("select[name='"+objNamePrefix+"doLog']").selectpicker("refresh");
@@ -159,7 +158,7 @@ $(function () {
$("input[name='"+objNamePrefix+"cfgType']").attr("value",$("#httpUrlRegion").val());
$("input[name='"+objNamePrefix+"cfgRegionCode']").attr("value",$("#httpUrlRegion").attr("cfgRegionCode"));
}
if(action == 1){ //白名单
if(action == 1){
$("select[name='"+objNamePrefix+"doLog']").attr("value",1);
$("select[name='"+objNamePrefix+"doLog']").attr("disabled",true);
$("select[name='"+objNamePrefix+"doLog']").selectpicker("refresh");

View File

@@ -419,7 +419,7 @@ function ajaxinfo(){
url:'${ctx}/dashboard/traffic/info',
type : "get" ,
dataType:'json',
cache:false,async:true,timeout:10000,//超时时间设置,查询接口时间过长超时
cache:false,async:true,timeout:60000,//超时时间设置,查询接口时间过长超时
success:function (data){
var loopConnNum =loopConnNum= data.loopConnNum;
var rejectNum =data.rejectNum;
@@ -545,7 +545,7 @@ function protocolList(){
url: '${ctx}/dashboard/protocol',
type : "get" ,
dataType:"json",
cache:false,async:true,timeout:10000,//超时时间设置,查询接口时间过长超时
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'/>");
@@ -568,7 +568,7 @@ function ipActiveList(){
url: '${ctx}/dashboard/ipActive',
type : "get" ,
dataType:"json",
cache:false,async:true,timeout:10000,//超时时间设置,查询接口时间过长超时
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'/>");
@@ -591,7 +591,7 @@ function portActiveList(){
url: '${ctx}/dashboard/portActive',
type : "get" ,
dataType:"json",
cache:false,async:true,timeout:10000,//超时时间设置,查询接口时间过长超时
cache:false,async:true,timeout:60000,//超时时间设置,查询接口时间过长超时
beforeSend: function () {
var msg = "OnLoading...";
@@ -651,7 +651,7 @@ function appTypeList(){
url: '${ctx}/dashboard/app',
type : "get" ,
dataType:"json",
cache:false,async:true,timeout:10000,//超时时间设置,查询接口时间过长超时
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'/>");
@@ -674,7 +674,7 @@ function systemList(){
url: '${ctx}/dashboard/osList',
type : "get" ,
dataType:"json",
cache:false,async:true,timeout:10000,//超时时间设置,查询接口时间过长超时
cache:false,async:true,timeout:60000,//超时时间设置,查询接口时间过长超时
beforeSend: function () {
var msg = "OnLoading...";
@@ -749,7 +749,7 @@ function osClick(osType,obj){
type : "get" ,
data:{"osType":osType},
dataType:"json",
cache:false,async:true,timeout:10000,//超时时间设置,查询接口时间过长超时
cache:false,async:true,timeout:60000,//超时时间设置,查询接口时间过长超时
success:function (rs) {
echart_5(rs);
@@ -770,7 +770,7 @@ function bsClick(bsType,obj){
type : "get" ,
data:{"bsType":bsType},
dataType:"json",
cache:false,async:true,timeout:10000,//超时时间设置,查询接口时间过长超时
cache:false,async:true,timeout:60000,//超时时间设置,查询接口时间过长超时
success:function (rs) {
echart_2(rs);
@@ -790,7 +790,7 @@ function browserList() {
url: '${ctx}/dashboard/bsList',
type : "get" ,
dataType:"json",
cache:false,async:true,timeout:10000,//超时时间设置,查询接口时间过长超时
cache:false,async:true,timeout:60000,//超时时间设置,查询接口时间过长超时
beforeSend: function () {
var msg = "OnLoading...";
var trLen = $("#tbodyData1 tr").length;
@@ -854,7 +854,7 @@ function websiteList() {
url: '${ctx}/dashboard/websiteList',
type : "get" ,
dataType:"json",
cache:false,async:true,timeout:10000,//超时时间设置,查询接口时间过长超时
cache:false,async:true,timeout:60000,//超时时间设置,查询接口时间过长超时
beforeSend: function () {
var msg = "OnLoading...";
var trLen = $("#tbodyData2 tr").length;
@@ -923,7 +923,7 @@ function webClick(websiteServiceId,obj){
type : "get" ,
data:{"websiteServiceId":websiteServiceId},
dataType:"json",
cache:false,async:true,timeout:10000,//超时时间设置,查询接口时间过长超时
cache:false,async:true,timeout:60000,//超时时间设置,查询接口时间过长超时
success:function (rs) {
echart_6(rs);
closeTip();
@@ -940,7 +940,7 @@ function topicAndDomainList(){
url: '${ctx}/dashboard/topicAndDomainList',
type : "get" ,
dataType:"json",
cache:false,async:true,timeout:10000,//超时时间设置,查询接口时间过长超时
cache:false,async:true,timeout:60000,//超时时间设置,查询接口时间过长超时
success:function (rs) {
//主题域名流量统计图
echart_topic_domain(rs);

View File

@@ -1,393 +1,393 @@
<%@ 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();
});
//异步获取voip相关信息
$("span[id^=open]").click(function(){
var openId=$(this).attr("id");
var closeId=$(this).attr("id").replace("open","close");
var index=$(this).attr("id").replace("open","");
$("#"+openId).hide();
$("#"+closeId).show();
var compileId=$(this).attr("compileId");
// var cfgId=$(this).attr("cfgId");
if($("#"+openId).parent().parent().next("tr").hasClass("child")){
$("#"+openId).parent().parent().next("tr").show();
}else{
$.ajax({
type:'post',
async:false,
url:'${ctx}/ntc/av/ajaxVoipIpInfo',
data:{"compileId":compileId,"index":index},
dataType:"html",
success:function(data){
var subTab="<tr class='child'>"+
"<td colspan='"+($(".table tr").eq(0).children("th").length-1)+"'>";
var html="";
html+="<div class='row'>";
html = html+data;
subTab=subTab+html;
subTab+="</td>";
subTab+="</tr>";
$("#"+openId).parent().parent().after(subTab);
$("div[name='tabTitle"+index+"']").eq(0).click();
}
});
}
});
$("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();
});
});
</script>
</head>
<body>
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
</div>
<h3 class="page-title">
<spring:message code="av_voip_control"/>
</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}/log/ntc/mmVoipIpLogs" 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="isLogTotalSearch" name="isLogTotalSearch" type="hidden" value="${log.isLogTotalSearch}"/>
<!-- 筛选按钮展开状态-->
<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="service" class="selectpicker select2 input-small">
<form:option value=""><spring:message code="action"/></form:option>
<c:forEach items="${serviceList}" var="service"
varStatus="satus">
<c:forEach items="${fns:getDictList('SERVICE_ACTION') }" var="dict">
<c:if test="${(dict.itemCode eq service.action) && (service.action ne 128) && (service.action ne 32) && (service.action ne 96) }">
<form:option value="${service.serviceId}"><spring:message code="${dict.itemValue}"/></form:option>
</c:if>
</c:forEach>
</c:forEach>
</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="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>
<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="transport_layer_protocol"/></label>
<c:set var="select"><spring:message code='select'/></c:set>
<form:select path="transProto" class="selectpicker form-control" >
<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="direction"/></label>
<form:select path="direction" class="selectpicker select2 form-control">
<form:option value=""><spring:message code="select"/></form:option>
<c:forEach items="${fns:getDictList('LOG_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 name="capIp" type="text" class="form-control" 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 class="col-md-2">
<label><spring:message code="cfg_id"></spring:message></label>
<input name="cfgId" type="text" class="form-control logCfgId number" value="${log.cfgId }"/>
</div>
</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 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 duation"><spring:message code='duation'/></th>
<th class="sort-column voip_protocol"><spring:message code='voip_protocol'/></th>
<th class="sort-column calling_account"><spring:message code='calling_account'/></th>
<th class="sort-column called_account"><spring:message code='called_account'/></th>
<th class="sort-column calling_number" isVisible="false"><spring:message code='calling_number'/></th>
<th class="sort-column called_number" isVisible="false"><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 class="sort-column pid" isVisible="false"><spring:message code='pid'/></th>
<th class="sort-column log_uri"><spring:message code='log_uri'/></th>
<th class="sort-column level" isVisible="false"><spring:message code='harm_level'/></th>
<th class="sort-column fd_type" isVisible="false"><spring:message code='fd_type'/></th>
<th class="sort-column cap_ip" isVisible="false"><spring:message code="clj_ip"/></th>
<th class="sort-column trans_proto"><spring:message code="protocol_type"/></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 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>
</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.cfgId }</td>
<td>
<c:set var="actions">${log.action }</c:set>
<c:forEach items="${fns:getDictList('SERVICE_ACTION')}" var="dict">
<c:if test="${dict.itemCode eq log.action}">
<c:set var="actions">${dict.itemValue}</c:set>
</c:if>
</c:forEach>
<spring:message code="${actions}"/>
</td>
<td>${log.foundTime }</td>
<td>${log.recvTime }</td>
<td>
<c:set var="entrances">${log.entranceId }</c:set>
<c:forEach items="${fns:getDictList('ENTRANCE')}" var="dic">
<c:if test="${dic.itemCode eq log.entranceId}">
<c:set var="entrances">${dic.itemValue}</c:set>
</c:if>
</c:forEach>
<spring:message code="${entrances}"/>
</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>
<c:if test="${fn:startsWith(log.logUri, 'http')}">
<a href="${log.logUri}" data-original-title="${log.logUri}" target="_blank"
class="tooltips" data-flag="false" data-html="true" data-placement="top">
${fn:substring(log.logUri,0,20) }
</a>
</c:if>
<c:if test="${!fn:startsWith(log.logUri, 'http') and !empty log.logUri}">
<a href="http://${log.logUri}" data-original-title="http://${log.logUri}" target="_blank"
class="tooltips" data-flag="false" data-html="true" data-placement="top">
http://${fn:substring(log.logUri,0,20) }
</a>
</c:if>
</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 title="${log.capIp }">${fns:abbr(log.capIp, 42)}</td>
<td>
<c:set var="transProtos">${log.transProto }</c:set>
<c:forEach items="${fns:getDictList('LOG_PROTOCOL')}" var="dic">
<c:if test="${dic.itemCode eq log.transProto}">
<c:set var="transProtos">${dic.itemValue}</c:set>
</c:if>
</c:forEach>
<spring:message code="${transProtos}"/>
</td>
<td>
<c:set var="addrTypes">${log.addrType }</c:set>
<c:forEach items="${fns:getDictList('IP_TYPE')}" var="dic">
<c:if test="${log.addrType==dic.itemCode}">
<c:set var="addrTypes">${dic.itemValue}</c:set>
</c:if>
</c:forEach>
<spring:message code="${addrTypes}"/>
</td>
<td title="${log.dIp }">${fns:abbr(log.dIp, 42)}</td>
<td title="${log.sIp }">${fns:abbr(log.sIp, 42)}</td>
<td>${log.dPort }</td>
<td>${log.sPort }</td>
<td>
<c:forEach items="${fns:getDictList('DEVICE')}" var="device">
<c:if test="${device.itemCode eq log.deviceId}"><spring:message code="${device.itemValue}"/></c:if>
</c:forEach>
</td>
<td>
<c:forEach items="${fns:getDictList('LINK')}" var="link">
<c:if test="${link.itemCode eq log.linkId}"><spring:message code="${link.itemValue}"/></c:if>
</c:forEach>
</td>
<td>
<c:forEach items="${fns:getDictList('ENCAP_TYPE')}" var="encapType">
<c:if test="${encapType.itemCode eq log.encapType}"><spring:message code="${encapType.itemValue}"/></c:if>
</c:forEach>
</td>
<%-- <td>
<c:forEach items="${fns:getDictList('LOG_DIRECTION')}" var="direction">
<c:if test="${direction.itemCode eq log.direction}"><spring:message code="${direction.itemValue}"/></c:if>
</c:forEach>
</td> --%>
<td>${log.innerSmac }</td>
<td>${log.innerDmac }</td>
<td>
<c:forEach items="${fns:getDictList('LOG_STREAM_TYPE')}" var="streamType">
<c:if test="${streamType.itemCode eq log.streamDir}">${streamType.itemValue}</c:if>
</c:forEach>
</td>
<td>${log.addrList }</td>
<td>${log.serverLocate}</td>
<td>${log.clientLocate}</td>
<td>${log.sAsn}</td>
<td>${log.dAsn}</td>
<td>${log.sSubscribeId}</td>
<td>${log.dSubscribeId}</td>
<td>${log.userRegion}</td>
<c:if test="${fns:getUser().isAdmin()}"><td>${log.sceneFile}</td></c:if>
</tr>
</c:forEach>
</tbody>
</table>
<div class="page">${page}</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
<%@ 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();
});
//异步获取voip相关信息
$("span[id^=open]").click(function(){
var openId=$(this).attr("id");
var closeId=$(this).attr("id").replace("open","close");
var index=$(this).attr("id").replace("open","");
$("#"+openId).hide();
$("#"+closeId).show();
var compileId=$(this).attr("compileId");
// var cfgId=$(this).attr("cfgId");
if($("#"+openId).parent().parent().next("tr").hasClass("child")){
$("#"+openId).parent().parent().next("tr").show();
}else{
$.ajax({
type:'post',
async:false,
url:'${ctx}/ntc/av/ajaxVoipIpInfo',
data:{"compileId":compileId,"index":index},
dataType:"html",
success:function(data){
var subTab="<tr class='child'>"+
"<td colspan='"+($(".table tr").eq(0).children("th").length-1)+"'>";
var html="";
html+="<div class='row'>";
html = html+data;
subTab=subTab+html;
subTab+="</td>";
subTab+="</tr>";
$("#"+openId).parent().parent().after(subTab);
$("div[name='tabTitle"+index+"']").eq(0).click();
}
});
}
});
$("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();
});
});
</script>
</head>
<body>
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
</div>
<h3 class="page-title">
<spring:message code="av_voip_control"/>
</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}/log/ntc/mmVoipIpLogs" 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="isLogTotalSearch" name="isLogTotalSearch" type="hidden" value="${log.isLogTotalSearch}"/>
<!-- 筛选按钮展开状态-->
<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="service" class="selectpicker select2 input-small">
<form:option value=""><spring:message code="action"/></form:option>
<c:forEach items="${serviceList}" var="service"
varStatus="satus">
<c:forEach items="${fns:getDictList('SERVICE_ACTION') }" var="dict">
<c:if test="${(dict.itemCode eq service.action) && (service.action ne 128) && (service.action ne 32) && (service.action ne 96) }">
<form:option value="${service.serviceId}"><spring:message code="${dict.itemValue}"/></form:option>
</c:if>
</c:forEach>
</c:forEach>
</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="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>
<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="transport_layer_protocol"/></label>
<c:set var="select"><spring:message code='select'/></c:set>
<form:select path="transProto" class="selectpicker form-control" >
<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="direction"/></label>
<form:select path="direction" class="selectpicker select2 form-control">
<form:option value=""><spring:message code="select"/></form:option>
<c:forEach items="${fns:getDictList('LOG_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 name="capIp" type="text" class="form-control" 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 class="col-md-2">
<label><spring:message code="cfg_id"></spring:message></label>
<input name="cfgId" type="text" class="form-control logCfgId number" value="${log.cfgId }"/>
</div>
</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 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>
<c:if test="${fns:getUser().isAdmin()}"><th class="sort-column duation"><spring:message code='duation'/></th></c:if>
<th class="sort-column voip_protocol"><spring:message code='voip_protocol'/></th>
<th class="sort-column calling_account"><spring:message code='calling_account'/></th>
<th class="sort-column called_account"><spring:message code='called_account'/></th>
<th class="sort-column calling_number" isVisible="false"><spring:message code='calling_number'/></th>
<th class="sort-column called_number" isVisible="false"><spring:message code='called_number'/></th>
<c:if test="${fns:getUser().isAdmin()}"><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></c:if>
<th class="sort-column pid" isVisible="false"><spring:message code='pid'/></th>
<%-- <th class="sort-column log_uri"><spring:message code='log_uri'/></th> --%>
<th class="sort-column level" isVisible="false"><spring:message code='harm_level'/></th>
<th class="sort-column fd_type" isVisible="false"><spring:message code='fd_type'/></th>
<th class="sort-column cap_ip" isVisible="false"><spring:message code="clj_ip"/></th>
<th class="sort-column trans_proto"><spring:message code="protocol_type"/></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>
<c:if test="${fns:getUser().isAdmin()}"><th class="sort-column direction"><spring:message code="direction"/></th></c:if>
<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 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>
</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.cfgId }</td>
<td>
<c:set var="actions">${log.action }</c:set>
<c:forEach items="${fns:getDictList('SERVICE_ACTION')}" var="dict">
<c:if test="${dict.itemCode eq log.action}">
<c:set var="actions">${dict.itemValue}</c:set>
</c:if>
</c:forEach>
<spring:message code="${actions}"/>
</td>
<td>${log.foundTime }</td>
<td>${log.recvTime }</td>
<td>
<c:set var="entrances">${log.entranceId }</c:set>
<c:forEach items="${fns:getDictList('ENTRANCE')}" var="dic">
<c:if test="${dic.itemCode eq log.entranceId}">
<c:set var="entrances">${dic.itemValue}</c:set>
</c:if>
</c:forEach>
<spring:message code="${entrances}"/>
</td>
<c:if test="${fns:getUser().isAdmin()}"><td>${log.duation}</td></c:if>
<td>${log.voipProtocol}</td>
<td>${log.callingAccount }</td>
<td>${log.calledAccount }</td>
<td>${log.callingNumber}</td>
<td>${log.calledNumber}</td>
<c:if test="${fns:getUser().isAdmin()}"><td>${log.fromToStoreIp}</td>
<td>${log.fromToStoreUrl}</td>
<td>${log.toFromStoreIp}</td>
<td>${log.toFromStoreUrl}</td></c:if>
<td>${log.pid}</td>
<c:if test="${fns:getUser().isAdmin()}"><td>
<c:if test="${fn:startsWith(log.logUri, 'http')}">
<a href="${log.logUri}" data-original-title="${log.logUri}" target="_blank"
class="tooltips" data-flag="false" data-html="true" data-placement="top">
${fn:substring(log.logUri,0,20) }
</a>
</c:if>
<c:if test="${!fn:startsWith(log.logUri, 'http') and !empty log.logUri}">
<a href="http://${log.logUri}" data-original-title="http://${log.logUri}" target="_blank"
class="tooltips" data-flag="false" data-html="true" data-placement="top">
http://${fn:substring(log.logUri,0,20) }
</a>
</c:if>
</td></c:if>
<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 title="${log.capIp }">${fns:abbr(log.capIp, 42)}</td>
<td>
<c:set var="transProtos">${log.transProto }</c:set>
<c:forEach items="${fns:getDictList('LOG_PROTOCOL')}" var="dic">
<c:if test="${dic.itemCode eq log.transProto}">
<c:set var="transProtos">${dic.itemValue}</c:set>
</c:if>
</c:forEach>
<spring:message code="${transProtos}"/>
</td>
<td>
<c:set var="addrTypes">${log.addrType }</c:set>
<c:forEach items="${fns:getDictList('IP_TYPE')}" var="dic">
<c:if test="${log.addrType==dic.itemCode}">
<c:set var="addrTypes">${dic.itemValue}</c:set>
</c:if>
</c:forEach>
<spring:message code="${addrTypes}"/>
</td>
<td title="${log.dIp }">${fns:abbr(log.dIp, 42)}</td>
<td title="${log.sIp }">${fns:abbr(log.sIp, 42)}</td>
<td>${log.dPort }</td>
<td>${log.sPort }</td>
<td>
<c:forEach items="${fns:getDictList('DEVICE')}" var="device">
<c:if test="${device.itemCode eq log.deviceId}"><spring:message code="${device.itemValue}"/></c:if>
</c:forEach>
</td>
<td>
<c:forEach items="${fns:getDictList('LINK')}" var="link">
<c:if test="${link.itemCode eq log.linkId}"><spring:message code="${link.itemValue}"/></c:if>
</c:forEach>
</td>
<td>
<c:forEach items="${fns:getDictList('ENCAP_TYPE')}" var="encapType">
<c:if test="${encapType.itemCode eq log.encapType}"><spring:message code="${encapType.itemValue}"/></c:if>
</c:forEach>
</td>
<c:if test="${fns:getUser().isAdmin()}"><td>
<c:forEach items="${fns:getDictList('LOG_DIRECTION')}" var="direction">
<c:if test="${direction.itemCode eq log.direction}"><spring:message code="${direction.itemValue}"/></c:if>
</c:forEach>
</td></c:if>
<td>${log.innerSmac }</td>
<td>${log.innerDmac }</td>
<td>
<c:forEach items="${fns:getDictList('LOG_STREAM_TYPE')}" var="streamType">
<c:if test="${streamType.itemCode eq log.streamDir}">${streamType.itemValue}</c:if>
</c:forEach>
</td>
<td>${log.addrList }</td>
<td>${log.serverLocate}</td>
<td>${log.clientLocate}</td>
<td>${log.sAsn}</td>
<td>${log.dAsn}</td>
<td>${log.sSubscribeId}</td>
<td>${log.dSubscribeId}</td>
<td>${log.userRegion}</td>
<c:if test="${fns:getUser().isAdmin()}"><td>${log.sceneFile}</td></c:if>
</tr>
</c:forEach>
</tbody>
</table>
<div class="page">${page}</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>