Merge branch 'develop' of https://git.mesalab.cn/K18_NTCS_WEB/NTC.git into develop

This commit is contained in:
leijun
2019-01-18 09:51:38 +08:00
23 changed files with 215 additions and 115 deletions

View File

@@ -199,7 +199,7 @@ public class BaseCfg<T> extends BaseEntity<T> implements Cloneable{
/**
* 来函
*/
@ExcelField(title="letter",sort=58)
@ExcelField(title="letter",sort=60)
protected String requestName;
/**
* 是否区域gk
@@ -209,7 +209,7 @@ public class BaseCfg<T> extends BaseEntity<T> implements Cloneable{
/**
* 分类
*/
@ExcelField(title="classification",dictType="type",sort=60)
@ExcelField(title="classification",dictType="type",sort=62)
protected String classify;
/**
* 性质

View File

@@ -43,24 +43,24 @@ public class BaseIpCfg extends BaseCfg<BaseIpCfg> {
*/
@Expose
@SerializedName("ipType")
@ExcelField(title="ip_type",dictType="IP_TYPE",sort=44)
@ExcelField(title="ip_type",dictType="IP_TYPE",sort=50)
protected Integer ipType;
@ExcelField(title="ip_pattern",dictType="IP_PATTERN",sort=45)
@ExcelField(title="ip_pattern",dictType="IP_PATTERN",sort=51)
protected Integer ipPattern;
@ExcelField(title="client_ip",sort=47)
@ExcelField(title="client_ip",sort=53)
protected String srcIpAddress;
@ExcelField(title="server_ip",sort=46)
@ExcelField(title="server_ip",sort=52)
protected String destIpAddress;
@ExcelField(title="port_pattern",dictType="PORT_PATTERN",sort=48)
@ExcelField(title="port_pattern",dictType="PORT_PATTERN",sort=54)
protected Integer portPattern;
@ExcelField(title="client_port",sort=49)
@ExcelField(title="client_port",sort=55)
protected String srcPort;
@ExcelField(title="server_port",sort=50)
@ExcelField(title="server_port",sort=56)
protected String destPort;
protected Integer dnsStrategyId;
@ExcelField(title="ir_type",dictType="IR_TYPE",sort=51)
@ExcelField(title="ir_type",dictType="IR_TYPE",sort=57)
protected Integer irType;
@ExcelField(title="group_name",sort=52)
@ExcelField(title="group_name",sort=58)
protected String groupName;
private List<NtcSubscribeIdCfg> ntcSubscribeIdCfgList;
@@ -75,7 +75,7 @@ public class BaseIpCfg extends BaseCfg<BaseIpCfg> {
protected String organization; //仅用于copy属性使用
protected String country; //仅用于copy属性使用
protected String detail; //仅用于copy属性使用
@ExcelField(title="log_total",sort=31)
@ExcelField(title="log_total",sort=42)
private Long totalLogs;
public String getOrganization() {
@@ -177,14 +177,14 @@ public class BaseIpCfg extends BaseCfg<BaseIpCfg> {
*/
@Expose
@SerializedName("direction")
@ExcelField(title="direction",dictType="DIRECTION",sort=53)
@ExcelField(title="direction",dictType="DIRECTION",sort=58)
protected Integer direction ;
/**
* 协议
*/
@Expose
@SerializedName("protocol")
@ExcelField(title="protocol",dictType="PROTOCOL",sort=54)
@ExcelField(title="protocol",dictType="PROTOCOL",sort=59)
protected Integer protocol ;
/**
* 协议ID

View File

@@ -23,29 +23,13 @@ public class DdosIpCfg extends BaseIpCfg {
*/
private static final long serialVersionUID = -5446903784736960824L;
private String indexTable="ddos_ip_cfg";
@ExcelField(title="antiddos_protocol",sort=41)
@ExcelField(title="antiddos_protocol",sort=46)
private String antiddosProtocol;//目前支持TCP_SYN, DNS, NTP
@ExcelField(title="bps_threadshold",sort=42)
@ExcelField(title="bps_threadshold",sort=47)
private Long bpsThreadshold;// 即DDoS攻击保护动作触发阈值每秒Bit数和每秒包数
@ExcelField(title="pps_threadshold",sort=43)
@ExcelField(title="pps_threadshold",sort=48)
private Long ppsThreadshold;
@ExcelField(title="log_total",sort=32)
private Long totalLogs;
@ExcelField(title="is_audit",dictType="AUDIT_STATUS",sort=20)
private Integer isAudit;
public Integer getIsAudit() {
return isAudit;
}
public void setIsAudit(Integer isAudit) {
this.isAudit = isAudit;
}
public Long getTotalLogs() {
return totalLogs;
}
public void setTotalLogs(Long totalLogs) {
this.totalLogs = totalLogs;
}
public String getAntiddosProtocol() {
return antiddosProtocol;
}

View File

@@ -24,6 +24,8 @@ public class TrafficIpActiveStatistic{
String statTime;
private String _byte;
private String _packet;
private String avgByte;
private String avgPacket;
@ExcelField(title="Byte",sort=51,type=1)
public String get_byte() {
return BigInteger.valueOf(this.getC2sByteLen()).add(BigInteger.valueOf(this.getS2cByteLen())).toString();
@@ -95,5 +97,16 @@ public class TrafficIpActiveStatistic{
public void setS2cByteLen(Long s2cByteLen) {
this.s2cByteLen = s2cByteLen;
}
public String getAvgByte() {
return avgByte;
}
public void setAvgByte(String avgByte) {
this.avgByte = avgByte;
}
public String getAvgPacket() {
return avgPacket;
}
public void setAvgPacket(String avgPacket) {
this.avgPacket = avgPacket;
}
}

View File

@@ -188,6 +188,20 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
long afterTime = after.getTime();
return (afterTime - beforeTime) / (1000 * 60 * 60 * 24);
}
/**
* 获取两个日期之间的秒数
*
* @param before
* @param after
* @return
*/
public static double getSecondsOfTwoDate(Date before, Date after) {
long beforeTime = before.getTime();
long afterTime = after.getTime();
return (afterTime - beforeTime) / (1000);
}
/**
*
*

View File

@@ -3,6 +3,7 @@ package com.nis.web.controller.dashboard;
import java.lang.reflect.Type;
import java.net.URISyntaxException;
import java.net.URLEncoder;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
@@ -248,7 +249,7 @@ public class DashboardController extends BaseController{
@ResponseBody
public List ajaxIpActiveList(String beginDate,String endDate,Integer entranceId){
Map<String, Object> fromJsonList = new HashMap<String, Object>();
List list = new ArrayList();
List<TrafficIpActiveStatistic> list = new ArrayList<TrafficIpActiveStatistic>();
try {
String url=Constants.DASHBOARD_URL+Constants.TRAFFIC_IPACTIVE_ONEHOUR;
url=urlAddDate(url, beginDate, endDate);
@@ -260,6 +261,16 @@ public class DashboardController extends BaseController{
fromJsonList = gson.fromJson(string, new TypeToken<Map<String, Object>>(){}.getType());
logger.debug("活跃IP1小时"+fromJsonList);
list = gson.fromJson(fromJsonList.get("data").toString(), new TypeToken<List<TrafficIpActiveStatistic>>() {}.getType()) ;
if(list.size()>0) {
DecimalFormat lf = new DecimalFormat("0");
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//两个时间段之间的秒数
double allSeconds = DateUtils.getSecondsOfTwoDate(sdf.parse(beginDate),sdf.parse(endDate));
for(TrafficIpActiveStatistic data:list) {
data.setAvgByte(lf.format(Integer.parseInt(data.get_byte())*8/allSeconds));
data.setAvgPacket(lf.format(Integer.parseInt(data.get_packet())/allSeconds));
}
}
Collections.sort(list, new Comparator<TrafficIpActiveStatistic>() {
@Override
@@ -282,7 +293,7 @@ public class DashboardController extends BaseController{
} catch (Exception e) {
e.printStackTrace();
logger.error("活跃IP数据获取错误"+e);
list.add(Maps.newHashMap("error","request_service_failed"));
//list.add(Maps.newHashMap("error","request_service_failed"));
}
return list;
}

View File

@@ -44,6 +44,7 @@ import com.nis.domain.dashboard.TrafficIpActiveStatistic;
import com.nis.util.CodeDicUtils;
import com.nis.util.Constants;
import com.nis.util.DateUtil;
import com.nis.util.DateUtils;
import com.nis.util.DictUtils;
import com.nis.util.StringUtil;
import com.nis.util.httpclient.HttpClientUtil;
@@ -301,6 +302,7 @@ public class TrafficStatisticsInfoController extends BaseController {
@RequestMapping(value="protocolList")
@ResponseBody
public List protocolList(Model model,Integer entranceId,Integer[] protoType,@RequestParam(required=false)String beginDate,@RequestParam(required=false)String endDate){
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Map<String, Object> fromJsonList = new HashMap<String, Object>();
List list = new ArrayList();
String url = Constants.DASHBOARD_URL+Constants.TRAFFIC_PROTOCOL_LIST;
@@ -327,6 +329,8 @@ public class TrafficStatisticsInfoController extends BaseController {
DecimalFormat lf = new DecimalFormat("0");
DecimalFormat df = new DecimalFormat("0.0000000000");
List<CodeResult> appCodeList = CodeDicUtils.getCodeList("appCode");
//两个时间段之间的秒数
double allSeconds = DateUtils.getSecondsOfTwoDate(sdf.parse(beginDate),sdf.parse(endDate));
if(!StringUtil.isEmpty(list)){
for (Object object : list) {
Map m=(Map) object;
@@ -336,6 +340,10 @@ public class TrafficStatisticsInfoController extends BaseController {
m.put("GByte", df.format(m.get("GByte")));
m.put("packets", lf.format(m.get("packets")));
m.put("linkNum", lf.format(m.get("linkNum")));
double avgPacket=Double.parseDouble(m.get("packets").toString())/allSeconds;
m.put("pps",lf.format(avgPacket));
double avgByte=Double.parseDouble(m.get("GByte").toString())*1024*1024*1024*8/allSeconds;
m.put("bps",lf.format(avgByte));
totalLink+=Long.parseLong( m.get("linkNum").toString());
totalPackets+=Long.parseLong(m.get("packets").toString());
// 协议没匹配的匹配app码表
@@ -407,6 +415,9 @@ public class TrafficStatisticsInfoController extends BaseController {
Double totalGByte=0d;
DecimalFormat lf = new DecimalFormat("0");
DecimalFormat df = new DecimalFormat("0.0000000000");
//两个时间段之间的秒数
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
double allSeconds = DateUtils.getSecondsOfTwoDate(sdf.parse(beginDate),sdf.parse(endDate));
if(!StringUtil.isEmpty(list)){
for (Object object : list) {
Map m=(Map) object;
@@ -417,6 +428,11 @@ public class TrafficStatisticsInfoController extends BaseController {
m.put("linkNum", lf.format(m.get("linkNum")));
totalLink+=Long.parseLong( m.get("linkNum").toString());
totalPackets+=Long.parseLong(m.get("packets").toString());
double avgPacket=Double.parseDouble(m.get("packets").toString())/allSeconds;
m.put("pps",lf.format(avgPacket));
double avgByte=Double.parseDouble(m.get("GByte").toString())*1024*1024*1024*8/allSeconds;
m.put("bps",lf.format(avgByte));
}
for (Object object : list) {
Map m=(Map) object;
@@ -485,7 +501,7 @@ public class TrafficStatisticsInfoController extends BaseController {
@ResponseBody
public List ajaxAppTopList(String beginDate,String endDate,Integer appType,Integer entranceId,Integer searchQuota,Model model){
Map<String, Object> fromJsonList = new HashMap<String, Object>();
List list = new ArrayList();
List<Map> list = new ArrayList<Map>();
try {
String url=Constants.DASHBOARD_URL+Constants.APPCONN_RECORD_TOP100;
URIBuilder uriBuilder = new URIBuilder(url);
@@ -508,7 +524,18 @@ public class TrafficStatisticsInfoController extends BaseController {
fromJsonList = gson.fromJson(string, new TypeToken<Map<String, Object>>(){}.getType());
logger.debug("app列表Top100"+fromJsonList);
list = (ArrayList) fromJsonList.get("data");
if(list.size()>0) {
//两个时间段之间的秒数
DecimalFormat dl = new DecimalFormat("0");
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
double allSeconds = DateUtils.getSecondsOfTwoDate(sdf.parse(beginDate),sdf.parse(endDate));
for(Map m:list) {
double avgPacket=Double.parseDouble(m.get("pktNum").toString())/allSeconds;
m.put("pps",dl.format(avgPacket));
double avgByte=Double.parseDouble(m.get("byteNum").toString())*8/allSeconds;
m.put("bps",dl.format(avgByte));
}
}
} catch (Exception e) {
e.printStackTrace();
logger.error("app列表Top100"+e);
@@ -610,6 +637,9 @@ public class TrafficStatisticsInfoController extends BaseController {
// Double totalLink=0d;
Double totalGbyte=0d;
Double totalPackets=0d;
//两个时间段之间的秒数
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
double allSeconds = DateUtils.getSecondsOfTwoDate(sdf.parse(beginDate),sdf.parse(endDate));
for (Object object : list) {
Map m=(Map)object;
Double count=(Double)m.get("byteCount");
@@ -618,6 +648,11 @@ public class TrafficStatisticsInfoController extends BaseController {
totalPackets+=(Double)m.get("pktCount");
String format = df.format(count/1024/1024/1024);
m.put("Gbyte", format);
double avgPacket=Double.parseDouble(m.get("pktCount").toString())/allSeconds;
m.put("pps",dl.format(avgPacket));
double avgByte=Double.parseDouble(m.get("byteCount").toString())*8/allSeconds;
m.put("bps",dl.format(avgByte));
}
List<WebsiteDomainTopic> codeList = appCfgService.getDomainDict(new WebsiteDomainTopic());
Map<Long, String> map = new HashMap<Long,String>();
@@ -687,12 +722,19 @@ public class TrafficStatisticsInfoController extends BaseController {
Long totalPackets=0l;
Double totalGByte=0d;
DecimalFormat lf = new DecimalFormat("0");
//两个时间段之间的秒数
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
double allSeconds = DateUtils.getSecondsOfTwoDate(sdf.parse(beginDate),sdf.parse(endDate));
if(!StringUtil.isEmpty(list)){
for (Object object : list) {
Map m=(Map) object;
totalLink+=Long.parseLong(lf.format(m.get("linkNum")));
totalPackets+=Long.parseLong(lf.format(m.get("packets")));
totalGByte+=Double.parseDouble(lf.format(m.get("count")));
double avgPacket=Double.parseDouble(m.get("packets").toString())/allSeconds;
m.put("pps",lf.format(avgPacket));
double avgByte=Double.parseDouble(m.get("count").toString())*8/allSeconds;
m.put("bps",lf.format(avgByte));
m.remove("domainData");
Double value1=0d;
if(StringUtil.isBlank(m.get("topicId").toString())){

View File

@@ -87,11 +87,11 @@ public class TrafficStatisticsReportController extends BaseController {
// statTime=DateUtils.getDate()+" 00:00:00"; // 默认今天
// endTime=DateUtils.getDateTime();
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
endTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(cal.getTime());// 获取到完整的时间
cal.set(Calendar.HOUR_OF_DAY, cal.get(Calendar.HOUR_OF_DAY) - 1);
statTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(cal.getTime());
Calendar time = Calendar.getInstance();
endTime = DateUtils.formatDateTimeByParm(time.getTime(),"yyyy-MM-dd HH")+":00:00";
time.add(Calendar.HOUR_OF_DAY, -1);
statTime = DateUtils.formatDateTimeByParm(time.getTime(),"yyyy-MM-dd HH")+":00:00";;
bean.setSearchFoundStartTime(statTime);
bean.setSearchFoundEndTime(endTime);
statTime = URLEncoder.encode(statTime, "UTF-8");

View File

@@ -1361,7 +1361,7 @@ nas_ip=NAS IP Address
framed_ip=Framed IP Address
log_user_name=User Name
av_tips=The system does not support the index information of audio and video coding in the tail of the audio and video files. The system does not support video with resolution greater than 1080P.
asn_ip_group_delete=\uFF08IP configuration under this ASN group will also be deleted.)
asn_ip_group_delete=\uff08IP configuration under this ASN group will also be deleted.)
keyword_log_tips=Deduplicate http body keywords log,for the control status of http body keywords is not ideal, configure the http url of the hit keyword as URL control configuration.
conn_record=Connection Records
bps=Gbps
@@ -1475,3 +1475,4 @@ block_drop=Block(Drop)
mail_record=Mail Records
ssl_record=SSL Records
http_record=HTTP Records
second_bps=bps

View File

@@ -44,6 +44,7 @@ domain_control=\u0411\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043
dns_control=DNS
basic_configuration=\u0411\u0430\u0437\u043e\u0432\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f
Request_from=\u041f\u0438\u0441\u044c\u043c\u0435\u043d\u043d\u044b\u0439 \u043e\u0444\u0438\u0441
second_bps=bps
classification_manage=\u041a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f
area_manage=\u0420\u0435\u0433\u0438\u043e\u043d
feature_scope_manage=\u041e\u0431\u043b\u0430\u0441\u0442\u044c \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432
@@ -342,10 +343,10 @@ expression_type=\u0422\u0438\u043f \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0
null_expression=\u041d\u0435\u0442 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f
and_expression=&
match_method=\u041c\u0435\u0442\u043e\u0434\u044b \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u0438\u0435
substring_match=\u0421\u043E\u0433\u043B\u0430\u0441\u043E\u0432\u0430\u043D\u0438\u0435 \u041F\u043E\u0434\u0441\u0442\u0440\u043E\u043A\u043E\u0439
right_match= \u0421\u0443\u0444\u0444\u0438\u043A\u0441 \u0421\u043E\u0433\u043B\u0430\u0441\u043E\u0432\u0430\u043D\u0438\u0435
left_match=\u041F\u0440\u0435\u0444\u0438\u043A\u0441 \u0421\u043E\u0433\u043B\u0430\u0441\u043E\u0432\u0430\u043D\u0438\u0435
exactly_match=\u0422\u043E\u0447\u043D\u043E\u0441\u0442\u044C\u044E \u0421\u043E\u0433\u043B\u0430\u0441\u043E\u0432\u0430\u043D\u0438\u0435
substring_match=\u0421\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u0438\u0435 \u041f\u043e\u0434\u0441\u0442\u0440\u043e\u043a\u043e\u0439
right_match= \u0421\u0443\u0444\u0444\u0438\u043a\u0441 \u0421\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u0438\u0435
left_match=\u041f\u0440\u0435\u0444\u0438\u043a\u0441 \u0421\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u0438\u0435
exactly_match=\u0422\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e \u0421\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u0438\u0435
whether_hexbinary=\u041d\u0435\u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043a \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0443 \u0438\u043b\u0438 \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u0438\u043b\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 HEX
hex_binary=HEX \u0444\u043e\u0440\u043c\u0430\u0442
case_insensitive_nohex=\u041d\u0435\u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u0435\u043d \u043a \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0443, \u0438 \u043d\u0435 HEX
@@ -1018,7 +1019,7 @@ domain_intercepter_ratelimit=\u041f\u0435\u0440\u0435\u0445\u0432\u0430\u0442 \u
app_built_in_features_config=\u0412\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f
PXY_INTERCEPT_PKT_BIN=\u041f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u043e\u0432
certificate=\u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442
do_log=\u041D\u0430\u0434\u043E \u043B\u0438 \u0437\u0430\u043F\u0438\u0441\u0430\u0442\u044C \u0436\u0443\u0440\u043D\u0430\u043B
do_log=\u041d\u0430\u0434\u043e \u043b\u0438 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0436\u0443\u0440\u043d\u0430\u043b
file_strategy=\u041f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 \u0444\u0430\u0439\u043b\u043e\u0432
file_desc=\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u043e\u0432
content_type=\u0422\u0438\u043f \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f
@@ -1045,7 +1046,7 @@ keyring_name=\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0430\u0440
keyring_type=\u0422\u0438\u043f \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430
private_key_file=\u0424\u0430\u0439\u043b \u0441 \u0437\u0430\u043a\u0440\u044b\u0442\u043e\u043c \u043a\u043b\u044e\u0447\u043e\u043c
public_key_file=\u0424\u0430\u0439\u043b \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c \u043a\u043b\u044e\u0447\u043e\u043c
expire_after=\u0418\u0441\u0442\u0435\u043a\u0430\u0435\u0442 \u043f\u043e\u0441\u043b\u0435(\u0414\u043D\u0438)
expire_after=\u0418\u0441\u0442\u0435\u043a\u0430\u0435\u0442 \u043f\u043e\u0441\u043b\u0435(\u0414\u043d\u0438)
issuer=\u042d\u043c\u0438\u0442\u0435\u043d\u0442 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430
certificate_subject=\u041f\u0440\u0435\u0434\u043c\u0435\u0442 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430
not_before_time=\u0412\u0440\u0435\u043c\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430
@@ -1406,11 +1407,11 @@ APP_TCP_SESSION_BYTE=\u0421\u0435\u0430\u043d\u0441
ip_count=Uniq-IP
counnection_count=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439
asn=ASN
Unique_num=\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u041A\u043B\u0438\u0435\u043D\u0442\u0430 IP
Unique_num=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u041a\u043b\u0438\u0435\u043d\u0442\u0430 IP
ip=IP
country=\u0421\u0442\u0440\u0430\u043d\u0430
desc=Desc
unique_num=\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u041A\u043B\u0438\u0435\u043D\u0442\u0430 IP
unique_num=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u041a\u043b\u0438\u0435\u043d\u0442\u0430 IP
import_limit_is=The maximum import size is
upload_limit_is=The limitation of file uplaod is
count=Count
@@ -1472,10 +1473,10 @@ not_exist=not exist
real_time=Real Time
history=History
all_columns_hidden=All columns are hidden!
no_log=\u041D\u0435\u0442 \u0416\u0443\u0440\u043D\u0430\u043B\u043E\u0432
all_log=\u0421\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439 \u0416\u0443\u0440\u043D\u0430\u043B \u0438 \u0416\u0443\u0440\u043D\u0430\u043B-\u0444\u0430\u0439\u043B
framework_log=\u0421\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439 \u0416\u0443\u0440\u043D\u0430\u043B
no_log=\u041d\u0435\u0442 \u0416\u0443\u0440\u043d\u0430\u043b\u043e\u0432
all_log=\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0416\u0443\u0440\u043d\u0430\u043b \u0438 \u0416\u0443\u0440\u043d\u0430\u043b-\u0444\u0430\u0439\u043b
framework_log=\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0416\u0443\u0440\u043d\u0430\u043b
block_drop=\u0411\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435(\u041f\u0430\u0434\u0435\u043d\u0438\u0435)
mail_record=\u0417\u0430\u043F\u0438\u0441\u0438 \u041F\u043E\u0447\u0442\u044B
ssl_record=SSL \u0417\u0430\u043F\u0438\u0441\u0438
http_record=HTTP \u0417\u0430\u043F\u0438\u0441\u0438
mail_record=\u0417\u0430\u043f\u0438\u0441\u0438 \u041f\u043e\u0447\u0442\u044b
ssl_record=SSL \u0417\u0430\u043f\u0438\u0441\u0438
http_record=HTTP \u0417\u0430\u043f\u0438\u0441\u0438

View File

@@ -1017,7 +1017,7 @@ domain_intercepter_ratelimit=\u57df\u540d\u62e6\u622a\u9650\u901f
app_built_in_features_config=APP\u5185\u7f6e\u7279\u5f81\u7ef4\u62a4
PXY_INTERCEPT_PKT_BIN=\u5305\u8f7d\u8377
certificate=\u8bc1\u4e66
do_log=\u662F\u5426\u8BB0\u5F55\u65E5\u5FD7
do_log=\u662f\u5426\u8bb0\u5f55\u65e5\u5fd7
file_strategy=\u6587\u4ef6\u7b56\u7565
file_desc=\u6587\u4ef6\u63cf\u8ff0\t
content_type=\u5185\u5bb9\u7c7b\u578b
@@ -1468,10 +1468,11 @@ not_exist=\u4e0d\u5b58\u5728
real_time=\u5b9e\u65f6
history=\u5386\u53f2
all_columns_hidden=\u6240\u6709\u7684\u5217\u90fd\u9690\u85cf\u4e86\uff01
no_log=\u4E0D\u8BB0\u5F55
all_log=\u8BB0\u5F55\u6240\u6709\u65E5\u5FD7
framework_log=\u53EA\u8BB0\u5F55\u7ED3\u6784\u5316\u65E5\u5FD7
block_drop=\u5C01\u5835(\u4E22\u5F03)
mail_record=\u90AE\u4EF6\u6CDB\u6536
ssl_record=SSL\u6CDB\u6536
http_record=HTTP\u6CDB\u6536
no_log=\u4e0d\u8bb0\u5f55
all_log=\u8bb0\u5f55\u6240\u6709\u65e5\u5fd7
framework_log=\u53ea\u8bb0\u5f55\u7ed3\u6784\u5316\u65e5\u5fd7
block_drop=\u5c01\u5835(\u4e22\u5f03)
mail_record=\u90ae\u4ef6\u6cdb\u6536
ssl_record=SSL\u6cdb\u6536
http_record=HTTP\u6cdb\u6536
second_bps=bps

View File

@@ -283,9 +283,9 @@
<th><spring:message code="classification"/></th>
<th><spring:message code="attribute"/></th>
<th><spring:message code="label"/></th> --%>
<th column="valid_identifier" ><spring:message code="valid_identifier"/></th>
<th><spring:message code="is_audit"/></th>
<%-- <th><spring:message code="log_total"/></th> --%>
<th column="valid_identifier" ><spring:message code="valid_identifier"/></th>
<th column="creator" ><spring:message code="creator"/></th>
<th column="config_time" class="sort-column r.create_time"><spring:message code="config_time"/></th>
<th column="editor" ><spring:message code="editor"/></th>
@@ -389,11 +389,6 @@
</a>
</td> --%>
<%-- <td>${cfg.areaEffectiveIds }</td> --%>
<td>
<c:if test="${cfg.isValid==0}"><spring:message code="no"/></c:if>
<c:if test="${cfg.isValid==1}"><spring:message code="yes"/></c:if>
<c:if test="${cfg.isValid==-1}"><spring:message code="deleted"/></c:if>
</td>
<td>
<c:choose>
<c:when test="${cfg.isAudit eq '0'}"><span class="label label-danger"><spring:message code="created"></spring:message></span></c:when>
@@ -412,6 +407,11 @@
</c:choose> --%>
</td>
<%-- <td audit="${cfg.isAudit}" functionId="${cfg.functionId}" compileId="${cfg.compileId}" action="${cfg.action}"><div class="loading-total"></div></td> --%>
<td>
<c:if test="${cfg.isValid==0}"><spring:message code="no"/></c:if>
<c:if test="${cfg.isValid==1}"><spring:message code="yes"/></c:if>
<c:if test="${cfg.isValid==-1}"><spring:message code="deleted"/></c:if>
</td>
<td>${cfg.creatorName }</td>
<td><fmt:formatDate value="${cfg.createTime }" pattern="yyyy-MM-dd HH:mm:ss"/></td>
<td>${cfg.editorName }</td>

View File

@@ -402,7 +402,6 @@
<th column="ip_total" class="sort-column r.ip_total"><spring:message code="ip_total"/></th>
<th column="available_ip_total" ><spring:message code="available_ip_total"/></th>
<%-- <th column="user_name" ><spring:message code="block_type"/></th> --%>
<th column="valid_identifier" class="sort-column r.is_valid"><spring:message code="valid_identifier"/></th>
<th column="is_audit" ><spring:message code="is_audit"/></th>
<%-- <th column="whether_area_block" ><spring:message code="whether_area_block"/></th> --%>
<th column="operation" ><spring:message code="operation"/></th>
@@ -410,6 +409,7 @@
<th column="classification" ><spring:message code="classification"/></th>
<th column="attribute" ><spring:message code="attribute"/></th>
<th column="label" ><spring:message code="label"/></th>
<th column="valid_identifier" class="sort-column r.is_valid"><spring:message code="valid_identifier"/></th>
<th column="creator" ><spring:message code="creator"/></th>
<th column="config_time" class="sort-column r.create_time"><spring:message code="config_time"/></th>
<th column="editor" ><spring:message code="editor"/></th>
@@ -439,11 +439,6 @@
</c:if>
</c:forEach>
</td> --%>
<td>
<c:if test="${cfg.isValid==0}"><spring:message code="no"/></c:if>
<c:if test="${cfg.isValid==1}"><spring:message code="yes"/></c:if>
<c:if test="${cfg.isValid==-1}"><spring:message code="deleted"/></c:if>
</td>
<td>
<c:choose>
<c:when test="${cfg.isAudit eq '0'}"><span class="label label-danger"><spring:message code="created"></spring:message></span></c:when>
@@ -524,6 +519,11 @@
${fns:abbr(lableInfo,20)}
</a>
</td>
<td>
<c:if test="${cfg.isValid==0}"><spring:message code="no"/></c:if>
<c:if test="${cfg.isValid==1}"><spring:message code="yes"/></c:if>
<c:if test="${cfg.isValid==-1}"><spring:message code="deleted"/></c:if>
</td>
<td>${cfg.creatorName }</td>
<td><fmt:formatDate value="${cfg.createTime }" pattern="yyyy-MM-dd HH:mm:ss"/></td>
<td>${cfg.editorName }</td>

View File

@@ -354,17 +354,16 @@
<th column="protocol" ><spring:message code="protocol"/></th>
<th column="user_type"><spring:message code="user_type"/></th>
<th column="user"><spring:message code="user"/></th>
<th column="log_total" ><spring:message code="log_total"/></th>
<th column="valid_identifier" class="sort-column a.is_valid"><spring:message code="valid_identifier"/></th>
<th column="is_audit" ><spring:message code="is_audit"/></th>
<%-- <th column="do_log" ><spring:message code="do_log"/></th> --%>
<th column="log_total" ><spring:message code="log_total"/></th>
<%-- <th column="log_total" ><spring:message code="log_total"/></th> --%>
<%-- <th column="whether_area_block" ><spring:message code="whether_area_block"/></th> --%>
<th column="letter" ><spring:message code="letter"/></th>
<th column="classification" ><spring:message code="classification"/></th>
<th column="attribute" ><spring:message code="attribute"/></th>
<th column="label" ><spring:message code="label"/></th>
<%-- <th column="log_total" ><spring:message code="log_total"/></th> --%>
<th column="valid_identifier" class="sort-column a.is_valid"><spring:message code="valid_identifier"/></th>
<th column="creator" ><spring:message code="creator"/></th>
<th column="config_time" class="sort-column a.create_time"><spring:message code="config_time"/></th>
<th column="editor" ><spring:message code="editor"/></th>
@@ -418,8 +417,6 @@
</c:forEach>
</td>
<td audit="${indexCfg.isAudit}" functionId="${indexCfg.functionId}" compileId="${indexCfg.compileId}" action="${indexCfg.action}" serviceId="${indexCfg.serviceId}"><div class="loading-total"></div></td>
<%-- <td>
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict">
<c:if test="${dict.itemCode eq indexCfg.doLog }">
@@ -435,11 +432,6 @@
</a>
</c:if>
</td> --%>
<td>
<c:if test="${indexCfg.isValid==0}"><spring:message code="no"/></c:if>
<c:if test="${indexCfg.isValid==1}"><spring:message code="yes"/></c:if>
<c:if test="${indexCfg.isValid==-1}"><spring:message code="deleted"/></c:if>
</td>
<td>
<c:choose>
<c:when test="${indexCfg.isAudit eq '0'}"><span class="label label-danger"><spring:message code="created"></spring:message></span></c:when>
@@ -448,6 +440,8 @@
<c:when test="${indexCfg.isAudit eq '3'}"><span indexTable="${indexCfg.indexTable}" data-placement="right" data-original-title="<spring:message code='letter_cancel_info'/>: " class="label le-ca-fo label-warning tooltips" data-icon="&#xe01e;"> <spring:message code="cancel_approved"/></span></c:when>
</c:choose>
</td>
<td audit="${indexCfg.isAudit}" functionId="${indexCfg.functionId}" compileId="${indexCfg.compileId}" action="${indexCfg.action}" serviceId="${indexCfg.serviceId}"><div class="loading-total"></div></td>
<%-- <td audit="${indexCfg.isAudit}" functionId="${indexCfg.functionId}" compileId="${indexCfg.compileId}" action="${indexCfg.action}"><div class="loading-total"></div></td> --%>
<td>${indexCfg.requestName }</td>
<td>
<c:set var="classify"></c:set>
@@ -507,7 +501,11 @@
${fns:abbr(lableInfo,20)}
</a>
</td>
<%-- <td audit="${indexCfg.isAudit}" functionId="${indexCfg.functionId}" compileId="${indexCfg.compileId}" action="${indexCfg.action}"><div class="loading-total"></div></td> --%>
<td>
<c:if test="${indexCfg.isValid==0}"><spring:message code="no"/></c:if>
<c:if test="${indexCfg.isValid==1}"><spring:message code="yes"/></c:if>
<c:if test="${indexCfg.isValid==-1}"><spring:message code="deleted"/></c:if>
</td>
<td>${indexCfg.creatorName }</td>
<td><fmt:formatDate value="${indexCfg.createTime }" pattern="yyyy-MM-dd HH:mm:ss"/></td>
<td>${indexCfg.editorName }</td>

View File

@@ -332,7 +332,6 @@
<%-- <th column="ip"><spring:message code="ip"/></th> --%>
<th column="log_total"><spring:message code="log_total"/></th>
<%-- <th column="block_type" class="sort-column a.action"><spring:message code="block_type"/></th> --%>
<th column="valid_identifier" class="sort-column r.is_valid"><spring:message code="valid_identifier"/></th>
<th column="is_audit"><spring:message code="is_audit"/></th>
<%-- <th column="do_log"><spring:message code="do_log"/></th> --%>
<%-- <th column="whether_area_block"><spring:message code="whether_area_block"/></th> --%>
@@ -340,6 +339,7 @@
<th column="classification"><spring:message code="classification"/></th>
<th column="attribute"><spring:message code="attribute"/></th>
<th column="label"><spring:message code="label"/></th>
<th column="valid_identifier" class="sort-column r.is_valid"><spring:message code="valid_identifier"/></th>
<th column="creator"><spring:message code="creator"/></th>
<th column="config_time" class="sort-column r.create_time"><spring:message code="config_time"/></th>
<th column="editor"><spring:message code="editor"/></th>
@@ -391,11 +391,6 @@
</c:if>
</c:forEach>
</td> --%>
<td>
<c:if test="${indexCfg.isValid==0}"><spring:message code="no"/></c:if>
<c:if test="${indexCfg.isValid==1}"><spring:message code="yes"/></c:if>
<c:if test="${indexCfg.isValid==-1}"><spring:message code="deleted"/></c:if>
</td>
<td>
<c:choose>
<c:when test="${indexCfg.isAudit eq '0'}"><span class="label label-danger"><spring:message code="created"></spring:message></span></c:when>
@@ -478,6 +473,11 @@
${fns:abbr(lableInfo,20)}
</a>
</td>
<td>
<c:if test="${indexCfg.isValid==0}"><spring:message code="no"/></c:if>
<c:if test="${indexCfg.isValid==1}"><spring:message code="yes"/></c:if>
<c:if test="${indexCfg.isValid==-1}"><spring:message code="deleted"/></c:if>
</td>
<td>${indexCfg.creatorName }</td>
<td><fmt:formatDate value="${indexCfg.createTime }" pattern="yyyy-MM-dd HH:mm:ss"/></td>
<td>${indexCfg.editorName }</td>

View File

@@ -79,7 +79,7 @@ body {
<!-- 网络带宽 --><spring:message code="traffic"/>
</label>
</p>
<a href="${ctx}/dashboard/traffic/bandwidthList"><p class="csNum">c2s <span class="c2sNum">0</span> | s2c <span class="s2cNum">0</span> </p>
<a href="${ctx}/dashboard/traffic/bandwidthList"><p class="csNum">in <span class="c2sNum">0</span> | out <span class="s2cNum">0</span> </p>
<span class="numberRun4">0</span > <span class="numberRun4-unit">bps</span></a>
</div>
</div>

View File

@@ -162,6 +162,8 @@
<th><spring:message code="percentage"/> (<spring:message code="packets"/>)</th>
<th><spring:message code="bytes"/></th>
<th><spring:message code="percentage"/> (<spring:message code="bytes"/>)</th>
<th><spring:message code="pps"/></th>
<th><spring:message code="second_bps"/></th>
</tr>
</thead>
<tbody id="tableData"></tbody>
@@ -317,6 +319,8 @@
html += "<td class='tc'>" + data.pktPercent + " %</td>";
html += "<td class='tc'>" + Math.round(data.byteNum*100)/100 + "</td>";
html += "<td class='tc'>" + data.bytePercent + " %</td>";
html += "<td class='tc'>" + data.pps + "</td>";
html += "<td class='tc'>" + data.bps + "</td>";
html += "</tr>"
if(index==fileDataS.length-1){
html+="<tr class='tr-total hidden'>"
@@ -327,7 +331,9 @@
html+= "<td class='tc'>"+"--"+"</td>";
html+= "<td class='tc'>"+totalbyte+"</td>";
html+= "<td class='tc'>"+"--"+"</td>";
html+="</tr>"
html+= "<td class='tc'>"+"--"+"</td>";
html+= "<td class='tc'>"+"--"+"</td>";
html+="</tr>"
}
}
$("#tableData").append(html);

View File

@@ -120,6 +120,8 @@
<th class="tl"><spring:message code="percentage"/> (<spring:message code="packets"/>)</th>
<th class="tl"><spring:message code="GByte"/></th>
<th class="tl"><spring:message code="percentage"/> (<spring:message code="GByte"/>)</th>
<th class="tl"><spring:message code="pps"/></th>
<th class="tl"><spring:message code="second_bps"/></th>
</tr>
</thead>
<tbody id="tableData"></tbody>
@@ -353,6 +355,8 @@ function htmlData(fileDataS){
html+= "<td class='tc'>"+packper+"%"+"</td>";
html+= "<td class='tc'>"+Math.round(data.GByte*100)/100+"</td>";
html+= "<td class='tc'>"+gbytper+"%"+"</td>";
html+= "<td class='tc'>"+data.pps+"</td>";
html+= "<td class='tc'>"+data.bps+"</td>";
html+="</tr>"
if(index==fileDataS.length-1){
html+="<tr class='tr-total hidden'>"
@@ -364,6 +368,8 @@ function htmlData(fileDataS){
html+= "<td class='tc'>"+"100%"+"</td>";
html+= "<td class='tc'>"+Math.round(totalGByte*100)/100+"</td>";
html+= "<td class='tc'>"+"100%"+"</td>";
html+= "<td class='tc'>"+"--"+"</td>";
html+= "<td class='tc'>"+"--"+"</td>";
html+="</tr>"
}
}

View File

@@ -82,6 +82,8 @@
<th class="tl"><spring:message code="percentage"/> (<spring:message code="packets"/>)</th>
<th class="tl"><spring:message code="GByte"/></th>
<th class="tl"><spring:message code="percentage"/> (<spring:message code="GByte"/>)</th>
<th class="tl"><spring:message code="pps"/></th>
<th class="tl"><spring:message code="second_bps"/></th>
</tr>
</thead>
<tbody id="tableData"></tbody>
@@ -298,6 +300,8 @@ function htmlData(fileDataS){
html+= "<td class='tc'>"+(data.packets/data.allPackets*100).toFixed(2)+"%"+"</td>";
html+= "<td class='tc'>"+(data.count/1073741824).toFixed(2)+"</td>";
html+= "<td class='tc'>"+(data.count/data.allGByte*100).toFixed(2)+"%"+"</td>";
html+= "<td class='tc'>"+data.pps+"</td>";
html+= "<td class='tc'>"+data.bps+"</td>";
html+="</tr>"
if(index==fileDataS.length-1){
html+="<tr class='tr-total hidden'>"
@@ -308,6 +312,8 @@ function htmlData(fileDataS){
html+= "<td class='tc'>"+"100%"+"</td>";
html+= "<td class='tc'>"+(data.allGByte/1073741824).toFixed(2)+"</td>";
html+= "<td class='tc'>"+"100%"+"</td>";
html+= "<td class='tc'>"+"--"+"</td>";
html+= "<td class='tc'>"+"--"+"</td>";
html+="</tr>"
}
}

View File

@@ -100,6 +100,8 @@
<th><spring:message code="s2c_pkt_num"/></th>
<th><spring:message code="packet"/></th>
<th><spring:message code="stat_time"/></th>
<th><spring:message code="pps"/></th>
<th><spring:message code="second_bps"/></th>
</tr>
</thead>
<tbody id="tbodyData">
@@ -422,6 +424,8 @@ function showIpActiveChart(xData,series){
html+= "<td class='tc'>"+rs.s2cPktNum+"</td>";
html+= "<td class='tc'>"+packetNum+"</td>";
html+= "<td class='tc'>"+rs.statTime+"</td>";
html+= "<td class='tc'>"+rs.avgPacket+"</td>";
html+= "<td class='tc'>"+rs.avgByte+"</td>";
html+="</tr>"
if(i==data.length-1){
@@ -435,6 +439,8 @@ function showIpActiveChart(xData,series){
html+= "<td class='tc'>"+totalc2sPkt+"</td>";
html+= "<td class='tc'>"+totals2cPkt+"</td>";
html+= "<td class='tc'>"+totalpacket+"</td>";
html+= "<td class='tc'>"+"--"+"</td>";
html+= "<td class='tc'>"+"--"+"</td>";
html+= "<td class='tc'>"+"--"+"</td>";
html+="</tr>"
}

View File

@@ -107,6 +107,8 @@
<th class="tl"><spring:message code="percentage"/> (<spring:message code="packets"/>)</th>
<th class="tl"><spring:message code="GByte"/></th>
<th class="tl"><spring:message code="percentage"/> (<spring:message code="GByte"/>)</th>
<th class="tl"><spring:message code="pps"/></th>
<th class="tl"><spring:message code="second_bps"/></th>
</tr>
</thead>
<tbody id="tableData"></tbody>
@@ -343,6 +345,8 @@ function htmlData(fileDataS){
html+= "<td class='tc'>"+packper+"%"+"</td>";
html+= "<td class='tc'>"+Math.round(data.GByte*100)/100+"</td>";
html+= "<td class='tc'>"+gbytper+"%"+"</td>";
html+= "<td class='tc'>"+data.pps+"</td>";
html+= "<td class='tc'>"+data.bps+"</td>";
html+="</tr>"
if(index==fileDataS.length-1){
html+="<tr class='tr-total hidden'>"
@@ -353,6 +357,8 @@ function htmlData(fileDataS){
html+= "<td class='tc'>"+"100%"+"</td>";
html+= "<td class='tc'>"+Math.round(totalGByte*100)/100+"</td>";
html+= "<td class='tc'>"+"100%"+"</td>";
html+= "<td class='tc'>"+"——"+"</td>";
html+= "<td class='tc'>"+"——"+"</td>";
html+="</tr>"
}
}

View File

@@ -130,7 +130,6 @@
}
$("#pageNo").val(n);
$("#pageSize").val(s);
// $("#searchForm").attr("action","${ctx}/traffic/userBehavior");
$("#searchForm").submit();
return false;
}
@@ -244,7 +243,7 @@
<span class="selectpicker form-control" ><spring:message code="begin_date"/></span>
</div>
<input id="searchFoundStartTime" name="searchFoundStartTime" type="text" readonly="readonly" maxlength="20" class="form-control Wdate"
value="${log.searchFoundStartTime}" onclick="WdatePicker({onpicked:function(){this.onchange()},dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,maxDate:'#F{\'new Date()\'}'});" onchange="setStartTime('#searchFoundStartTime','#searchFoundEndTime',1,'d','yyyy-MM-dd hh:mm:ss',false)"/>
value="${log.searchFoundStartTime}" onclick="WdatePicker({onpicked:function(){this.onchange()},dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,maxDate:'#F{\'new Date()\'}'});" onchange="setEndTimeByFormat('#searchFoundStartTime','#searchFoundEndTime',1,'d','yyyy-MM-dd hh:mm:ss',false,'yyyy-MM-dd hh')"/>
</div>
</div>
<div class="pull-left">
@@ -253,14 +252,14 @@
<span class="selectpicker form-control" ><spring:message code="end_date"/></span>
</div>
<input id="searchFoundEndTime" name="searchFoundEndTime" type="text" readonly="readonly" maxlength="20" class="form-control Wdate"
value="${log.searchFoundEndTime}" onclick="WdatePicker({onpicked:function(){this.onchange()},dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,maxDate:'#F{\'new Date()\'}'});" onchange="setEndTime('#searchFoundStartTime','#searchFoundEndTime',1,'d','yyyy-MM-dd hh:mm:ss',false)"/>
value="${log.searchFoundEndTime}" onclick="WdatePicker({onpicked:function(){this.onchange()},dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,maxDate:'#F{\'new Date()\'}'});" onchange="setEndTimeByFormat('#searchFoundStartTime','#searchFoundEndTime',1,'d','yyyy-MM-dd hh:mm:ss',false,'yyyy-MM-dd hh')"/>
</div>
</div>
<div class="pull-left accountSearch">
<form:input path="account" class="form-control"/>
<form:input path="account" class="form-control required"/>
</div>
<div class="pull-left nasIpSearch">
<form:input path="nasIp" class="form-control"/>
<form:input path="nasIp" class="form-control required"/>
</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>

View File

@@ -150,6 +150,8 @@
<th><spring:message code="percentage"/> (<spring:message code="packets"/>)</th>
<th><spring:message code="GByte"/></th>
<th><spring:message code="percentage"/> (<spring:message code="GByte"/>)</th>
<th><spring:message code="pps"/> </th>
<th><spring:message code="second_bps"/></th>
</tr>
</thead>
<tbody id="tableData"></tbody>
@@ -398,6 +400,8 @@
html += "<td class='tc'>" + packper + " %</td>";
html += "<td class='tc'>" + Math.round(data.Gbyte*100)/100 + "</td>";
html += "<td class='tc'>" + gbytper + " %</td>";
html += "<td class='tc'>" + data.pps + "</td>";
html += "<td class='tc'>" + data.bps + "</td>";
html += "</tr>"
if(index==fileDataS.length-1){
html+="<tr class='tr-total hidden'>"
@@ -409,6 +413,8 @@
html+= "<td class='tc'>"+"100%"+"</td>";
html+= "<td class='tc'>"+parseInt(totalGbyte).toFixed(2)+"</td>";
html+= "<td class='tc'>"+"100%"+"</td>";
html+= "<td class='tc'>"+"--"+"</td>";
html+= "<td class='tc'>"+"--"+"</td>";
html+="</tr>"
}
}