into develop

Conflicts:
	src/main/java/com/nis/web/service/BaseService.java
	asn group中修改组织变更和asn no变更,不重新获取groupId逻辑
	ip addr 的asn 修改为手动输入,后台check
	app ip和asn ip配置取消,取消分组中最后一条配置时,失效整个compile,并且修改groupId的状态为为无效。
	无效的asn group删除时,删除其下的所有asn ip
This commit is contained in:
duandongmei
2019-01-18 11:14:05 +06:00
70 changed files with 871 additions and 3911 deletions

View File

@@ -32,8 +32,17 @@ public class AsnGroupInfo extends BaseCfg<AsnGroupInfo> implements Serializable{
private Integer isUsed; private Integer isUsed;
private Integer regionId; private Integer regionId;
private Integer orgGroupId;
public Integer getOrgGroupId() {
return orgGroupId;
}
public void setOrgGroupId(Integer orgGroupId) {
this.orgGroupId = orgGroupId;
}
public Integer getIsUsed() { public Integer getIsUsed() {
return isUsed; return isUsed;
} }

View File

@@ -109,7 +109,7 @@ public class AppPolicyCfg extends BaseCfg<AppPolicyCfg> {
@SerializedName("isHexbin") @SerializedName("isHexbin")
private Integer isHexbin; private Integer isHexbin;
@ExcelField(title="log_total",sort=31) @ExcelField(title="log_total",sort=43)
private Long totalLogs; private Long totalLogs;
private List<IpPortCfg> ipPortList; private List<IpPortCfg> ipPortList;

View File

@@ -199,17 +199,17 @@ public class BaseCfg<T> extends BaseEntity<T> implements Cloneable{
/** /**
* 来函 * 来函
*/ */
@ExcelField(title="letter",sort=58) @ExcelField(title="letter",sort=60)
protected String requestName; protected String requestName;
/** /**
* 是否区域gk * 是否区域gk
*/ */
@ExcelField(title="whether_area_block",dictType="WHETHER_AREA_BLOCK",sort=40) @ExcelField(title="whether_area_block",dictType="WHETHER_AREA_BLOCK",sort=45)
protected Integer isAreaEffective; protected Integer isAreaEffective;
/** /**
* 分类 * 分类
*/ */
@ExcelField(title="classification",dictType="type",sort=60) @ExcelField(title="classification",dictType="type",sort=62)
protected String classify; protected String classify;
/** /**
* 性质 * 性质
@@ -270,9 +270,9 @@ public class BaseCfg<T> extends BaseEntity<T> implements Cloneable{
/** /**
* do_log属性在界面do_log:0不需要1记录所有日志2只记录结构化日志。默认是2 * do_log属性在界面do_log:0不需要1记录所有日志2只记录结构化日志。默认是2
*/ */
@ExcelField(title="do_log",dictType="DO_LOG",sort=30) @ExcelField(title="do_log",dictType="DO_LOG",sort=40)
protected Integer doLog = Constants.MAAT_CFG_DOLOG_DEFAULT; protected Integer doLog = Constants.MAAT_CFG_DOLOG_DEFAULT;
@ExcelField(title="do_blacklist",dictType="DO_BLACKLIST",sort=31) @ExcelField(title="do_blacklist",dictType="DO_BLACKLIST",sort=41)
protected Integer doBlackList=Constants.MAAT_CFG_DOLOG_DOBLACKLIST_DEFAULT; protected Integer doBlackList=Constants.MAAT_CFG_DOLOG_DOBLACKLIST_DEFAULT;
protected Integer groupId;//仅用于copy属性使用 protected Integer groupId;//仅用于copy属性使用
protected Integer regionId;//仅用于copy属性使用 protected Integer regionId;//仅用于copy属性使用

View File

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

View File

@@ -86,12 +86,8 @@ public class CfgIndexInfo extends BaseCfg<CfgIndexInfo> {
private String country; private String country;
private String detail; private String detail;
private List<AsnKeywordCfg> asnKeywords; private List<AsnKeywordCfg> asnKeywords;
@ExcelField(title="log_total",sort=31) @ExcelField(title="log_total",sort=42)
private Long totalLogs; private Long totalLogs;
@ExcelField(title="is_audit",dictType="AUDIT_STATUS",sort=20)
private Integer isAudit;
@ExcelField(title="do_log",dictType="DO_LOG",sort=27)
private Integer doLog = Constants.MAAT_CFG_DOLOG_DEFAULT;
/*private CachePolicyUserRegion cachePolicyUserRegion;//缓存策略用户自定义域参数 /*private CachePolicyUserRegion cachePolicyUserRegion;//缓存策略用户自定义域参数
@@ -102,19 +98,6 @@ public class CfgIndexInfo extends BaseCfg<CfgIndexInfo> {
} }
}*/ }*/
public Integer getIsValid() {
return isValid;
}
public void setIsValid(Integer isValid) {
this.isValid = isValid;
}
public Integer getDoLog() {
return doLog;
}
public void setDoLog(Integer doLog) {
this.doLog = doLog;
}
public String getOrganization() { public String getOrganization() {
return organization; return organization;
} }

View File

@@ -23,29 +23,13 @@ public class DdosIpCfg extends BaseIpCfg {
*/ */
private static final long serialVersionUID = -5446903784736960824L; private static final long serialVersionUID = -5446903784736960824L;
private String indexTable="ddos_ip_cfg"; 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 private String antiddosProtocol;//目前支持TCP_SYN, DNS, NTP
@ExcelField(title="bps_threadshold",sort=42) @ExcelField(title="bps_threadshold",sort=47)
private Long bpsThreadshold;// 即DDoS攻击保护动作触发阈值每秒Bit数和每秒包数 private Long bpsThreadshold;// 即DDoS攻击保护动作触发阈值每秒Bit数和每秒包数
@ExcelField(title="pps_threadshold",sort=43) @ExcelField(title="pps_threadshold",sort=48)
private Long ppsThreadshold; 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() { public String getAntiddosProtocol() {
return antiddosProtocol; return antiddosProtocol;
} }

View File

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

@@ -28,6 +28,17 @@ public class NtcConnRecordLog extends BaseLogEntity<NtcConnRecordLog> {
@ExcelField(title = "Total Byte", sort = 49) @ExcelField(title = "Total Byte", sort = 49)
protected String totalByte; protected String totalByte;
protected String ispCode;//运营商
public String getIspCode() {
return ispCode;
}
public void setIspCode(String ispCode) {
this.ispCode = ispCode;
}
public String getTotalPkt() { public String getTotalPkt() {
return totalPkt; return totalPkt;

View File

@@ -6,8 +6,9 @@ import com.nis.util.excel.ExcelField;
public class NtcAsnRecord extends BaseLogEntity<NtcAsnRecord>{ public class NtcAsnRecord extends BaseLogEntity<NtcAsnRecord>{
private static final long serialVersionUID = -4947912502754359817L; private static final long serialVersionUID = -4947912502754359817L;
@ExcelField(title="GBps",sort=10)
@ExcelField(title="bps",sort=10) protected String GBps;
//@ExcelField(title="bps",sort=10)
protected String bps; protected String bps;
@ExcelField(title="pps",sort=9) @ExcelField(title="pps",sort=9)
protected String pps; protected String pps;
@@ -26,7 +27,13 @@ public class NtcAsnRecord extends BaseLogEntity<NtcAsnRecord>{
this.searchAsnType = searchAsnType; this.searchAsnType = searchAsnType;
} }
protected String searchAsnType;//1:d_asn;2:s_asn protected String searchAsnType;//1:d_asn;2:s_asn
public String getGBps() {
return bps;
}
public void setGBps(String gBps) {
GBps = this.getBps();
}
public String getBps() { public String getBps() {
return bps; return bps;
} }

View File

@@ -188,6 +188,20 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
long afterTime = after.getTime(); long afterTime = after.getTime();
return (afterTime - beforeTime) / (1000 * 60 * 60 * 24); 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

@@ -23,6 +23,7 @@ import com.nis.domain.Page;
import com.nis.domain.basics.AsnGroupInfo; import com.nis.domain.basics.AsnGroupInfo;
import com.nis.domain.basics.AsnIpCfg; import com.nis.domain.basics.AsnIpCfg;
import com.nis.domain.specific.ConfigGroupInfo; import com.nis.domain.specific.ConfigGroupInfo;
import com.nis.exceptions.MaatConvertException;
import com.nis.util.StringUtil; import com.nis.util.StringUtil;
import com.nis.web.controller.BaseController; import com.nis.web.controller.BaseController;
/** /**
@@ -83,8 +84,13 @@ public class AsnGroupController extends BaseController {
asnGroupInfoService.saveOrUpdate(cfg); asnGroupInfoService.saveOrUpdate(cfg);
addMessage(redirectAttributes,"success","save_success"); addMessage(redirectAttributes,"success","save_success");
} catch (Exception e) { } catch (Exception e) {
logger.error("新增失败",e); e.printStackTrace();
addMessage(redirectAttributes,"error","save_failed"); if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,"error", "request_service_failed");
}else {
addMessage(redirectAttributes,"error","save_failed");
}
} }
return "redirect:" + adminPath + "/basics/asnGroup/asnGroupList"; return "redirect:" + adminPath + "/basics/asnGroup/asnGroupList";
@@ -99,15 +105,19 @@ public class AsnGroupController extends BaseController {
*/ */
//@RequiresPermissions(value={"basics:classification:del","basics:attribute:del","basics:label:del"},logical=Logical.OR) //@RequiresPermissions(value={"basics:classification:del","basics:attribute:del","basics:label:del"},logical=Logical.OR)
@RequestMapping(value={"delete"}) @RequestMapping(value={"delete"})
public String delete(RedirectAttributes redirectAttributes,String ids,String asnIds) { public String delete(RedirectAttributes redirectAttributes,String ids,String asnIds,String groupIds) {
try { try {
asnGroupInfoService.delete(ids,asnIds); asnGroupInfoService.delete(ids,asnIds,groupIds);
//TODO 查询本次删除的所有asnOrg组中是否存在asn 没有is_used=0的asn如果存在则需要将整个组删除 //TODO 查询本次删除的所有asnOrg组中是否存在asn 没有is_used=0的asn如果存在则需要将整个组删除
addMessage(redirectAttributes,"success","delete_success"); addMessage(redirectAttributes,"success","delete_success");
} catch (Exception e) { } catch (Exception e) {
logger.error("删除失败",e); logger.error("删除失败",e);
addMessage(redirectAttributes,"error","delete_failed"); if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,"error", "request_service_failed");
}else {
addMessage(redirectAttributes,"error","delete_failed");
}
} }
return "redirect:" + adminPath + "/basics/asnGroup/asnGroupList"; return "redirect:" + adminPath + "/basics/asnGroup/asnGroupList";
} }
@@ -162,14 +172,16 @@ public class AsnGroupController extends BaseController {
*/ */
@ResponseBody @ResponseBody
@RequestMapping(value = {"/checkAsnNo"}) @RequestMapping(value = {"/checkAsnNo"})
public boolean checkIp(AsnGroupInfo cfg, HttpServletRequest request, HttpServletResponse response){ public AsnGroupInfo checkAsnNo(AsnGroupInfo cfg, HttpServletRequest request, HttpServletResponse response){
AsnGroupInfo policyGroup=null;
AsnGroupInfo policyGroup = asnGroupInfoService.getInfoByAsnNo(cfg); policyGroup = asnGroupInfoService.getInfoByAsnNo(cfg);
if(policyGroup == null){ if(policyGroup != null){
return true; ConfigGroupInfo group=configGroupInfoService.getAsnOrganization(policyGroup.getOrganization());
if(group != null){
policyGroup.setCommonGroupIds(group.getGroupId().toString());
}
} }
return policyGroup;
return false;
} }
/** /**
* 校验asn号是否已存在 * 校验asn号是否已存在
@@ -182,7 +194,6 @@ public class AsnGroupController extends BaseController {
if(asnIpCfg == null){ if(asnIpCfg == null){
return false; return false;
} }
return true; return true;
} }
/** /**

View File

@@ -218,7 +218,7 @@ public class DnsIpCfgController extends BaseController {
} }
titleList.add(entity.getMenuNameCode()); titleList.add(entity.getMenuNameCode());
classMap.put(entity.getMenuNameCode(), DnsIpCfg.class); classMap.put(entity.getMenuNameCode(), DnsIpCfg.class);
String cfgIndexInfoNoExport = ",whether_area_block,client_ip,port_pattern,client_port,server_port,ir_type,direction,protocol,do_log,client_port,ir_type,group_name,userregion1,userregion2,userregion3,userregion4,userregion5,"; String cfgIndexInfoNoExport = ",log_total,whether_area_block,client_ip,port_pattern,client_port,server_port,ir_type,direction,protocol,do_log,client_port,ir_type,group_name,userregion1,userregion2,userregion3,userregion4,userregion5,";
// 时间过滤 // 时间过滤
if (entity.getSearch_create_time_start() == null && entity.getSearch_create_time_end() == null) { if (entity.getSearch_create_time_start() == null && entity.getSearch_create_time_end() == null) {

View File

@@ -500,12 +500,14 @@ public class WhiteListController extends CommonController {
for (Integer id : set) { for (Integer id : set) {
serviceIds.append(id+","); serviceIds.append(id+",");
} }
String serviceIdsStr=serviceIds.toString().substring(1, serviceIds.length()-1); if(serviceIds.length()>1&&compileIds.length()>1){
String compileIdsStr=compileIds.toString().substring(1, compileIds.length()-1); String serviceIdsStr=serviceIds.toString().substring(1, serviceIds.length()-1);
//获取日志总量 String compileIdsStr=compileIds.toString().substring(1, compileIds.length()-1);
if(!StringUtils.isBlank(serviceIdsStr)&&!StringUtils.isBlank(compileIdsStr)){ //获取日志总量
List<Map<String,Object>> logs = getLogTotal( null,serviceIdsStr,compileIdsStr); if(!StringUtils.isBlank(serviceIdsStr)&&!StringUtils.isBlank(compileIdsStr)){
logTotals.addAll(logs); List<Map<String,Object>> logs = getLogTotal( null,serviceIdsStr,compileIdsStr);
logTotals.addAll(logs);
}
} }
titleList.add(entity.getMenuNameCode()); titleList.add(entity.getMenuNameCode());
titleList.add("NTC_HTTP_URL"); titleList.add("NTC_HTTP_URL");

View File

@@ -3,9 +3,11 @@ package com.nis.web.controller.configuration.proxy;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Properties; import java.util.Properties;
import java.util.Set;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@@ -273,6 +275,35 @@ public class InterceptController extends CommonController {
Page<CfgIndexInfo> page = ipCfgService.getIpCfgList(pageInfo, entity); Page<CfgIndexInfo> page = ipCfgService.getIpCfgList(pageInfo, entity);
ipLists = page.getList(); ipLists = page.getList();
} }
//日志总量
List<Map<String,Object>> logTotals=new ArrayList<Map<String,Object>>();
StringBuilder compileIds=new StringBuilder(",");//配置ids
Set<Integer> set=new HashSet<Integer>();//服务ids
for (CfgIndexInfo cfg : ipLists) {
if(cfg.getIsAudit()!=0){
set.add(cfg.getServiceId());
compileIds.append(cfg.getCompileId()+",");
}else{
Map<String,Object> logTotal=new HashMap<String,Object>();
logTotal.put("compileId", cfg.getCompileId()+"");
logTotal.put("sum",0L);
logTotals.add(logTotal);
}
}
StringBuilder serviceIds=new StringBuilder(",");
for (Integer id : set) {
serviceIds.append(id+",");
}
if(serviceIds.length()>1&&compileIds.length()>1){
String serviceIdsStr=serviceIds.toString().substring(1, serviceIds.length()-1);
String compileIdsStr=compileIds.toString().substring(1, compileIds.length()-1);
//获取日志总量
if(!StringUtils.isBlank(serviceIdsStr)&&!StringUtils.isBlank(compileIdsStr)){
List<Map<String,Object>> logs = getLogTotal( null,serviceIdsStr,compileIdsStr);
logTotals.addAll(logs);
}
}
// 获取证书信息 // 获取证书信息
List<PxyObjKeyring> certificateList = new ArrayList<PxyObjKeyring>(); List<PxyObjKeyring> certificateList = new ArrayList<PxyObjKeyring>();
if (entity.getFunctionId().equals(200)) { if (entity.getFunctionId().equals(200)) {
@@ -325,6 +356,12 @@ public class InterceptController extends CommonController {
List<BaseStringCfg> httpUrlList = new ArrayList<BaseStringCfg>(); List<BaseStringCfg> httpUrlList = new ArrayList<BaseStringCfg>();
List<BaseStringCfg> pktBinList = new ArrayList<BaseStringCfg>(); List<BaseStringCfg> pktBinList = new ArrayList<BaseStringCfg>();
for (CfgIndexInfo cfg : ipLists) { for (CfgIndexInfo cfg : ipLists) {
for (Map<String,Object> logTotal : logTotals) {
if(cfg.getCompileId().equals(Integer.parseInt((String) logTotal.get("compileId")))){
cfg.setTotalLogs((Long)logTotal.get("sum"));
break;
}
}
Map<String, List> maps = interceptCfgService.exportIpInfo(cfg); Map<String, List> maps = interceptCfgService.exportIpInfo(cfg);
httpUrlList.addAll(maps.get("NTC_HTTP_URL")); httpUrlList.addAll(maps.get("NTC_HTTP_URL"));
ipList.addAll(maps.get("PXY_INTERCEPT_IP")); ipList.addAll(maps.get("PXY_INTERCEPT_IP"));
@@ -346,7 +383,7 @@ public class InterceptController extends CommonController {
httpUrlList = BaseStringCfg.baseHexList(httpUrlList); httpUrlList = BaseStringCfg.baseHexList(httpUrlList);
dataMap.put(entity.getMenuNameCode(), ipLists); dataMap.put(entity.getMenuNameCode(), ipLists);
if (entity.getFunctionId() == 212) { // IP Payload if (entity.getFunctionId() == 212) { // IP Payload
cfgIndexInfoNoExport = ",do_log,log_total,policy_name,group_name,userregion4,userregion5,&userregion1:replace_zone-userregion2:replaced_content-userregion3:replace_content-"; cfgIndexInfoNoExport = ",policy_name,group_name,userregion4,userregion5,&userregion1:replace_zone-userregion2:replaced_content-userregion3:replace_content-";
titleList.add("PXY_INTERCEPT_IP"); titleList.add("PXY_INTERCEPT_IP");
titleList.add("PXY_INTERCEPT_PKT_BIN"); titleList.add("PXY_INTERCEPT_PKT_BIN");
classMap.put("PXY_INTERCEPT_IP", IpPortCfg.class); classMap.put("PXY_INTERCEPT_IP", IpPortCfg.class);

View File

@@ -3,6 +3,7 @@ package com.nis.web.controller.dashboard;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import java.net.URISyntaxException; import java.net.URISyntaxException;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
@@ -248,7 +249,7 @@ public class DashboardController extends BaseController{
@ResponseBody @ResponseBody
public List ajaxIpActiveList(String beginDate,String endDate,Integer entranceId){ public List ajaxIpActiveList(String beginDate,String endDate,Integer entranceId){
Map<String, Object> fromJsonList = new HashMap<String, Object>(); Map<String, Object> fromJsonList = new HashMap<String, Object>();
List list = new ArrayList(); List<TrafficIpActiveStatistic> list = new ArrayList<TrafficIpActiveStatistic>();
try { try {
String url=Constants.DASHBOARD_URL+Constants.TRAFFIC_IPACTIVE_ONEHOUR; String url=Constants.DASHBOARD_URL+Constants.TRAFFIC_IPACTIVE_ONEHOUR;
url=urlAddDate(url, beginDate, endDate); url=urlAddDate(url, beginDate, endDate);
@@ -260,6 +261,16 @@ public class DashboardController extends BaseController{
fromJsonList = gson.fromJson(string, new TypeToken<Map<String, Object>>(){}.getType()); fromJsonList = gson.fromJson(string, new TypeToken<Map<String, Object>>(){}.getType());
logger.debug("活跃IP1小时"+fromJsonList); logger.debug("活跃IP1小时"+fromJsonList);
list = gson.fromJson(fromJsonList.get("data").toString(), new TypeToken<List<TrafficIpActiveStatistic>>() {}.getType()) ; 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>() { Collections.sort(list, new Comparator<TrafficIpActiveStatistic>() {
@Override @Override
@@ -282,7 +293,7 @@ public class DashboardController extends BaseController{
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
logger.error("活跃IP数据获取错误"+e); logger.error("活跃IP数据获取错误"+e);
list.add(Maps.newHashMap("error","request_service_failed")); //list.add(Maps.newHashMap("error","request_service_failed"));
} }
return list; return list;
} }

View File

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

View File

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

View File

@@ -65,7 +65,7 @@ public class HttpRecordLogController extends BaseController {
} }
List<FunctionServiceDict> serviceList = DictUtils.getFunctionServiceDictList(log.getFunctionId()); List<FunctionServiceDict> serviceList = DictUtils.getFunctionServiceDictList(log.getFunctionId());
serviceList.addAll(DictUtils.getFunctionServiceDictList(635)); // serviceList.addAll(DictUtils.getFunctionServiceDictList(635));
model.addAttribute("serviceList", serviceList); model.addAttribute("serviceList", serviceList);
String url = Constants.LOG_BASE_URL + Constants.NTC_HTTP_RECORD_LOG; String url = Constants.LOG_BASE_URL + Constants.NTC_HTTP_RECORD_LOG;
@@ -133,7 +133,7 @@ public class HttpRecordLogController extends BaseController {
} }
List<FunctionServiceDict> serviceList = DictUtils.getFunctionServiceDictList(log.getFunctionId()); List<FunctionServiceDict> serviceList = DictUtils.getFunctionServiceDictList(log.getFunctionId());
serviceList.addAll(DictUtils.getFunctionServiceDictList(635)); // serviceList.addAll(DictUtils.getFunctionServiceDictList(635));
model.addAttribute("serviceList", serviceList); model.addAttribute("serviceList", serviceList);
String url = Constants.LOG_BASE_URL + Constants.NTC_HTTP_RECORD_LOG; String url = Constants.LOG_BASE_URL + Constants.NTC_HTTP_RECORD_LOG;

View File

@@ -150,7 +150,7 @@ public class MailRecordLogController extends BaseController {
} else { } else {
hColumns += ","; hColumns += ",";
} }
String cfgIndexInfoNoExport = "," + hColumns; String cfgIndexInfoNoExport = ",action,cfg_id," + hColumns;
noExportMap.put("mail_record", cfgIndexInfoNoExport); noExportMap.put("mail_record", cfgIndexInfoNoExport);
dataMap.put("mail_record", list); dataMap.put("mail_record", list);
String timeRange = initLogMap(log, "mail_record"); String timeRange = initLogMap(log, "mail_record");

View File

@@ -98,8 +98,9 @@ public class NtcConnRecordLogController extends BaseController {
if (StringUtils.isNotBlank(log.getdSubscribeId())) { if (StringUtils.isNotBlank(log.getdSubscribeId())) {
params.put("searchDSubscribeId", log.getdSubscribeId()); params.put("searchDSubscribeId", log.getdSubscribeId());
} }
if (StringUtils.isNotBlank(log.getIspCode())) {
params.put("searchIspCode", log.getIspCode());
}
model.addAttribute("appList", appList); model.addAttribute("appList", appList);
model.addAttribute("protocolList", protocolList); model.addAttribute("protocolList", protocolList);
model.addAttribute("webList", webList); model.addAttribute("webList", webList);
@@ -240,9 +241,9 @@ public class NtcConnRecordLogController extends BaseController {
if (StringUtils.isNotBlank(log.getdSubscribeId())) { if (StringUtils.isNotBlank(log.getdSubscribeId())) {
params.put("searchDSubscribeId", log.getdSubscribeId()); params.put("searchDSubscribeId", log.getdSubscribeId());
} }
if (StringUtils.isNotBlank(log.getIspCode())) {
params.put("searchIspCode", log.getIspCode());
}
model.addAttribute("appList", appList); model.addAttribute("appList", appList);
model.addAttribute("protocolList", protocolList); model.addAttribute("protocolList", protocolList);
model.addAttribute("webList", webList); model.addAttribute("webList", webList);

View File

@@ -137,7 +137,7 @@ public class SslRecordLogController extends BaseController {
} else { } else {
hColumns += ","; hColumns += ",";
} }
String cfgIndexInfoNoExport = "," + hColumns; String cfgIndexInfoNoExport = ",action,cfg_id," + hColumns;
noExportMap.put("ssl_record", cfgIndexInfoNoExport); noExportMap.put("ssl_record", cfgIndexInfoNoExport);
dataMap.put("ssl_record", list); dataMap.put("ssl_record", list);
String timeRange = initLogMap(log, "ssl_record"); String timeRange = initLogMap(log, "ssl_record");

View File

@@ -30,6 +30,6 @@ public interface AsnGroupInfoDao extends CrudDao<AsnGroupInfo> {
Long getCount(); Long getCount();
void modifyIssuedIp(AsnGroupInfo info); void modifyIssuedIp(AsnGroupInfo info);
List<AsnGroupInfo> findAsnGroupInfoByAsnGroup(AsnGroupInfo asnGroupInfo); List<AsnGroupInfo> findAsnGroupInfoByAsnGroup(AsnGroupInfo asnGroupInfo);
void updateIsUsedAndIsValid(@Param("asnNos")List asnNos,@Param("isUsed")Integer isUsed,@Param("isValid")Integer isValid); void updateIsUsedAndIsValid(@Param("groupIds")List groupIds,@Param("isUsed")Integer isUsed,@Param("isValid")Integer isValid);
List<AsnGroupInfo> findAsnGroupInfoByAsnNos(@Param("asnNos")List asnNos,@Param("isUsed")Integer isUsed); List<AsnGroupInfo> findAsnGroupInfoByGroupIds(@Param("groupIds")List groupIds,@Param("isUsed")Integer isUsed);
} }

View File

@@ -17,10 +17,11 @@
<result column="issued_ips" property="issuedIPs" jdbcType="INTEGER" /> <result column="issued_ips" property="issuedIPs" jdbcType="INTEGER" />
<result column="is_used" property="isUsed" jdbcType="INTEGER" /> <result column="is_used" property="isUsed" jdbcType="INTEGER" />
<result column="region_id" property="regionId" jdbcType="INTEGER" /> <result column="region_id" property="regionId" jdbcType="INTEGER" />
<result column="org_group_id" property="orgGroupId" jdbcType="INTEGER" />
</resultMap> </resultMap>
<sql id="AsnGroupInfoColumns"> <sql id="AsnGroupInfoColumns">
r.id,r.group_id,r.compile_id,r.organization,r.country,r.detail,r.is_valid,r.create_time,r.edit_time, r.id,r.group_id,r.compile_id,r.organization,r.country,r.detail,r.is_valid,r.create_time,r.edit_time,
r.creator_id,r.editor_id,r.asn_id,r.issued_ips,r.is_used,r.region_id r.creator_id,r.editor_id,r.asn_id,r.issued_ips,r.is_used,r.region_id,r.org_group_id
</sql> </sql>
<!-- 查出所有 有效数据--> <!-- 查出所有 有效数据-->
@@ -62,6 +63,9 @@
</if> </if>
<if test="isValid != null and isValid != ''"> <if test="isValid != null and isValid != ''">
AND r.is_valid =#{isValid } AND r.is_valid =#{isValid }
</if>
<if test="orgGroupId != null and orgGroupId != ''">
AND r.org_group_id =#{orgGroupId }
</if> </if>
AND r.is_valid !=-1 AND r.is_valid !=-1
<!-- 数据范围过滤 --> <!-- 数据范围过滤 -->
@@ -102,7 +106,8 @@
edit_time, edit_time,
asn_id, asn_id,
is_used, is_used,
region_id region_id,
org_group_id
)values ( )values (
#{groupId,jdbcType=INTEGER}, #{groupId,jdbcType=INTEGER},
#{compileId,jdbcType=INTEGER}, #{compileId,jdbcType=INTEGER},
@@ -116,7 +121,8 @@
#{editTime,jdbcType=TIMESTAMP}, #{editTime,jdbcType=TIMESTAMP},
#{asnId,jdbcType=INTEGER}, #{asnId,jdbcType=INTEGER},
#{isUsed,jdbcType=INTEGER}, #{isUsed,jdbcType=INTEGER},
#{regionId,jdbcType=INTEGER} #{regionId,jdbcType=INTEGER},
#{orgGroupId,jdbcType=INTEGER}
) )
</insert> </insert>
@@ -159,6 +165,9 @@
</if> </if>
<if test="regionId != null" > <if test="regionId != null" >
region_id = #{regionId,jdbcType=INTEGER}, region_id = #{regionId,jdbcType=INTEGER},
</if>
<if test="orgGroupId != null" >
org_group_id = #{orgGroupId,jdbcType=INTEGER},
</if> </if>
</trim> </trim>
</set> </set>
@@ -181,10 +190,10 @@
</if> </if>
</set> </set>
<where> <where>
<if test="asnNos != null" > <if test="groupIds != null" >
and asn_id in and group_id in
<foreach collection ="asnNos" item="asnId" separator ="," open="(" close=")"> <foreach collection ="groupIds" item="groupId" separator ="," open="(" close=")">
#{asnId} #{groupId}
</foreach > </foreach >
</if> </if>
<if test="isValid != null" > <if test="isValid != null" >
@@ -351,7 +360,7 @@
</if> </if>
</where> </where>
</select> </select>
<select id="findAsnGroupInfoByAsnNos" resultMap="AsnGroupInfoMap"> <select id="findAsnGroupInfoByGroupIds" resultMap="AsnGroupInfoMap">
SELECT SELECT
<include refid="AsnGroupInfoColumns"/> <include refid="AsnGroupInfoColumns"/>
FROM FROM
@@ -360,11 +369,11 @@
<if test="isUsed != null" > <if test="isUsed != null" >
AND r.is_used = #{isUsed,jdbcType=INTEGER} AND r.is_used = #{isUsed,jdbcType=INTEGER}
</if> </if>
<if test="asnNos != null" > <if test="groupIds != null" >
and r.asn_id in and r.group_id in
<foreach collection ="asnNos" item="asnId" separator ="," open="(" close=")"> <foreach collection ="groupIds" item="groupId" separator ="," open="(" close=")">
#{asnId} #{groupId}
</foreach > </foreach >
</if> </if>
</where> </where>
</select> </select>

View File

@@ -33,6 +33,6 @@ public interface AsnIpCfgDao extends CrudDao<AsnIpCfg>{
public void ajaxDeleteAsnIp(@Param("ids")String ids); public void ajaxDeleteAsnIp(@Param("ids")String ids);
public int hasValidAsnIp(@Param("asnId")Long asnNo); public int hasValidAsnIp(@Param("asnId")Long asnNo);
public AsnIpCfg getOne(AsnIpCfg cfg); public AsnIpCfg getOne(AsnIpCfg cfg);
public void updateAsn(@Param("asnId")String asnNo,@Param("organization")String organization,@Param("country")String country,@Param("detail")String detail); public void updateAsn(@Param("asnId")String asnNo,@Param("organization")String organization,@Param("country")String country,@Param("detail")String detail,@Param("groupId")String groupId);
public void updateAsnIpByAsnGroups(@Param("entity")AsnIpCfg entity,@Param("asnGroups")List<AsnGroupInfo> asnGroups,@Param("asnIds")String asnIds); public void updateAsnIpByAsnGroups(@Param("entity")AsnIpCfg entity,@Param("asnGroups")List<AsnGroupInfo> asnGroups,@Param("asnIds")String asnIds);
} }

View File

@@ -560,7 +560,7 @@
delete from asn_ip_cfg where asn_ip_group in (${ids}) delete from asn_ip_cfg where asn_ip_group in (${ids})
</update> </update>
<update id="updateAsn" parameterType="java.lang.String" > <update id="updateAsn" parameterType="java.lang.String" >
update asn_ip_cfg set organization=#{organization}, country=#{country}, detail=#{detail} where user_region1 =#{asnId} and is_valid=0 update asn_ip_cfg set organization=#{organization}, country=#{country}, detail=#{detail},user_region1 =#{asnId} where asn_ip_group =#{groupId} and is_valid=0
</update> </update>
<select id="findOtherIps" resultType="java.lang.Integer" parameterType="java.lang.Integer"> <select id="findOtherIps" resultType="java.lang.Integer" parameterType="java.lang.Integer">
select 1 from asn_ip_cfg where is_valid=1 and asn_ip_group=#{groupId} and cfg_id !=#{cfgId} limit 1 select 1 from asn_ip_cfg where is_valid=1 and asn_ip_group=#{groupId} and cfg_id !=#{cfgId} limit 1

View File

@@ -123,4 +123,6 @@ public interface AppCfgDao {
//app ssl证书特征配置CRUD //app ssl证书特征配置CRUD
public List<AppSslCertCfg> findAppBySslList(@Param("ids")String ids); public List<AppSslCertCfg> findAppBySslList(@Param("ids")String ids);
//查找此分组下是否有App IP
public List<AppIpCfg> findAppIpByCompileId(@Param("compileId")Integer compileId) ;
} }

View File

@@ -3109,4 +3109,7 @@
left join request_info ri on r.request_id=ri.id left join request_info ri on r.request_id=ri.id
where r.CFG_ID in (${ids}) where r.CFG_ID in (${ids})
</select> </select>
<select id="findAppIpByCompileId" resultMap="AppIpCfgMap">
select * from app_ip_cfg where is_valid=1 and compile_Id = #{compileId}
</select>
</mapper> </mapper>

View File

@@ -130,4 +130,21 @@
</if> </if>
</where> </where>
</update> </update>
<update id="update" >
UPDATE config_group_info
<set>
update_time=now(),
<if test="groupName != null and groupName != ''">
group_name =#{groupName},
</if>
</set>
<where>
<if test="groupType != null">
and group_type =#{groupType}
</if>
<if test="groupId != null">
and group_id =#{groupId}
</if>
</where>
</update>
</mapper> </mapper>

File diff suppressed because it is too large Load Diff

View File

@@ -74,41 +74,43 @@ public class AsnGroupInfoService extends BaseService{
String country=entity.getCountry().trim().toUpperCase(); String country=entity.getCountry().trim().toUpperCase();
entity.setOrganization(org); entity.setOrganization(org);
entity.setCountry(country); entity.setCountry(country);
int groupId=0;
//获取组织
ConfigGroupInfo configGroupInfo=configGroupInfoDao.getAsnGroupByName(org);
if(configGroupInfo==null) { int groupId=0;
List<Integer> groupIds= ConfigServiceUtil.getId(2,2); //新增
if(groupIds.size()>0) { if(entity.getGroupId()==null){
groupId=groupIds.get(0).intValue();
}else { //1、根据信的组织名称获取组织config_group_info
throw new MaatConvertException("Get asn group id failed"); ConfigGroupInfo configGroupInfo=configGroupInfoDao.getAsnGroupByName(entity.getOrganization());
if(configGroupInfo ==null){
//新增组织
List<Integer> groupIds= ConfigServiceUtil.getId(2,1);
if(groupIds.size()>0) {
groupId=groupIds.get(0).intValue();
}else {
throw new MaatConvertException("Get asn group id failed");
}
configGroupInfo=new ConfigGroupInfo();
configGroupInfo.setGroupName(entity.getOrganization());
configGroupInfo.setIsIssued(0);
configGroupInfo.setGroupType(4);
configGroupInfo.setIsAuditAll(0);
configGroupInfo.setIsUsed(0);
configGroupInfo.setGroupId(groupIds.get(0));
configGroupInfo.setInsertTime(new Date());
configGroupInfoDao.insertConfigGroupInfo(configGroupInfo);
} }
configGroupInfo=new ConfigGroupInfo();
configGroupInfo.setGroupName(org.toUpperCase());
configGroupInfo.setIsIssued(0);
configGroupInfo.setGroupType(4);
configGroupInfo.setIsAuditAll(0);
configGroupInfo.setIsUsed(0);
configGroupInfo.setGroupId(groupIds.get(1));
configGroupInfo.setInsertTime(new Date());
configGroupInfoDao.insertConfigGroupInfo(configGroupInfo);
}else {
List<Integer> groupIds= ConfigServiceUtil.getId(2,1); List<Integer> groupIds= ConfigServiceUtil.getId(2,1);
if(groupIds.size()>0) { if(groupIds.size()>0) {
groupId=groupIds.get(0).intValue(); groupId=groupIds.get(0).intValue();
}else { }else {
throw new MaatConvertException("Get asn group id failed"); throw new MaatConvertException("Get asn group id failed");
} }
}
//新增
if(entity.getGroupId()==null){
Date createTime=new Date(); Date createTime=new Date();
entity.setCreatorId(UserUtils.getUser().getId()); entity.setCreatorId(UserUtils.getUser().getId());
entity.setCreateTime(createTime); entity.setCreateTime(createTime);
entity.setGroupId(groupId); entity.setGroupId(groupId);
entity.setOrgGroupId(configGroupInfo.getGroupId());
entity.setIsValid(0); entity.setIsValid(0);
//分组已被策略设定为下发全部域则需要自动下发新增的asno //分组已被策略设定为下发全部域则需要自动下发新增的asno
if(configGroupInfo.getIsAuditAll() != null && configGroupInfo.getIsAuditAll().equals(1)){ if(configGroupInfo.getIsAuditAll() != null && configGroupInfo.getIsAuditAll().equals(1)){
@@ -139,41 +141,43 @@ public class AsnGroupInfoService extends BaseService{
} }
//修改 //修改
}else{ }else{
long id=entity.getId(); //查询旧的asn group
AsnGroupInfo group=asnGroupInfoDao.getById(id); AsnGroupInfo oldGroup=asnGroupInfoDao.getById(entity.getId());
int count=asnGroupInfoDao.getCountGroupInfoByName(group.getOrganization()); //根据旧的组织名称查询config group info
if(count==1&&!group.getOrganization().equalsIgnoreCase(entity.getOrganization())) { ConfigGroupInfo oldConfigGroupInfo=configGroupInfoDao.getAsnGroupByName(oldGroup.getOrganization());
configGroupInfoDao.delAsnGroup(group.getOrganization()); if(oldConfigGroupInfo ==null){
} //新增组织
ConfigGroupInfo configGroupInfo1=configGroupInfoDao.getAsnGroupByName(entity.getOrganization()); List<Integer> groupIds= ConfigServiceUtil.getId(2,1);
if(configGroupInfo1==null) { if(groupIds.size()>0) {
List<Integer> groupIds= ConfigServiceUtil.getId(2,2); groupId=groupIds.get(0).intValue();
if(groupIds.size()>0) { }else {
groupId=groupIds.get(0).intValue(); throw new MaatConvertException("Get asn group id failed");
}else { }
throw new MaatConvertException("Get asn group id failed"); oldConfigGroupInfo=new ConfigGroupInfo();
} oldConfigGroupInfo.setGroupName(entity.getOrganization());
configGroupInfo1=new ConfigGroupInfo(); oldConfigGroupInfo.setIsIssued(0);
configGroupInfo1.setGroupName(entity.getOrganization().toUpperCase()); oldConfigGroupInfo.setGroupType(4);
configGroupInfo1.setIsIssued(0); oldConfigGroupInfo.setIsAuditAll(0);
configGroupInfo1.setGroupType(4); oldConfigGroupInfo.setIsUsed(0);
configGroupInfo1.setIsUsed(0); oldConfigGroupInfo.setGroupId(groupIds.get(0));
configGroupInfo1.setIsAuditAll(0); oldConfigGroupInfo.setInsertTime(new Date());
configGroupInfo1.setGroupId(groupIds.get(1)); configGroupInfoDao.insert(oldConfigGroupInfo);
configGroupInfo1.setInsertTime(new Date()); }else{
configGroupInfoDao.insertConfigGroupInfo(configGroupInfo1); ConfigGroupInfo newConfigGroupInfo=new ConfigGroupInfo();
newConfigGroupInfo.setGroupId(oldConfigGroupInfo.getGroupId());
newConfigGroupInfo.setId(oldConfigGroupInfo.getId());
newConfigGroupInfo.setGroupName(entity.getOrganization());
configGroupInfoDao.update(newConfigGroupInfo);
} }
Date editTime=new Date(); Date editTime=new Date();
entity.setEditorId(UserUtils.getUser().getId()); entity.setEditorId(UserUtils.getUser().getId());
entity.setEditTime(editTime); entity.setEditTime(editTime);
entity.setGroupId(groupId);
asnGroupInfoDao.update(entity); asnGroupInfoDao.update(entity);
asnIpCfgDao.updateAsn(String.valueOf(entity.getAsnId()),entity.getOrganization(),entity.getCountry(),entity.getDetail()); asnIpCfgDao.updateAsn(String.valueOf(entity.getAsnId()),entity.getOrganization(),entity.getCountry(),entity.getDetail(),String.valueOf(entity.getGroupId()));
if(configGroupInfo1.getIsUsed()!= null if(oldConfigGroupInfo.getIsUsed()!= null
&& configGroupInfo1.getIsUsed().equals(1)){ && oldConfigGroupInfo.getIsUsed().equals(1)){
group.setGroupId(groupId); auditAsn(entity,oldConfigGroupInfo,Constants.OPACTION_PUT);
group.setAsnId(entity.getAsnId());
auditAsn(group,configGroupInfo1,Constants.OPACTION_PUT);
} }
} }
@@ -216,14 +220,14 @@ public class AsnGroupInfoService extends BaseService{
} }
@Transactional(readOnly=false,rollbackFor=RuntimeException.class) @Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void delete(String ids,String asnIds){ public void delete(String ids,String asnIds,String groupIds){
if(!StringUtil.isEmpty(ids)){ if(!StringUtil.isEmpty(ids)){
List<GroupReuseCfg> commonGroupList=new ArrayList<>(); List<GroupReuseCfg> commonGroupList=new ArrayList<>();
//查询已经被策略引用的asn //查询已经被策略引用的asn
List<AsnGroupInfo> asnList=asnGroupInfoDao.findAsnGroupInfoByAsnNos(Arrays.asList(asnIds.split(",")), 1); List<AsnGroupInfo> asnList=asnGroupInfoDao.findAsnGroupInfoByGroupIds(Arrays.asList(groupIds.split(",")), 1);
//修改asn为无效且解除引用 //修改asn为无效且解除引用
asnGroupInfoDao.updateIsUsedAndIsValid(Arrays.asList(asnIds.split(",")), 0, -1); asnGroupInfoDao.updateIsUsedAndIsValid(Arrays.asList(groupIds.split(",")), 0, -1);
//删除asn下的所有asn IP //删除asn下的所有asn IP
asnIpCfgDao.deleteByAsnId(asnIds); asnIpCfgDao.deleteByAsnId(asnIds);
@@ -364,9 +368,5 @@ public class AsnGroupInfoService extends BaseService{
List<AsnGroupInfo> list=asnGroupInfoDao.findAsnGroupInfoByAsnGroup(asnGroupInfo); List<AsnGroupInfo> list=asnGroupInfoDao.findAsnGroupInfoByAsnGroup(asnGroupInfo);
return list; return list;
} }
public List<AsnGroupInfo> findAsnGroupList(List<String> asnNos,Integer isUsed){
List<AsnGroupInfo> list=asnGroupInfoDao.findAsnGroupInfoByAsnNos(asnNos,null );
return list;
}
} }

View File

@@ -510,114 +510,138 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
List<AsnGroupInfo> auditAsnGroupList=new ArrayList<>(); List<AsnGroupInfo> auditAsnGroupList=new ArrayList<>();
SqlSessionFactory sqlSessionFactory=SpringContextHolder.getBean(SqlSessionFactory.class); SqlSessionFactory sqlSessionFactory=SpringContextHolder.getBean(SqlSessionFactory.class);
final SqlSession batchSqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false); final SqlSession batchSqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false);
Integer serviceId=0;
try{ try{
int issuedNum=asnIpCfgs.size(); if(!StringUtil.isEmpty(asnIpCfgs)){
for(int index = 0; index < asnIpCfgs.size();index++){ serviceId=asnIpCfgs.get(0).getServiceId();
AsnIpCfg t = asnIpCfgs.get(index); int issuedNum=asnIpCfgs.size();
BaseIpCfg ipCfg=new BaseIpCfg(); for(int index = 0; index < asnIpCfgs.size();index++){
BeanUtils.copyProperties(t, ipCfg); AsnIpCfg t = asnIpCfgs.get(index);
ipCfg.setTableName(AsnIpCfg.getTablename()); BaseIpCfg ipCfg=new BaseIpCfg();
((IpCfgDao) batchSqlSession.getMapper(IpCfgDao.class)).audit(ipCfg); BeanUtils.copyProperties(t, ipCfg);
} ipCfg.setTableName(AsnIpCfg.getTablename());
batchSqlSession.commit(); ((IpCfgDao) batchSqlSession.getMapper(IpCfgDao.class)).audit(ipCfg);
AsnGroupInfo asnGroupInfo=new AsnGroupInfo();
asnGroupInfo.setAsnId(asn);
asnGroupInfo=asnGroupInfoDao.getInfoByAsnNo(asnGroupInfo);
Integer groupId=asnGroupInfo.getGroupId();
MaatCfg maatCfg = new MaatCfg();
List<MaatCfg> configCompileList = new ArrayList();
List<GroupCfg> groupRelationList = new ArrayList();
List<IpCfg> ipRegionList = new ArrayList();
List<StringCfg> strRegionList = new ArrayList();
List<NumBoundaryCfg> numRegionList = new ArrayList();
List<DigestCfg> digestRegionList = new ArrayList();
List<IpCfg> areaIpRegionList = new ArrayList();
if(isValid==Constants.VALID_YES) {//审核通过
if(asnGroupInfo.getIsValid()==0) {//ans组未下发过下发编译配置
asnGroupInfo.setIsValid(1);
asnGroupInfo.setEditorId(UserUtils.getUser().getId());
asnGroupInfo.setEditTime(new Date());
asnGroupInfo.setIssuedIPs(issuedNum+0L);
asnGroupInfoDao.updateValid(asnGroupInfo);
maatCfg.initDefaultValue();
ToMaatBean maatBean = new ToMaatBean();
//group
GroupCfg groupCfg=new GroupCfg();
groupCfg.setCompileId(asnGroupInfo.getCompileId());
groupCfg.setGroupId(groupId);
groupCfg.setIsValid(Constants.VALID_YES);
//asnGroupId标记为公共组
groupCfg.setIsCommonGroup(1);
groupCfg.setAuditTime(asnIpCfgs.get(0).getAuditTime());
groupRelationList.add(groupCfg);
BeanUtils.copyProperties(asnIpCfgs.get(0), maatCfg);
ipRegionList.addAll(groupReuseCfgAddRemoveConvert(asnIpCfgs,Constants.VALID_YES,groupId));
maatCfg.setCompileId(asnGroupInfo.getCompileId());
maatCfg.setAction(asnIpCfgs.get(0).getAction());
maatCfg.setAuditTime(asnIpCfgs.get(0).getAuditTime());
maatCfg.setIpRegionList(ipRegionList);
maatCfg.setStrRegionList(strRegionList);
maatCfg.setNumRegionList(numRegionList);
maatCfg.setDigestRegionList(digestRegionList);
maatCfg.setGroupRelationList(groupRelationList);
maatCfg.setGroupNum(groupRelationList.size());
maatCfg.setAreaIpRegionList(areaIpRegionList);
maatCfg.setIsValid(isValid);
// 设置ASN自定义域
String userRegion = "ASN_ID=" + asnIpCfgs.get(0).getUserRegion1();
maatCfg.setUserRegion(userRegion);
configCompileList.add(maatCfg);
maatBean.setConfigCompileList(configCompileList);
maatBean.setAuditTime(asnIpCfgs.get(0).getAuditTime());
maatBean.setCreatorName(asnIpCfgs.get(0).getCurrentUser().getName());
maatBean.setVersion(Constants.MAAT_VERSION);
maatBean.setOpAction(Constants.INSERT_ACTION);
// 调用服务接口下发配置数据
String json = gsonToJson(maatBean);
logger.info("ASN IP配置下发配置参数" + json);
// 调用服务接口下发配置
ToMaatResult result = ConfigServiceUtil.postMaatCfg(json);
logger.info("ASN IP配置下发响应信息" + result.getMsg());
}else if(asnGroupInfo.getIsValid()==1){//已经下发过,走分组复用
asnGroupInfo.setIssuedIPs(issuedNum+0l);
asnGroupInfoDao.update(asnGroupInfo);
asnIPRegionSendToMaat(asnIpCfgs,isValid,Constants.OPACTION_POST);
}else {
throw new RuntimeException("asnGroupInfo isValid value is "+asnGroupInfo.getIsValid());
}
}else if(isValid==Constants.VALID_NO) {//取消审核通过
asnGroupInfo.setIssuedIPs(0L-issuedNum);
asnGroupInfoDao.update(asnGroupInfo);
//已经下发过的,调用分组复用配置删除接口
GroupReuseAddBean maatBean = new GroupReuseAddBean();
List<GroupReuseCfg> groupReuseList=new ArrayList<>();
GroupReuseCfg groupReuseCfg=new GroupReuseCfg();
ipRegionList.addAll(groupReuseCfgAddRemoveConvert(asnIpCfgs,Constants.VALID_NO,groupId));
groupReuseCfg.setIpRegionList(ipRegionList);
groupReuseCfg.setStrRegionList(strRegionList);
groupReuseCfg.setNumRegionList(numRegionList);
groupReuseList.add(groupReuseCfg);
maatBean.setGroupReuseCfgList(groupReuseList);
maatBean.setAuditTime(asnIpCfgs.get(0).getAuditTime());
maatBean.setCreatorName(asnIpCfgs.get(0).getCurrentUser().getName());
maatBean.setVersion(Constants.MAAT_VERSION);
maatBean.setOpAction(Constants.UPDATE_ACTION);
//调用服务接口下发配置数据
String json=gsonToJson(maatBean);
logger.info("ASN IP域删除配置下发配置参数"+json);
//调用服务接口下发配置
ToMaatResult result = ConfigServiceUtil.auditCommonGroupRegionSources(json,3);
logger.info("ASN IP域删除配置响应信息"+result.getMsg());
//如果一个asn组下没有IP了修改有效状态
if(hasValidAsnIp(asn)) {
asnGroupInfo.setIsValid(0);
asnGroupInfo.setEditorId(UserUtils.getUser().getId());
asnGroupInfo.setEditTime(new Date());
asnGroupInfoDao.updateValid(asnGroupInfo);
} }
batchSqlSession.commit();
AsnGroupInfo asnGroupInfo=new AsnGroupInfo();
asnGroupInfo.setAsnId(asn);
asnGroupInfo=asnGroupInfoDao.getInfoByAsnNo(asnGroupInfo);
Integer groupId=asnGroupInfo.getGroupId();
MaatCfg maatCfg = new MaatCfg();
List<MaatCfg> configCompileList = new ArrayList();
List<GroupCfg> groupRelationList = new ArrayList();
List<IpCfg> ipRegionList = new ArrayList();
List<StringCfg> strRegionList = new ArrayList();
List<NumBoundaryCfg> numRegionList = new ArrayList();
List<DigestCfg> digestRegionList = new ArrayList();
List<IpCfg> areaIpRegionList = new ArrayList();
if(isValid==Constants.VALID_YES) {//审核通过
if(asnGroupInfo.getIsValid()==0) {//ans组未下发过下发编译配置
asnGroupInfo.setIsValid(1);
asnGroupInfo.setEditorId(UserUtils.getUser().getId());
asnGroupInfo.setEditTime(new Date());
asnGroupInfo.setIssuedIPs(issuedNum+0L);
asnGroupInfoDao.updateValid(asnGroupInfo);
maatCfg.initDefaultValue();
ToMaatBean maatBean = new ToMaatBean();
//group
GroupCfg groupCfg=new GroupCfg();
groupCfg.setCompileId(asnGroupInfo.getCompileId());
groupCfg.setGroupId(groupId);
groupCfg.setIsValid(Constants.VALID_YES);
//asnGroupId标记为公共组
groupCfg.setIsCommonGroup(1);
groupCfg.setAuditTime(asnIpCfgs.get(0).getAuditTime());
groupRelationList.add(groupCfg);
BeanUtils.copyProperties(asnIpCfgs.get(0), maatCfg);
ipRegionList.addAll(groupReuseCfgAddRemoveConvert(asnIpCfgs,Constants.VALID_YES,groupId));
maatCfg.setCompileId(asnGroupInfo.getCompileId());
maatCfg.setAction(asnIpCfgs.get(0).getAction());
maatCfg.setAuditTime(asnIpCfgs.get(0).getAuditTime());
maatCfg.setIpRegionList(ipRegionList);
maatCfg.setStrRegionList(strRegionList);
maatCfg.setNumRegionList(numRegionList);
maatCfg.setDigestRegionList(digestRegionList);
maatCfg.setGroupRelationList(groupRelationList);
maatCfg.setGroupNum(groupRelationList.size());
maatCfg.setAreaIpRegionList(areaIpRegionList);
maatCfg.setIsValid(isValid);
// 设置ASN自定义域
String userRegion = "ASN_ID=" + asnIpCfgs.get(0).getUserRegion1();
maatCfg.setUserRegion(userRegion);
configCompileList.add(maatCfg);
maatBean.setConfigCompileList(configCompileList);
maatBean.setAuditTime(asnIpCfgs.get(0).getAuditTime());
maatBean.setCreatorName(asnIpCfgs.get(0).getCurrentUser().getName());
maatBean.setVersion(Constants.MAAT_VERSION);
maatBean.setOpAction(Constants.INSERT_ACTION);
// 调用服务接口下发配置数据
String json = gsonToJson(maatBean);
logger.info("ASN IP配置下发配置参数" + json);
// 调用服务接口下发配置
ToMaatResult result = ConfigServiceUtil.postMaatCfg(json);
logger.info("ASN IP配置下发响应信息" + result.getMsg());
}else if(asnGroupInfo.getIsValid()==1){//已经下发过,走分组复用
asnGroupInfo.setIssuedIPs(issuedNum+0l);
asnGroupInfoDao.update(asnGroupInfo);
asnIPRegionSendToMaat(asnIpCfgs,isValid,Constants.OPACTION_POST);
}else {
throw new RuntimeException("asnGroupInfo isValid value is "+asnGroupInfo.getIsValid());
}
}else if(isValid==Constants.VALID_NO) {//取消审核通过
asnGroupInfo.setIssuedIPs(0L-issuedNum);
asnGroupInfoDao.update(asnGroupInfo);
//如果一个asn组下没有IP了修改有效状态,并且删除
if(hasValidAsnIp(asn)) {
//已经下发过的,调用分组复用配置删除接口
GroupReuseAddBean maatBean = new GroupReuseAddBean();
List<GroupReuseCfg> groupReuseList=new ArrayList<>();
GroupReuseCfg groupReuseCfg=new GroupReuseCfg();
ipRegionList.addAll(groupReuseCfgAddRemoveConvert(asnIpCfgs,Constants.VALID_NO,groupId));
groupReuseCfg.setIpRegionList(ipRegionList);
groupReuseCfg.setStrRegionList(strRegionList);
groupReuseCfg.setNumRegionList(numRegionList);
groupReuseList.add(groupReuseCfg);
maatBean.setGroupReuseCfgList(groupReuseList);
maatBean.setAuditTime(asnIpCfgs.get(0).getAuditTime());
maatBean.setCreatorName(asnIpCfgs.get(0).getCurrentUser().getName());
maatBean.setVersion(Constants.MAAT_VERSION);
maatBean.setOpAction(Constants.UPDATE_ACTION);
//调用服务接口下发配置数据
String json=gsonToJson(maatBean);
logger.info("ASN IP域删除配置下发配置参数"+json);
//调用服务接口下发配置
ToMaatResult result = ConfigServiceUtil.auditCommonGroupRegionSources(json,3);
logger.info("ASN IP域删除配置响应信息"+result.getMsg());
}else{
asnGroupInfo.setIsValid(0);
asnGroupInfo.setEditorId(UserUtils.getUser().getId());
asnGroupInfo.setEditTime(new Date());
asnGroupInfoDao.updateValid(asnGroupInfo);
//asn group下没有asn ip之后需要失效整个compileId并且不保留公共组信息
ToMaatBean maatBean = new ToMaatBean();
maatCfg.setCompileId(asnGroupInfo.getCompileId());
maatCfg.setServiceId(serviceId);
maatCfg.setIsValid(0);//无效
//configCompileList.add(addKeepGroupList(maatCfg,entity));
configCompileList.add(maatCfg);
maatBean.setConfigCompileList(configCompileList);
maatBean.setAuditTime(new Date());
maatBean.setCreatorName(UserUtils.getUser().getName());
maatBean.setVersion(Constants.MAAT_VERSION);
maatBean.setOpAction(Constants.UPDATE_ACTION);
//调用服务接口取消配置
String json=gsonToJson(maatBean);
logger.info("asn ip配置下发配置参数"+json);
//调用服务接口下发配置
ToMaatResult result = ConfigServiceUtil.put(json,1);
logger.info("asn ip配置取消配置响应信息"+result.getMsg());
}
}
} }
}finally { }finally {
if(batchSqlSession != null){ if(batchSqlSession != null){

View File

@@ -1168,7 +1168,9 @@ public class AppCfgService extends BaseService {
List<NumBoundaryCfg> numRegionList = new ArrayList(); List<NumBoundaryCfg> numRegionList = new ArrayList();
List<DigestCfg> digestRegionList = new ArrayList(); List<DigestCfg> digestRegionList = new ArrayList();
List<IpCfg> areaIpRegionList = new ArrayList(); List<IpCfg> areaIpRegionList = new ArrayList();
Integer serviceId=0;
this.auditAppIpCfg(entitys); this.auditAppIpCfg(entitys);
serviceId=entitys.get(0).getServiceId();
// for(AppIpCfg entity:entitys) { // for(AppIpCfg entity:entitys) {
// // 保存区域IP信息 // // 保存区域IP信息
// List<AreaIpCfg> areaIpCfgList = areaIpCfgDao.getByCompileId(entitys.get(0).getCompileId()); // List<AreaIpCfg> areaIpCfgList = areaIpCfgDao.getByCompileId(entitys.get(0).getCompileId());
@@ -1272,26 +1274,54 @@ public class AppCfgService extends BaseService {
throw new RuntimeException("Unknown configGroupInfo isIssued value"); throw new RuntimeException("Unknown configGroupInfo isIssued value");
} }
} else if (isAudit == 3) { } else if (isAudit == 3) {
//已经下发过的,调用分组复用配置删除接口 //判断配置取消之后,是否还有有效的配置
GroupReuseAddBean maatBean = new GroupReuseAddBean(); if(hasValidAppIp(configGroupInfo.getCompileId())){
List<GroupReuseCfg> groupReuseList=new ArrayList<>(); //已经下发过的,调用分组复用配置删除接口
GroupReuseCfg groupReuseCfg=new GroupReuseCfg(); GroupReuseAddBean maatBean = new GroupReuseAddBean();
ipRegionList.addAll(groupReuseCfgAddRemoveConvert(entitys,Constants.VALID_NO,groupId)); List<GroupReuseCfg> groupReuseList=new ArrayList<>();
groupReuseCfg.setIpRegionList(ipRegionList); GroupReuseCfg groupReuseCfg=new GroupReuseCfg();
groupReuseCfg.setStrRegionList(strRegionList); ipRegionList.addAll(groupReuseCfgAddRemoveConvert(entitys,Constants.VALID_NO,groupId));
groupReuseCfg.setNumRegionList(numRegionList); groupReuseCfg.setIpRegionList(ipRegionList);
groupReuseList.add(groupReuseCfg); groupReuseCfg.setStrRegionList(strRegionList);
maatBean.setGroupReuseCfgList(groupReuseList); groupReuseCfg.setNumRegionList(numRegionList);
maatBean.setAuditTime(entitys.get(0).getAuditTime()); groupReuseList.add(groupReuseCfg);
maatBean.setCreatorName(entitys.get(0).getCurrentUser().getName()); maatBean.setGroupReuseCfgList(groupReuseList);
maatBean.setVersion(Constants.MAAT_VERSION); maatBean.setAuditTime(entitys.get(0).getAuditTime());
maatBean.setOpAction(Constants.UPDATE_ACTION); maatBean.setCreatorName(entitys.get(0).getCurrentUser().getName());
//调用服务接口下发配置数据 maatBean.setVersion(Constants.MAAT_VERSION);
String json=gsonToJson(maatBean); maatBean.setOpAction(Constants.UPDATE_ACTION);
logger.info("app协议IP域删除配置下发配置参数"+json); //调用服务接口下发配置数据
//调用服务接口下发配置 String json=gsonToJson(maatBean);
ToMaatResult result = ConfigServiceUtil.auditCommonGroupRegionSources(json,3); logger.info("app协议IP域删除配置下发配置参数"+json);
logger.info("app协议IP域删除配置响应信息"+result.getMsg()); //调用服务接口下发配置
ToMaatResult result = ConfigServiceUtil.auditCommonGroupRegionSources(json,3);
logger.info("app协议IP域删除配置响应信息"+result.getMsg());
}else{
//修改组的有效状态为无效。并发送compileid 配置取消 此后组的app ip不再自动下发。
ConfigGroupInfo appConfigGroup=new ConfigGroupInfo();
appConfigGroup.setIsIssued(0);
appConfigGroup.setUpdateTime(new Date());
appConfigGroup.setGroupId(configGroupInfo.getGroupId());
configGroupInfoDao.updateConfigGroupInfobyGroupId(appConfigGroup);
//asn group下没有asn ip之后需要失效整个compileId并且不保留公共组信息
ToMaatBean maatBean = new ToMaatBean();
maatCfg.setCompileId(configGroupInfo.getCompileId());
maatCfg.setServiceId(serviceId);
maatCfg.setIsValid(0);//无效
//configCompileList.add(addKeepGroupList(maatCfg,entity));
configCompileList.add(maatCfg);
maatBean.setConfigCompileList(configCompileList);
maatBean.setAuditTime(new Date());
maatBean.setCreatorName(UserUtils.getUser().getName());
maatBean.setVersion(Constants.MAAT_VERSION);
maatBean.setOpAction(Constants.UPDATE_ACTION);
//调用服务接口取消配置
String json=gsonToJson(maatBean);
logger.info("app Ip 取消配置参数:"+json);
//调用服务接口下发配置
ToMaatResult result = ConfigServiceUtil.put(json,1);
logger.info("app Ip 取消配置响应信息:"+result.getMsg());
}
} }
} }
@@ -2116,4 +2146,13 @@ public class AppCfgService extends BaseService {
} }
public boolean hasValidAppIp(Integer compileId){
List<AppIpCfg> appIps=appCfgDao.findAppIpByCompileId(compileId);
if(!StringUtil.isEmpty(appIps)){
return true;
}else{
return false;
}
}
} }

View File

@@ -863,19 +863,15 @@ public class IpCfgService extends CrudService<IpCfgDao,BaseIpCfg> {
List<NtcSubscribeIdCfg> subscribeIdList = stringCfgDao.findSubscribeIdCfgListByCfgIndexInfo(entity); List<NtcSubscribeIdCfg> subscribeIdList = stringCfgDao.findSubscribeIdCfgListByCfgIndexInfo(entity);
entity.setIpPortList(ipPortList); entity.setIpPortList(ipPortList);
entity.setNtcSubscribeIdCfgList(subscribeIdList); entity.setNtcSubscribeIdCfgList(subscribeIdList);
if(StringUtils.isNotBlank(entity.getCommonGroupIds())) { List<AsnKeywordCfg> asnKeywordCfgs=stringCfgDao.findAsnKeywordCfgList(entity);
List<AsnKeywordCfg> asnKeywordCfgs=stringCfgDao.findAsnKeywordCfgList(entity); entity.setAsnKeywords(asnKeywordCfgs);
entity.setAsnKeywords(asnKeywordCfgs);
}
return entity; return entity;
} }
public CfgIndexInfo exportIpInfo(CfgIndexInfo entity){ public CfgIndexInfo exportIpInfo(CfgIndexInfo entity){
List<IpPortCfg> ipPortList = ipCfgDao.getIpPortList(entity); List<IpPortCfg> ipPortList = ipCfgDao.getIpPortList(entity);
entity.setIpPortList(ipPortList); entity.setIpPortList(ipPortList);
if(StringUtils.isNotBlank(entity.getUserRegion4())) { List<AsnKeywordCfg> asnKeywordCfgs=stringCfgDao.findAsnKeywordCfgList(entity);
List<AsnKeywordCfg> asnKeywordCfgs=stringCfgDao.findAsnKeywordCfgList(entity); entity.setAsnKeywords(asnKeywordCfgs);
entity.setAsnKeywords(asnKeywordCfgs);
}
return entity; return entity;
} }
public BaseIpCfg getIpCfgById(String tableName,long id){ public BaseIpCfg getIpCfgById(String tableName,long id){

View File

@@ -1361,7 +1361,7 @@ nas_ip=NAS IP Address
framed_ip=Framed IP Address framed_ip=Framed IP Address
log_user_name=User Name 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. 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. 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 conn_record=Connection Records
bps=Gbps bps=Gbps
@@ -1474,4 +1474,6 @@ framework_log=Meta Log
block_drop=Block(Drop) block_drop=Block(Drop)
mail_record=Mail Records mail_record=Mail Records
ssl_record=SSL Records ssl_record=SSL Records
http_record=HTTP Records http_record=HTTP Records
second_bps=bps
GBps=GBps

View File

@@ -44,6 +44,7 @@ domain_control=\u0411\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043
dns_control=DNS dns_control=DNS
basic_configuration=\u0411\u0430\u0437\u043e\u0432\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f 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 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 classification_manage=\u041a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f
area_manage=\u0420\u0435\u0433\u0438\u043e\u043d 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 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 null_expression=\u041d\u0435\u0442 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f
and_expression=& and_expression=&
match_method=\u041c\u0435\u0442\u043e\u0434\u044b \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u0438\u0435 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 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 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 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 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 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 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 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 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 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 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_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 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 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 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 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 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 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 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 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 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 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 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 ip=IP
country=\u0421\u0442\u0440\u0430\u043d\u0430 country=\u0421\u0442\u0440\u0430\u043d\u0430
desc=Desc 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 import_limit_is=The maximum import size is
upload_limit_is=The limitation of file uplaod is upload_limit_is=The limitation of file uplaod is
count=Count count=Count
@@ -1472,10 +1473,11 @@ not_exist=not exist
real_time=Real Time real_time=Real Time
history=History history=History
all_columns_hidden=All columns are hidden! all_columns_hidden=All columns are hidden!
no_log=\u041D\u0435\u0442 \u0416\u0443\u0440\u043D\u0430\u043B\u043E\u0432 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 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 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) 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 mail_record=\u0417\u0430\u043f\u0438\u0441\u0438 \u041f\u043e\u0447\u0442\u044b
ssl_record=SSL \u0417\u0430\u043F\u0438\u0441\u0438 ssl_record=SSL \u0417\u0430\u043f\u0438\u0441\u0438
http_record=HTTP \u0417\u0430\u043F\u0438\u0441\u0438 http_record=HTTP \u0417\u0430\u043f\u0438\u0441\u0438
GBps=GBps

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

View File

@@ -0,0 +1,3 @@
--->->IP白名单
INSERT INTO `sys_menu` (`id`, `parent_id`, `parent_ids`, `code`, `name`, `sort`, `href`, `target`, `icon`, `is_show`, `permission`, `create_by`, `create_date`, `update_by`, `update_date`, `remarks`, `del_flag`, `menu_bg`, `quick_action`, `is_top`, `function_id`) VALUES ('1240', '152', '0,1,152,', 'whitelist', 'White List', '1', '', '', '', '1', '', '1', '2019-01-16 14:51:10', '1', '2019-01-16 15:31:46', '', '1', NULL, '0', '0', NULL);
INSERT INTO `sys_menu` (`id`, `parent_id`, `parent_ids`, `code`, `name`, `sort`, `href`, `target`, `icon`, `is_show`, `permission`, `create_by`, `create_date`, `update_by`, `update_date`, `remarks`, `del_flag`, `menu_bg`, `quick_action`, `is_top`, `function_id`) VALUES ('1241', '1240', '0,1,152,1240,', 'ip_whitelist', 'IP White List', '1', '/log/ntc/ipWhiteList', '', '', '1', '', '1', '2019-01-16 14:52:55', '1', '2019-01-16 17:27:31', '', '1', NULL, '0', '0', '3');

View File

@@ -0,0 +1,2 @@
#asn和组织之间的关系属性
ALTER TABLE asn_group_info ADD org_group_id int(20) DEFAULT 0 COMMENT '与config_group_info的group_id关联';

View File

@@ -1,6 +1,7 @@
DELETE FROM app_byte_cfg; DELETE FROM app_byte_cfg;
DELETE FROM app_domain_cfg; DELETE FROM app_domain_cfg;
DELETE FROM app_features_index; DELETE FROM app_features_index;
DELETE FROM app_feature_index;
DELETE FROM app_http_cfg; DELETE FROM app_http_cfg;
DELETE FROM app_id_cfg; DELETE FROM app_id_cfg;
DELETE FROM app_ip_cfg; DELETE FROM app_ip_cfg;
@@ -65,4 +66,8 @@ DELETE FROM ip_reuse_ip_cfg;
DELETE FROM ip_reuse_policy_cfg; DELETE FROM ip_reuse_policy_cfg;
DELETE FROM user_manage; DELETE FROM user_manage;
#clear vpn #clear vpn
DELETE FROM service_dict_info where item_type='5'; DELETE FROM service_dict_info where item_type='5';
-- <20><><EFBFBD><EFBFBD>DNS<4E><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>100<30><30><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2>Է<EFBFBD><D4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>101<30><31>ʼ
ALTER TABLE policy_group_info auto_increment = 101;
-- <20><><EFBFBD><EFBFBD>asn<73>ŷ<EFBFBD><C5B7><EFBFBD><EFBFBD><EFBFBD>
DELETE FROM asn_group_info;

View File

@@ -393,18 +393,7 @@ function cancelPassOpt(url){
}); });
return flag; return flag;
} }
//验证是否可删除
function validateIsDelete(checkboxes){
var flag = false;
$(checkboxes).filter(":checked").each(function(){
//alert($(this).val());
if($(this).val()!=0 && $(this).val()!=3){//状态为3的配置为取消审核的配置可删除
flag = true;
return;
}
});
return flag;
}
//验证选择的配置,是否有审核通过的 //验证选择的配置,是否有审核通过的
function validatePass(checkboxes){ function validatePass(checkboxes){
var flag = false; var flag = false;

View File

@@ -65,13 +65,14 @@ $(function(){
<input type="hidden" name="groupId" value="${_cfg.groupId}"> <input type="hidden" name="groupId" value="${_cfg.groupId}">
<input type="hidden" name="isValid" value="${_cfg.isValid}"> <input type="hidden" name="isValid" value="${_cfg.isValid}">
<input type="hidden" name="compileId" value="${_cfg.compileId}"> <input type="hidden" name="compileId" value="${_cfg.compileId}">
<input type="hidden" name="regionId" value="${_cfg.regionId}">
<div class="form-body"> <div class="form-body">
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
<div class="form-group"> <div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="organization"/></label> <label class="control-label col-md-3"><font color="red">*</font><spring:message code="organization"/></label>
<div class="col-md-6"> <div class="col-md-6">
<input class="form-control required" type="text" name="organization" value="${_cfg.organization}" > <input class="form-control required " type="text" name="organization" value="${_cfg.organization}" >
</div> </div>
<div for="organization"></div> <div for="organization"></div>
</div> </div>

View File

@@ -282,10 +282,10 @@
<%-- <th><spring:message code="letter"/></th> <%-- <th><spring:message code="letter"/></th>
<th><spring:message code="classification"/></th> <th><spring:message code="classification"/></th>
<th><spring:message code="attribute"/></th> <th><spring:message code="attribute"/></th>
<th><spring:message code="label"/></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="is_audit"/></th>
<%-- <th><spring:message code="log_total"/></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="creator" ><spring:message code="creator"/></th>
<th column="config_time" class="sort-column r.create_time"><spring:message code="config_time"/></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> <th column="editor" ><spring:message code="editor"/></th>
@@ -388,12 +388,7 @@
${fns:abbr(lableInfo,20)} ${fns:abbr(lableInfo,20)}
</a> </a>
</td> --%> </td> --%>
<%-- <td>${cfg.areaEffectiveIds }</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> <td>
<c:choose> <c:choose>
<c:when test="${cfg.isAudit eq '0'}"><span class="label label-danger"><spring:message code="created"></spring:message></span></c:when> <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> --%> </c:choose> --%>
</td> </td>
<%-- <td audit="${cfg.isAudit}" functionId="${cfg.functionId}" compileId="${cfg.compileId}" action="${cfg.action}"><div class="loading-total"></div></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>${cfg.creatorName }</td>
<td><fmt:formatDate value="${cfg.createTime }" pattern="yyyy-MM-dd HH:mm:ss"/></td> <td><fmt:formatDate value="${cfg.createTime }" pattern="yyyy-MM-dd HH:mm:ss"/></td>
<td>${cfg.editorName }</td> <td>${cfg.editorName }</td>

View File

@@ -20,15 +20,21 @@
<input type="hidden" name="${cfgName}.machMethod" value="3"> <input type="hidden" name="${cfgName}.machMethod" value="3">
<input type="hidden" name="${cfgName}.isHexbin" value="0"> <input type="hidden" name="${cfgName}.isHexbin" value="0">
<input type="hidden" name="${cfgName}.cfgId" value="${cfg.cfgId}"> <input type="hidden" name="${cfgName}.cfgId" value="${cfg.cfgId}">
<!-- asn no regionId 【界面每次校验的时候填写】-->
<input type="hidden" name="${cfgName}.userRegion1" value="">
<!-- asn no的组号groupId 【界面每次校验的时候填写】-->
<input type="hidden" name="${cfgName}.userRegion2" value="">
<!-- asn no组织的groupId 【界面每次校验的时候填写】-->
<input type="hidden" name="${cfgName}.userRegion3" value="">
<!-- 是否自动更新ASN NO --> <!-- 是否自动更新ASN NO -->
<input type="hidden" name="${cfgName}.userRegion2" value="${cfg.userRegion2}"> <input type="hidden" name="${cfgName}.userRegion4" value="${cfg.userRegion4}">
<div class="hidden" id="selectAll"><spring:message code="select_All_Text"/></div> <%-- <div class="hidden" id="selectAll"><spring:message code="select_All_Text"/></div>
<div class="hidden" id="deselectAll"><spring:message code="deselect_All_Text"/></div> <div class="hidden" id="deselectAll"><spring:message code="deselect_All_Text"/></div>
<input type="hidden" name="${cfgName}.organizationGroupId" value="${cfg.userRegion1}"> <input type="hidden" name="${cfgName}.organizationGroupId" value="${cfg.userRegion1}">
<input type="hidden" name="${cfgName}.asnNo" value="${cfg.cfgKeywords}" used="false"> <input type="hidden" name="${cfgName}.asnNo" value="${cfg.cfgKeywords}" used="false"> --%>
<div class="row"> <div class="row">
<div class="col-md-6"> <%-- <div class="col-md-6">
<div class="form-group"> <div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="organization"/></label> <label class="control-label col-md-3"><font color="red">*</font><spring:message code="organization"/></label>
<div class="col-md-6"> <div class="col-md-6">
@@ -38,13 +44,14 @@
</div> </div>
<div for="${cfgName}.userRegion1"></div> <div for="${cfgName}.userRegion1"></div>
</div> </div>
</div> </div> --%>
<div class="col-md-6"> <div class="col-md-6">
<div class="form-group"> <div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="asn_no"/></label> <label class="control-label col-md-3"><font color="red">*</font><spring:message code="asn_no"/></label>
<div class="col-md-6"> <div class="col-md-6">
<select name="${cfgName}.cfgKeywords" class="selectpicker show-tick form-control asnNo required" multiple data-live-search="true" data-actions-box="true" data-live-search-placeholder="search" > <input class="form-control required digits asnMustExists" type="text" name="${cfgName}.cfgKeywords" value="${cfg.cfgKeywords}" ctx="${ctx}">
</select> <%-- <select name="${cfgName}.cfgKeywords" class="selectpicker show-tick form-control asnNo required" multiple data-live-search="true" data-actions-box="true" data-live-search-placeholder="search" >
</select> --%>
</div> </div>
<div for="${cfgName}.cfgKeywords"></div> <div for="${cfgName}.cfgKeywords"></div>
</div> </div>

View File

@@ -26,6 +26,13 @@ $(function(){
$(".level").find("select[name$='level']").val("0"); $(".level").find("select[name$='level']").val("0");
$(".level").find("select[name$='level']").selectpicker("refresh"); $(".level").find("select[name$='level']").selectpicker("refresh");
} }
if($("span").hasClass("label-success")){
$("input[name='action']").not(":checked").attr("disabled","disabled");
$("#save").attr("disabled","disabled");
}else{
$("input[name='action']").removeAttr("disabled");
$("#save").removeAttr("disabled");
}
$("input[name~=action]").on("change",function(){ $("input[name~=action]").on("change",function(){
$("#serviceId").val($(this).attr("serviceId")); $("#serviceId").val($(this).attr("serviceId"));
if($(".action:checked").val()==1){ if($(".action:checked").val()==1){
@@ -64,6 +71,10 @@ $(function(){
$(element).parents(".form-group").find("div[for='"+element.attr("name")+"']").append(error); $(element).parents(".form-group").find("div[for='"+element.attr("name")+"']").append(error);
}, },
submitHandler: function(form){ submitHandler: function(form){
if($("span").hasClass("label-success")){
top.$.jBox.tip("<spring:message code='has_approved'/>", "<spring:message code='info'/>");
return;
}
loading('onloading...'); loading('onloading...');
form.submit(); form.submit();
}, },
@@ -96,7 +107,7 @@ $(function(){
<input type="hidden" name="cfgs[0].isAudit" value="1"> <input type="hidden" name="cfgs[0].isAudit" value="1">
<input type="hidden" name="cfgs[0].isAreaEffective" value="0"> <input type="hidden" name="cfgs[0].isAreaEffective" value="0">
<input type="hidden" name="cfgs[0].description" value="0"> <input type="hidden" name="cfgs[0].description" value="0">
<input type="hidden" name="cfgs[0].level" value="0"> <input type="hidden" name="cfgs[0].level" value="100">
<input type="hidden" name="preset" value="1"> <input type="hidden" name="preset" value="1">
<c:if test="${fn:length(serviceList)>0 and fn:length(cfgs)eq 0}"> <c:if test="${fn:length(serviceList)>0 and fn:length(cfgs)eq 0}">
<input type="hidden" name="cfgs[0].serviceId" value="${serviceList[0].serviceId}"> <input type="hidden" name="cfgs[0].serviceId" value="${serviceList[0].serviceId}">

View File

@@ -331,13 +331,13 @@
<th column="cfg_id" class="sort-column r.compile_id" style="display: none;"><spring:message code="cfg_id"/></th> <th column="cfg_id" class="sort-column r.compile_id" style="display: none;"><spring:message code="cfg_id"/></th>
<th column="config_describe" class="sort-column r.cfg_desc"><spring:message code="config_describe"/></th> <th column="config_describe" class="sort-column r.cfg_desc"><spring:message code="config_describe"/></th>
<th column="block_type" class="sort-column r.action"><spring:message code="block_type"/></th> <th column="block_type" class="sort-column r.action"><spring:message code="block_type"/></th>
<th column="group" ><spring:message code="group"/></th> <th column="group" ><spring:message code="group"/></th>
<th column="ip_type" ><spring:message code="ip_type"/></th> <th column="is_audit" ><spring:message code="is_audit"/></th>
<th column="IP" ><spring:message code="IP"/></th> <th column="ip_type" ><spring:message code="ip_type"/></th>
<%-- <th column="port" ><spring:message code="port"/></th> --%> <%-- <th column="port" ><spring:message code="port"/></th> --%>
<th column="ip_pattern" ><spring:message code="ip_pattern"/></th> <th column="ip_pattern" ><spring:message code="ip_pattern"/></th>
<th column="IP" ><spring:message code="IP"/></th>
<%-- <th column="port_pattern" ><spring:message code="port_pattern"/></th> --%> <%-- <th column="port_pattern" ><spring:message code="port_pattern"/></th> --%>
<th column="is_audit" ><spring:message code="is_audit"/></th>
<th column="letter" ><spring:message code="letter"/></th> <th column="letter" ><spring:message code="letter"/></th>
<th column="classification" ><spring:message code="classification"/></th> <th column="classification" ><spring:message code="classification"/></th>
<th column="attribute" ><spring:message code="attribute"/></th> <th column="attribute" ><spring:message code="attribute"/></th>
@@ -370,13 +370,20 @@
<c:if test="${empty cfg.dnsStrategyName}"> <c:if test="${empty cfg.dnsStrategyName}">
<spring:message code="default_group"/> <spring:message code="default_group"/>
</c:if> </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>
<c:when test="${cfg.isAudit eq '1'}"><span class="label label-success"><spring:message code="approved"></spring:message></span></c:when>
<c:when test="${cfg.isAudit eq '2'}"><span class="label label-warning"><spring:message code="unapproved"></spring:message></span></c:when>
<c:when test="${cfg.isAudit eq '3'}"><span indexTable="${cfg.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>
<td> <td>
<c:forEach items="${fns:getDictList('IP_TYPE')}" var="ipTypeC"> <c:forEach items="${fns:getDictList('IP_TYPE')}" var="ipTypeC">
<c:if test="${cfg.ipType==ipTypeC.itemCode}"><spring:message code="${ipTypeC.itemValue }"/></c:if> <c:if test="${cfg.ipType==ipTypeC.itemCode}"><spring:message code="${ipTypeC.itemValue }"/></c:if>
</c:forEach> </c:forEach>
</td> </td>
<td title="${cfg.destIpAddress }">${fns:abbr(cfg.destIpAddress, 42)}</td>
<%-- <td>${cfg.destPort }</td> --%> <%-- <td>${cfg.destPort }</td> --%>
<td> <td>
<c:forEach items="${fns:getDictList('IP_PATTERN')}" var="ipPatternC"> <c:forEach items="${fns:getDictList('IP_PATTERN')}" var="ipPatternC">
@@ -388,14 +395,7 @@
<c:if test="${cfg.portPattern eq portPatternC.itemCode}"><spring:message code="${portPatternC.itemValue }"/></c:if> <c:if test="${cfg.portPattern eq portPatternC.itemCode}"><spring:message code="${portPatternC.itemValue }"/></c:if>
</c:forEach> </c:forEach>
</td> --%> </td> --%>
<td> <td title="${cfg.destIpAddress }">${fns:abbr(cfg.destIpAddress, 42)}</td>
<c:choose>
<c:when test="${cfg.isAudit eq '0'}"><span class="label label-danger"><spring:message code="created"></spring:message></span></c:when>
<c:when test="${cfg.isAudit eq '1'}"><span class="label label-success"><spring:message code="approved"></spring:message></span></c:when>
<c:when test="${cfg.isAudit eq '2'}"><span class="label label-warning"><spring:message code="unapproved"></spring:message></span></c:when>
<c:when test="${cfg.isAudit eq '3'}"><span indexTable="${cfg.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>${cfg.requestName }</td> <td>${cfg.requestName }</td>
<td > <td >
<c:set var="classify"></c:set> <c:set var="classify"></c:set>

View File

@@ -409,14 +409,14 @@
<th column="userregion1" ><spring:message code="intercept_intensity"/></th> <th column="userregion1" ><spring:message code="intercept_intensity"/></th>
</c:if> --%> </c:if> --%>
<th column="is_audit" ><spring:message code="is_audit"/></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="whether_area_block" ><spring:message code="whether_area_block"/></th> <th column="whether_area_block" ><spring:message code="whether_area_block"/></th>
<th column="letter" ><spring:message code="letter"/></th> <th column="letter" ><spring:message code="letter"/></th>
<th column="classification" ><spring:message code="classification"/></th> <th column="classification" ><spring:message code="classification"/></th>
<th column="attribute" ><spring:message code="attribute"/></th> <th column="attribute" ><spring:message code="attribute"/></th>
<th column="label" ><spring:message code="label"/></th> <th column="label" ><spring:message code="label"/></th>
<th column="valid_identifier" class="sort-column a.is_valid"><spring:message code="valid_identifier"/></th> <th column="valid_identifier" class="sort-column a.is_valid"><spring:message code="valid_identifier"/></th>
<th column="do_log" ><spring:message code="do_log"/></th>
<th column="log_total" ><spring:message code="log_total"/></th>
<th column="creator" ><spring:message code="creator"/></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="config_time" class="sort-column a.create_time"><spring:message code="config_time"/></th>
<th column="editor" ><spring:message code="editor"/></th> <th column="editor" ><spring:message code="editor"/></th>
@@ -552,6 +552,14 @@
<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: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> </c:choose>
</td> </td>
<td>
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict">
<c:if test="${dict.itemCode eq indexCfg.doLog and indexCfg.action!=64 }">
<spring:message code="${dict.itemValue }"/>
</c:if>
</c:forEach>
</td>
<td audit="${indexCfg.isAudit}" functionId="${indexCfg.functionId}" compileId="${indexCfg.compileId}" action="${indexCfg.action}"><div class="loading-total"></div></td>
<td> <td>
<c:if test="${indexCfg.isAreaEffective==0}"><spring:message code="all"/></c:if> <c:if test="${indexCfg.isAreaEffective==0}"><spring:message code="all"/></c:if>
<c:if test="${indexCfg.isAreaEffective==1}"> <c:if test="${indexCfg.isAreaEffective==1}">
@@ -623,15 +631,7 @@
<c:if test="${indexCfg.isValid==0}"><spring:message code="no"/></c:if> <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="yes"/></c:if>
<c:if test="${indexCfg.isValid==-1}"><spring:message code="deleted"/></c:if> <c:if test="${indexCfg.isValid==-1}"><spring:message code="deleted"/></c:if>
</td> </td>
<td>
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict">
<c:if test="${dict.itemCode eq indexCfg.doLog and indexCfg.action!=64 }">
<spring:message code="${dict.itemValue }"/>
</c:if>
</c:forEach>
</td>
<td audit="${indexCfg.isAudit}" functionId="${indexCfg.functionId}" compileId="${indexCfg.compileId}" action="${indexCfg.action}"><div class="loading-total"></div></td>
<td>${indexCfg.creatorName }</td> <td>${indexCfg.creatorName }</td>
<td><fmt:formatDate value="${indexCfg.createTime }" pattern="yyyy-MM-dd HH:mm:ss"/></td> <td><fmt:formatDate value="${indexCfg.createTime }" pattern="yyyy-MM-dd HH:mm:ss"/></td>
<td>${indexCfg.editorName }</td> <td>${indexCfg.editorName }</td>

View File

@@ -312,6 +312,10 @@ var processAction=function(configType,obj){
}) })
$(".ratelimitAction").addClass("hidden"); $(".ratelimitAction").addClass("hidden");
$(".ratelimitAction").find("input[name^='userRegion'],select[name^='userRegion']").attr("disabled",true); $(".ratelimitAction").find("input[name^='userRegion'],select[name^='userRegion']").attr("disabled",true);
$(".subscribeId").find(".glyphicon-remove").click();
$(".subscribeId").prev("h4").addClass("hidden");
$(".asnRegionV").find(".glyphicon-remove").click();
$(".asnRegionV").prev("h4").addClass("hidden");
}else if(action==16){ }else if(action==16){
//先清空,再添加 //先清空,再添加
o.find("select[name$='protocol']").empty(); o.find("select[name$='protocol']").empty();
@@ -322,6 +326,8 @@ var processAction=function(configType,obj){
}) })
$(".ratelimitAction").addClass("hidden"); $(".ratelimitAction").addClass("hidden");
$(".ratelimitAction").find("input[name^='userRegion'],select[name^='userRegion']").attr("disabled",true); $(".ratelimitAction").find("input[name^='userRegion'],select[name^='userRegion']").attr("disabled",true);
$(".subscribeId").prev("h4").removeClass("hidden");
$(".asnRegionV").prev("h4").removeClass("hidden");
}else if(action==64){ }else if(action==64){
//先清空,再添加 //先清空,再添加
o.find("select[name$='protocol']").empty(); o.find("select[name$='protocol']").empty();
@@ -342,6 +348,8 @@ var processAction=function(configType,obj){
$(".droprate").find("select[name='userRegion2']").attr("disabled",true); $(".droprate").find("select[name='userRegion2']").attr("disabled",true);
$(".droprate").find("select[name='userRegion2']").selectpicker("refresh"); $(".droprate").find("select[name='userRegion2']").selectpicker("refresh");
} }
$(".subscribeId").prev("h4").removeClass("hidden");
$(".asnRegionV").prev("h4").removeClass("hidden");
}else if(action==1){ }else if(action==1){
//先清空,再添加 //先清空,再添加
o.find("select[name$='protocol']").empty(); o.find("select[name$='protocol']").empty();
@@ -352,6 +360,8 @@ var processAction=function(configType,obj){
}) })
$(".ratelimitAction").addClass("hidden"); $(".ratelimitAction").addClass("hidden");
$(".ratelimitAction").find("input[name^='userRegion'],select[name^='userRegion']").attr("disabled",true); $(".ratelimitAction").find("input[name^='userRegion'],select[name^='userRegion']").attr("disabled",true);
$(".subscribeId").prev("h4").removeClass("hidden");
$(".asnRegionV").prev("h4").removeClass("hidden");
} }
o.find("select[name$='protocol']").selectpicker("refresh"); o.find("select[name$='protocol']").selectpicker("refresh");
//切换后如果没找到选项,选任意协议 //切换后如果没找到选项,选任意协议
@@ -419,6 +429,7 @@ var showHideIPSECProtocol=function(obj){
<input type="hidden" name="cfgId" value="${_cfg.cfgId}"> <input type="hidden" name="cfgId" value="${_cfg.cfgId}">
<input type="hidden" name="compileId" value="${_cfg.compileId}"> <input type="hidden" name="compileId" value="${_cfg.compileId}">
<input type="hidden" name="functionId" value="${_cfg.functionId}"> <input type="hidden" name="functionId" value="${_cfg.functionId}">
<input type="hidden" name="commonGroupIds" value="">
<input type="hidden" id="serviceId" name="serviceId" <input type="hidden" id="serviceId" name="serviceId"
value="${_cfg.serviceId}"> value="${_cfg.serviceId}">
<c:forEach items="${regionList}" var="region"> <c:forEach items="${regionList}" var="region">

View File

@@ -221,7 +221,7 @@
<c:if test="${(region[0] eq 3) && (not empty _cfg.asnKeywords)}"> <c:if test="${(region[0] eq 3) && (not empty _cfg.asnKeywords)}">
<c:forEach items="${_cfg.asnKeywords}" var="asn"> <c:forEach items="${_cfg.asnKeywords}" var="asn">
<div id="${region[1]}Info${index}" class="content" name="subCfg${index}"> <div id="${region[1]}Info${index}" class="content" name="subCfg${index}">
<div class="row"> <%-- <div class="row">
<div class="col-md-4"> <div class="col-md-4">
<div class="form-group"> <div class="form-group">
<label><spring:message code='organization'/>:</label> <label><spring:message code='organization'/>:</label>
@@ -230,7 +230,7 @@
</label> </label>
</div> </div>
</div> </div>
</div> </div> --%>
<div class="row"> <div class="row">
<div class="col-md-4"> <div class="col-md-4">
<div class="form-group"> <div class="form-group">

View File

@@ -401,8 +401,7 @@
<th column="address_pool" class="sort-column r.addr_pool_name"><spring:message code="address_pool"/></th> <th column="address_pool" class="sort-column r.addr_pool_name"><spring:message code="address_pool"/></th>
<th column="ip_total" class="sort-column r.ip_total"><spring:message code="ip_total"/></th> <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="available_ip_total" ><spring:message code="available_ip_total"/></th>
<%-- <th column="user_name" ><spring:message code="block_type"/></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="is_audit" ><spring:message code="is_audit"/></th>
<%-- <th column="whether_area_block" ><spring:message code="whether_area_block"/></th> --%> <%-- <th column="whether_area_block" ><spring:message code="whether_area_block"/></th> --%>
<th column="operation" ><spring:message code="operation"/></th> <th column="operation" ><spring:message code="operation"/></th>
@@ -410,6 +409,7 @@
<th column="classification" ><spring:message code="classification"/></th> <th column="classification" ><spring:message code="classification"/></th>
<th column="attribute" ><spring:message code="attribute"/></th> <th column="attribute" ><spring:message code="attribute"/></th>
<th column="label" ><spring:message code="label"/></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="creator" ><spring:message code="creator"/></th>
<th column="config_time" class="sort-column r.create_time"><spring:message code="config_time"/></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> <th column="editor" ><spring:message code="editor"/></th>
@@ -438,12 +438,7 @@
<spring:message code="${dict.itemValue }"/> <spring:message code="${dict.itemValue }"/>
</c:if> </c:if>
</c:forEach> </c:forEach>
</td> --%> </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> <td>
<c:choose> <c:choose>
<c:when test="${cfg.isAudit eq '0'}"><span class="label label-danger"><spring:message code="created"></spring:message></span></c:when> <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)} ${fns:abbr(lableInfo,20)}
</a> </a>
</td> </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>${cfg.creatorName }</td>
<td><fmt:formatDate value="${cfg.createTime }" pattern="yyyy-MM-dd HH:mm:ss"/></td> <td><fmt:formatDate value="${cfg.createTime }" pattern="yyyy-MM-dd HH:mm:ss"/></td>
<td>${cfg.editorName }</td> <td>${cfg.editorName }</td>

View File

@@ -353,18 +353,17 @@
<th column="translated_dest_port" ><spring:message code="translated_dest_port"/></th> <th column="translated_dest_port" ><spring:message code="translated_dest_port"/></th>
<th column="protocol" ><spring:message code="protocol"/></th> <th column="protocol" ><spring:message code="protocol"/></th>
<th column="user_type"><spring:message code="user_type"/></th> <th column="user_type"><spring:message code="user_type"/></th>
<th column="user"><spring:message code="user"/></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="is_audit" ><spring:message code="is_audit"/></th>
<%-- <th column="do_log" ><spring:message code="do_log"/></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="whether_area_block" ><spring:message code="whether_area_block"/></th> --%>
<th column="letter" ><spring:message code="letter"/></th> <th column="letter" ><spring:message code="letter"/></th>
<th column="classification" ><spring:message code="classification"/></th> <th column="classification" ><spring:message code="classification"/></th>
<th column="attribute" ><spring:message code="attribute"/></th> <th column="attribute" ><spring:message code="attribute"/></th>
<th column="label" ><spring:message code="label"/></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="creator" ><spring:message code="creator"/></th>
<th column="config_time" class="sort-column a.create_time"><spring:message code="config_time"/></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> <th column="editor" ><spring:message code="editor"/></th>
@@ -417,16 +416,14 @@
</c:if> </c:if>
</c:forEach> </c:forEach>
</td> </td>
<td audit="${indexCfg.isAudit}" functionId="${indexCfg.functionId}" compileId="${indexCfg.compileId}" action="${indexCfg.action}" serviceId="${indexCfg.serviceId}"><div class="loading-total"></div></td>
<%-- <td> <%-- <td>
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict"> <c:forEach items="${fns:getDictList('DO_LOG') }" var="dict">
<c:if test="${dict.itemCode eq indexCfg.doLog }"> <c:if test="${dict.itemCode eq indexCfg.doLog }">
<spring:message code="${dict.itemValue }"/> <spring:message code="${dict.itemValue }"/>
</c:if> </c:if>
</c:forEach> </c:forEach>
</td> --%> </td> --%>
<%-- <td> <%-- <td>
<c:if test="${indexCfg.isAreaEffective==0}"><spring:message code="all"/></c:if> <c:if test="${indexCfg.isAreaEffective==0}"><spring:message code="all"/></c:if>
<c:if test="${indexCfg.isAreaEffective==1}"> <c:if test="${indexCfg.isAreaEffective==1}">
@@ -434,12 +431,7 @@
<spring:message code="selective"/> <spring:message code="selective"/>
</a> </a>
</c:if> </c:if>
</td> --%> </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> <td>
<c:choose> <c:choose>
<c:when test="${indexCfg.isAudit eq '0'}"><span class="label label-danger"><spring:message code="created"></spring:message></span></c:when> <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: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> </c:choose>
</td> </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>${indexCfg.requestName }</td>
<td> <td>
<c:set var="classify"></c:set> <c:set var="classify"></c:set>
@@ -507,7 +501,11 @@
${fns:abbr(lableInfo,20)} ${fns:abbr(lableInfo,20)}
</a> </a>
</td> </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>${indexCfg.creatorName }</td>
<td><fmt:formatDate value="${indexCfg.createTime }" pattern="yyyy-MM-dd HH:mm:ss"/></td> <td><fmt:formatDate value="${indexCfg.createTime }" pattern="yyyy-MM-dd HH:mm:ss"/></td>
<td>${indexCfg.editorName }</td> <td>${indexCfg.editorName }</td>

View File

@@ -213,15 +213,15 @@ var switchUserType = function(obj){
</div> </div>
<div class="row"> <div class="row">
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6 hidden">
<div class="form-group"> <div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="user_type"/></label> <label class="control-label col-md-3"><font color="red">*</font><spring:message code="user_type"/></label>
<div class="col-md-6"> <div class="col-md-6">
<select name="userType" class="selectpicker show-tick form-control required"> <select name="userType" class="selectpicker show-tick form-control required">
<option value=""><spring:message code="select"/></option> <%-- <option value=""><spring:message code="select"/></option> --%>
<option value="VPN" <c:if test="${_cfg.userType eq 'VPN' }">selected</c:if>><spring:message code="policy_vpn_user"/></option> <option value="VPN" selected ><spring:message code="policy_vpn_user"/></option>
<option value="SIPv4" <c:if test="${_cfg.userType eq 'SIPv4' }">selected</c:if>><spring:message code="policy_sipv4_user"/></option> <%-- <option value="SIPv4" <c:if test="${_cfg.userType eq 'SIPv4' }">selected</c:if>><spring:message code="policy_sipv4_user"/></option>
<option value="SIPv6" <c:if test="${_cfg.userType eq 'SIPv6' }">selected</c:if>><spring:message code="policy_sipv6_user"/></option> <option value="SIPv6" <c:if test="${_cfg.userType eq 'SIPv6' }">selected</c:if>><spring:message code="policy_sipv6_user"/></option> --%>
</select> </select>
</div> </div>
<div for="userType"></div> <div for="userType"></div>

View File

@@ -331,8 +331,7 @@
<th column="user"><spring:message code="user"/></th> <th column="user"><spring:message code="user"/></th>
<%-- <th column="ip"><spring:message code="ip"/></th> --%> <%-- <th column="ip"><spring:message code="ip"/></th> --%>
<th column="log_total"><spring:message code="log_total"/></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="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="is_audit"><spring:message code="is_audit"/></th>
<%-- <th column="do_log"><spring:message code="do_log"/></th> --%> <%-- <th column="do_log"><spring:message code="do_log"/></th> --%>
<%-- <th column="whether_area_block"><spring:message code="whether_area_block"/></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="classification"><spring:message code="classification"/></th>
<th column="attribute"><spring:message code="attribute"/></th> <th column="attribute"><spring:message code="attribute"/></th>
<th column="label"><spring:message code="label"/></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="creator"><spring:message code="creator"/></th>
<th column="config_time" class="sort-column r.create_time"><spring:message code="config_time"/></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> <th column="editor"><spring:message code="editor"/></th>
@@ -390,12 +390,7 @@
<spring:message code="${dict.itemValue }"/> <spring:message code="${dict.itemValue }"/>
</c:if> </c:if>
</c:forEach> </c:forEach>
</td> --%> </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> <td>
<c:choose> <c:choose>
<c:when test="${indexCfg.isAudit eq '0'}"><span class="label label-danger"><spring:message code="created"></spring:message></span></c:when> <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)} ${fns:abbr(lableInfo,20)}
</a> </a>
</td> </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>${indexCfg.creatorName }</td>
<td><fmt:formatDate value="${indexCfg.createTime }" pattern="yyyy-MM-dd HH:mm:ss"/></td> <td><fmt:formatDate value="${indexCfg.createTime }" pattern="yyyy-MM-dd HH:mm:ss"/></td>
<td>${indexCfg.editorName }</td> <td>${indexCfg.editorName }</td>

View File

@@ -374,10 +374,10 @@
<th column="attribute" ><spring:message code="attribute"/></th> <th column="attribute" ><spring:message code="attribute"/></th>
<th column="label" ><spring:message code="label"/></th> --%> <th column="label" ><spring:message code="label"/></th> --%>
<th column="is_audit" ><spring:message code="is_audit"/></th> <th column="is_audit" ><spring:message code="is_audit"/></th>
<th column="valid_identifier" class="sort-column a.is_valid"><spring:message code="valid_identifier"/></th>
<th column="do_log" ><spring:message code="do_log"/></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="valid_identifier" class="sort-column a.is_valid"><spring:message code="valid_identifier"/></th>
<th column="creator" ><spring:message code="creator"/></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="config_time" class="sort-column a.create_time"><spring:message code="config_time"/></th>
<th column="editor" ><spring:message code="editor"/></th> <th column="editor" ><spring:message code="editor"/></th>
@@ -476,12 +476,7 @@
<c:when test="${indexCfg.isAudit eq '2'}"><span class="label label-warning"><spring:message code="unapproved"></spring:message></span></c:when> <c:when test="${indexCfg.isAudit eq '2'}"><span class="label label-warning"><spring:message code="unapproved"></spring:message></span></c:when>
<c:when test="${indexCfg.isAudit eq '3'}"><span class="label label-warning"><spring:message code="cancel_approved"></spring:message></span></c:when> <c:when test="${indexCfg.isAudit eq '3'}"><span class="label label-warning"><spring:message code="cancel_approved"></spring:message></span></c:when>
</c:choose> </c:choose>
</td> </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> <td>
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict"> <c:forEach items="${fns:getDictList('DO_LOG') }" var="dict">
<c:if test="${dict.itemCode eq indexCfg.doLog }"> <c:if test="${dict.itemCode eq indexCfg.doLog }">
@@ -490,6 +485,11 @@
</c:forEach> </c:forEach>
</td> </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}" serviceId="${indexCfg.serviceId}"><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>${indexCfg.creatorName }</td>
<td><fmt:formatDate value="${indexCfg.createTime }" pattern="yyyy-MM-dd HH:mm:ss"/></td> <td><fmt:formatDate value="${indexCfg.createTime }" pattern="yyyy-MM-dd HH:mm:ss"/></td>
<td>${indexCfg.editorName }</td> <td>${indexCfg.editorName }</td>

View File

@@ -79,7 +79,7 @@ body {
<!-- 网络带宽 --><spring:message code="traffic"/> <!-- 网络带宽 --><spring:message code="traffic"/>
</label> </label>
</p> </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> <span class="numberRun4">0</span > <span class="numberRun4-unit">bps</span></a>
</div> </div>
</div> </div>

View File

@@ -162,6 +162,8 @@
<th><spring:message code="percentage"/> (<spring:message code="packets"/>)</th> <th><spring:message code="percentage"/> (<spring:message code="packets"/>)</th>
<th><spring:message code="bytes"/></th> <th><spring:message code="bytes"/></th>
<th><spring:message code="percentage"/> (<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> </tr>
</thead> </thead>
<tbody id="tableData"></tbody> <tbody id="tableData"></tbody>
@@ -317,6 +319,8 @@
html += "<td class='tc'>" + data.pktPercent + " %</td>"; html += "<td class='tc'>" + data.pktPercent + " %</td>";
html += "<td class='tc'>" + Math.round(data.byteNum*100)/100 + "</td>"; html += "<td class='tc'>" + Math.round(data.byteNum*100)/100 + "</td>";
html += "<td class='tc'>" + data.bytePercent + " %</td>"; html += "<td class='tc'>" + data.bytePercent + " %</td>";
html += "<td class='tc'>" + data.pps + "</td>";
html += "<td class='tc'>" + data.bps + "</td>";
html += "</tr>" html += "</tr>"
if(index==fileDataS.length-1){ if(index==fileDataS.length-1){
html+="<tr class='tr-total hidden'>" html+="<tr class='tr-total hidden'>"
@@ -327,7 +331,9 @@
html+= "<td class='tc'>"+"--"+"</td>"; html+= "<td class='tc'>"+"--"+"</td>";
html+= "<td class='tc'>"+totalbyte+"</td>"; html+= "<td class='tc'>"+totalbyte+"</td>";
html+= "<td class='tc'>"+"--"+"</td>"; html+= "<td class='tc'>"+"--"+"</td>";
html+="</tr>" html+= "<td class='tc'>"+"--"+"</td>";
html+= "<td class='tc'>"+"--"+"</td>";
html+="</tr>"
} }
} }
$("#tableData").append(html); $("#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="percentage"/> (<spring:message code="packets"/>)</th>
<th class="tl"><spring:message code="GByte"/></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="percentage"/> (<spring:message code="GByte"/>)</th>
<th class="tl"><spring:message code="pps"/></th>
<th class="tl"><spring:message code="second_bps"/></th>
</tr> </tr>
</thead> </thead>
<tbody id="tableData"></tbody> <tbody id="tableData"></tbody>
@@ -353,6 +355,8 @@ function htmlData(fileDataS){
html+= "<td class='tc'>"+packper+"%"+"</td>"; html+= "<td class='tc'>"+packper+"%"+"</td>";
html+= "<td class='tc'>"+Math.round(data.GByte*100)/100+"</td>"; html+= "<td class='tc'>"+Math.round(data.GByte*100)/100+"</td>";
html+= "<td class='tc'>"+gbytper+"%"+"</td>"; html+= "<td class='tc'>"+gbytper+"%"+"</td>";
html+= "<td class='tc'>"+data.pps+"</td>";
html+= "<td class='tc'>"+data.bps+"</td>";
html+="</tr>" html+="</tr>"
if(index==fileDataS.length-1){ if(index==fileDataS.length-1){
html+="<tr class='tr-total hidden'>" html+="<tr class='tr-total hidden'>"
@@ -364,6 +368,8 @@ function htmlData(fileDataS){
html+= "<td class='tc'>"+"100%"+"</td>"; html+= "<td class='tc'>"+"100%"+"</td>";
html+= "<td class='tc'>"+Math.round(totalGByte*100)/100+"</td>"; html+= "<td class='tc'>"+Math.round(totalGByte*100)/100+"</td>";
html+= "<td class='tc'>"+"100%"+"</td>"; html+= "<td class='tc'>"+"100%"+"</td>";
html+= "<td class='tc'>"+"--"+"</td>";
html+= "<td class='tc'>"+"--"+"</td>";
html+="</tr>" 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="percentage"/> (<spring:message code="packets"/>)</th>
<th class="tl"><spring:message code="GByte"/></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="percentage"/> (<spring:message code="GByte"/>)</th>
<th class="tl"><spring:message code="pps"/></th>
<th class="tl"><spring:message code="second_bps"/></th>
</tr> </tr>
</thead> </thead>
<tbody id="tableData"></tbody> <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.packets/data.allPackets*100).toFixed(2)+"%"+"</td>";
html+= "<td class='tc'>"+(data.count/1073741824).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.count/data.allGByte*100).toFixed(2)+"%"+"</td>";
html+= "<td class='tc'>"+data.pps+"</td>";
html+= "<td class='tc'>"+data.bps+"</td>";
html+="</tr>" html+="</tr>"
if(index==fileDataS.length-1){ if(index==fileDataS.length-1){
html+="<tr class='tr-total hidden'>" html+="<tr class='tr-total hidden'>"
@@ -308,6 +312,8 @@ function htmlData(fileDataS){
html+= "<td class='tc'>"+"100%"+"</td>"; html+= "<td class='tc'>"+"100%"+"</td>";
html+= "<td class='tc'>"+(data.allGByte/1073741824).toFixed(2)+"</td>"; html+= "<td class='tc'>"+(data.allGByte/1073741824).toFixed(2)+"</td>";
html+= "<td class='tc'>"+"100%"+"</td>"; html+= "<td class='tc'>"+"100%"+"</td>";
html+= "<td class='tc'>"+"--"+"</td>";
html+= "<td class='tc'>"+"--"+"</td>";
html+="</tr>" html+="</tr>"
} }
} }

View File

@@ -100,6 +100,8 @@
<th><spring:message code="s2c_pkt_num"/></th> <th><spring:message code="s2c_pkt_num"/></th>
<th><spring:message code="packet"/></th> <th><spring:message code="packet"/></th>
<th><spring:message code="stat_time"/></th> <th><spring:message code="stat_time"/></th>
<th><spring:message code="pps"/></th>
<th><spring:message code="second_bps"/></th>
</tr> </tr>
</thead> </thead>
<tbody id="tbodyData"> <tbody id="tbodyData">
@@ -422,6 +424,8 @@ function showIpActiveChart(xData,series){
html+= "<td class='tc'>"+rs.s2cPktNum+"</td>"; html+= "<td class='tc'>"+rs.s2cPktNum+"</td>";
html+= "<td class='tc'>"+packetNum+"</td>"; html+= "<td class='tc'>"+packetNum+"</td>";
html+= "<td class='tc'>"+rs.statTime+"</td>"; html+= "<td class='tc'>"+rs.statTime+"</td>";
html+= "<td class='tc'>"+rs.avgPacket+"</td>";
html+= "<td class='tc'>"+rs.avgByte+"</td>";
html+="</tr>" html+="</tr>"
if(i==data.length-1){ if(i==data.length-1){
@@ -435,6 +439,8 @@ function showIpActiveChart(xData,series){
html+= "<td class='tc'>"+totalc2sPkt+"</td>"; html+= "<td class='tc'>"+totalc2sPkt+"</td>";
html+= "<td class='tc'>"+totals2cPkt+"</td>"; html+= "<td class='tc'>"+totals2cPkt+"</td>";
html+= "<td class='tc'>"+totalpacket+"</td>"; html+= "<td class='tc'>"+totalpacket+"</td>";
html+= "<td class='tc'>"+"--"+"</td>";
html+= "<td class='tc'>"+"--"+"</td>";
html+= "<td class='tc'>"+"--"+"</td>"; html+= "<td class='tc'>"+"--"+"</td>";
html+="</tr>" 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="percentage"/> (<spring:message code="packets"/>)</th>
<th class="tl"><spring:message code="GByte"/></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="percentage"/> (<spring:message code="GByte"/>)</th>
<th class="tl"><spring:message code="pps"/></th>
<th class="tl"><spring:message code="second_bps"/></th>
</tr> </tr>
</thead> </thead>
<tbody id="tableData"></tbody> <tbody id="tableData"></tbody>
@@ -343,6 +345,8 @@ function htmlData(fileDataS){
html+= "<td class='tc'>"+packper+"%"+"</td>"; html+= "<td class='tc'>"+packper+"%"+"</td>";
html+= "<td class='tc'>"+Math.round(data.GByte*100)/100+"</td>"; html+= "<td class='tc'>"+Math.round(data.GByte*100)/100+"</td>";
html+= "<td class='tc'>"+gbytper+"%"+"</td>"; html+= "<td class='tc'>"+gbytper+"%"+"</td>";
html+= "<td class='tc'>"+data.pps+"</td>";
html+= "<td class='tc'>"+data.bps+"</td>";
html+="</tr>" html+="</tr>"
if(index==fileDataS.length-1){ if(index==fileDataS.length-1){
html+="<tr class='tr-total hidden'>" html+="<tr class='tr-total hidden'>"
@@ -353,6 +357,8 @@ function htmlData(fileDataS){
html+= "<td class='tc'>"+"100%"+"</td>"; html+= "<td class='tc'>"+"100%"+"</td>";
html+= "<td class='tc'>"+Math.round(totalGByte*100)/100+"</td>"; html+= "<td class='tc'>"+Math.round(totalGByte*100)/100+"</td>";
html+= "<td class='tc'>"+"100%"+"</td>"; html+= "<td class='tc'>"+"100%"+"</td>";
html+= "<td class='tc'>"+"——"+"</td>";
html+= "<td class='tc'>"+"——"+"</td>";
html+="</tr>" html+="</tr>"
} }
} }

View File

@@ -130,7 +130,6 @@
} }
$("#pageNo").val(n); $("#pageNo").val(n);
$("#pageSize").val(s); $("#pageSize").val(s);
// $("#searchForm").attr("action","${ctx}/traffic/userBehavior");
$("#searchForm").submit(); $("#searchForm").submit();
return false; return false;
} }
@@ -244,7 +243,7 @@
<span class="selectpicker form-control" ><spring:message code="begin_date"/></span> <span class="selectpicker form-control" ><spring:message code="begin_date"/></span>
</div> </div>
<input id="searchFoundStartTime" name="searchFoundStartTime" type="text" readonly="readonly" maxlength="20" class="form-control Wdate" <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> </div>
<div class="pull-left"> <div class="pull-left">
@@ -253,14 +252,14 @@
<span class="selectpicker form-control" ><spring:message code="end_date"/></span> <span class="selectpicker form-control" ><spring:message code="end_date"/></span>
</div> </div>
<input id="searchFoundEndTime" name="searchFoundEndTime" type="text" readonly="readonly" maxlength="20" class="form-control Wdate" <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> </div>
<div class="pull-left accountSearch"> <div class="pull-left accountSearch">
<form:input path="account" class="form-control"/> <form:input path="account" class="form-control required"/>
</div> </div>
<div class="pull-left nasIpSearch"> <div class="pull-left nasIpSearch">
<form:input path="nasIp" class="form-control"/> <form:input path="nasIp" class="form-control required"/>
</div> </div>
<div class="pull-left"> <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 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="percentage"/> (<spring:message code="packets"/>)</th>
<th><spring:message code="GByte"/></th> <th><spring:message code="GByte"/></th>
<th><spring:message code="percentage"/> (<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> </tr>
</thead> </thead>
<tbody id="tableData"></tbody> <tbody id="tableData"></tbody>
@@ -398,6 +400,8 @@
html += "<td class='tc'>" + packper + " %</td>"; html += "<td class='tc'>" + packper + " %</td>";
html += "<td class='tc'>" + Math.round(data.Gbyte*100)/100 + "</td>"; html += "<td class='tc'>" + Math.round(data.Gbyte*100)/100 + "</td>";
html += "<td class='tc'>" + gbytper + " %</td>"; html += "<td class='tc'>" + gbytper + " %</td>";
html += "<td class='tc'>" + data.pps + "</td>";
html += "<td class='tc'>" + data.bps + "</td>";
html += "</tr>" html += "</tr>"
if(index==fileDataS.length-1){ if(index==fileDataS.length-1){
html+="<tr class='tr-total hidden'>" html+="<tr class='tr-total hidden'>"
@@ -409,6 +413,8 @@
html+= "<td class='tc'>"+"100%"+"</td>"; html+= "<td class='tc'>"+"100%"+"</td>";
html+= "<td class='tc'>"+parseInt(totalGbyte).toFixed(2)+"</td>"; html+= "<td class='tc'>"+parseInt(totalGbyte).toFixed(2)+"</td>";
html+= "<td class='tc'>"+"100%"+"</td>"; html+= "<td class='tc'>"+"100%"+"</td>";
html+= "<td class='tc'>"+"--"+"</td>";
html+= "<td class='tc'>"+"--"+"</td>";
html+="</tr>" html+="</tr>"
} }
} }

View File

@@ -44,6 +44,16 @@
$('#appSelect').selectpicker('render'); $('#appSelect').selectpicker('render');
} }
$('#ispSelect').selectpicker();
var app = $("#isps").val(); //回选的数据
if (app !=null && app !='') {
var seasonlist = app.split(",");
$('#ispSelect').selectpicker('val',seasonlist);
$('#ispSelect').selectpicker('render');
}
$('#protoSelect').selectpicker(); $('#protoSelect').selectpicker();
var proto = $("#protos").val(); //回选的数据 var proto = $("#protos").val(); //回选的数据
if (proto !=null && proto !='') { if (proto !=null && proto !='') {
@@ -127,6 +137,7 @@
<input id="apps" type="hidden" value="${log.appId}"/> <input id="apps" type="hidden" value="${log.appId}"/>
<input id="webs" type="hidden" value="${log.webId}"/> <input id="webs" type="hidden" value="${log.webId}"/>
<input id="protos" type="hidden" value="${log.protoId}"/> <input id="protos" type="hidden" value="${log.protoId}"/>
<input id="isps" type="hidden" value="${log.ispCode}"/>
<!-- 筛选按钮展开状态--> <!-- 筛选按钮展开状态-->
<input id="isFilterAction" name="isFilterAction" type="hidden" value="${log.isFilterAction }"/> <input id="isFilterAction" name="isFilterAction" type="hidden" value="${log.isFilterAction }"/>
<sys:tableSort id="orderBy" name="orderBy. <sys:tableSort id="orderBy" name="orderBy.
@@ -262,11 +273,22 @@
</div> --%> </div> --%>
<div class="row"> <div class="row">
<div class="col-md-2">
<div class="form-group">
<label class="control-label"><spring:message code='isp'/></label>
<select id="ispSelect" name="ispCode" title="<spring:message code="select"/>" class="selectpicker form-control " data-max-options="10" data-selected-text-format="count > 3" multiple data-live-search="true" data-live-search-placeholder="<spring:message code="search"/>">
<c:forEach items="${fns:getIspDicList('ispCode')}" var="isp" >
<option value="${isp.ispKeyCode}"><spring:message code="${isp.ispKeyName}"></spring:message></option>
</c:forEach>
</select>
</div>
</div>
<div class="col-md-2"> <div class="col-md-2">
<div class="form-group"> <div class="form-group">
<label class="control-label"><spring:message code='APP'/></label> <label class="control-label"><spring:message code='APP'/></label>
<select id="appSelect" name="appId" title="<spring:message code="select"/>" class="selectpicker form-control " data-max-options="10" data-selected-text-format="count > 3" multiple data-live-search="true" data-live-search-placeholder="<spring:message code="search"/>"> <select id="appSelect" name="appId" title="<spring:message code="select"/>" class="selectpicker form-control " data-max-options="10" data-selected-text-format="count > 3" multiple data-live-search="true" data-live-search-placeholder="<spring:message code="search"/>">
<option value="" disabled="true"><spring:message code="select"/></option>
<c:forEach items="${appList}" var="app" > <c:forEach items="${appList}" var="app" >
<option value="${app.code}"><spring:message code="${app.item}"></spring:message></option> <option value="${app.code}"><spring:message code="${app.item}"></spring:message></option>
</c:forEach> </c:forEach>
@@ -278,7 +300,6 @@
<div class="form-group"> <div class="form-group">
<label class="control-label"><spring:message code='application_layer_protocol'/></label> <label class="control-label"><spring:message code='application_layer_protocol'/></label>
<select id="protoSelect" name="protoId" title="<spring:message code="select"/>" class="selectpicker form-control " data-max-options="10" data-selected-text-format="count > 3" multiple data-live-search="true" data-live-search-placeholder="<spring:message code="search"/>"> <select id="protoSelect" name="protoId" title="<spring:message code="select"/>" class="selectpicker form-control " data-max-options="10" data-selected-text-format="count > 3" multiple data-live-search="true" data-live-search-placeholder="<spring:message code="search"/>">
<option value="" disabled="true"><spring:message code="select"/></option>
<c:forEach items="${protocolList}" var="proto" > <c:forEach items="${protocolList}" var="proto" >
<option value="${proto.code}"><spring:message code="${proto.item}"></spring:message></option> <option value="${proto.code}"><spring:message code="${proto.item}"></spring:message></option>
</c:forEach> </c:forEach>
@@ -290,7 +311,6 @@
<div class="form-group"> <div class="form-group">
<label class="control-label"><spring:message code="domain_name"/></label> <label class="control-label"><spring:message code="domain_name"/></label>
<select id="webSelect" name="webId" title="<spring:message code="select"/>" class="selectpicker form-control" data-max-options="10" data-selected-text-format="count > 3" multiple data-live-search="true" data-live-search-placeholder="<spring:message code="search"/>"> <select id="webSelect" name="webId" title="<spring:message code="select"/>" class="selectpicker form-control" data-max-options="10" data-selected-text-format="count > 3" multiple data-live-search="true" data-live-search-placeholder="<spring:message code="search"/>">
<option value="" disabled="true"><spring:message code="select"/></option>
<c:forEach items="${webList}" var="web" > <c:forEach items="${webList}" var="web" >
<option value="${web.code}"><spring:message code="${web.item}"></spring:message></option> <option value="${web.code}"><spring:message code="${web.item}"></spring:message></option>
</c:forEach> </c:forEach>
@@ -312,15 +332,14 @@
</div> </div>
</div> </div>
<div class="col-md-2"> </div>
<div class="row">
<div class="col-md-2">
<div class="form-group"> <div class="form-group">
<label><spring:message code="s_asn"></spring:message></label> <label><spring:message code="s_asn"></spring:message></label>
<input name="sAsn" type="text" class="form-control" value="${log.sAsn }"/> <input name="sAsn" type="text" class="form-control" value="${log.sAsn }"/>
</div> </div>
</div> </div>
</div>
<div class="row">
<div class="col-md-2"> <div class="col-md-2">
<div class="form-group"> <div class="form-group">
<label><spring:message code="d_asn"></spring:message></label> <label><spring:message code="d_asn"></spring:message></label>

View File

@@ -353,9 +353,9 @@
<tbody> <tbody>
<c:forEach var="log" items="${page.list }" varStatus="status"> <c:forEach var="log" items="${page.list }" varStatus="status">
<tr> <tr>
<!-- <td> --> <td>
<%-- <%-- <span id="open${status.index}" class="log-open-cfg" compileId="${log.cfgId }"> ▷ </span><span style="display: none" id="close${status.index}" > ▼ </span> --%> <%-- <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" url="${ctx}/ntc/website/ajaxHttpSubList" compileId="${log.cfgId }" ><i class="icon-book-open"></i></a> --%> <a href="javascript:void(0)" name="viewLogInfo" url="${ctx}/ntc/website/ajaxHttpSubList" compileId="${log.cfgId }" ><i class="icon-book-open"></i></a>
<!-- </td> --> <!-- </td> -->
<%-- <td>${log.cfgId }</td> --%> <%-- <td>${log.cfgId }</td> --%>
<td> <td>

View File

@@ -265,7 +265,7 @@
<tr> <tr>
<td> <td>
<%-- <span id="open${status.index}" class="log-open-cfg" compileId="${log.cfgId }"> ▷ </span><span style="display: none" id="close${status.index}" > ▼ </span> --%> <%-- <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" url="${ctx}/ntc/iplist/ajaxSubList" compileId="${log.cfgId }" ><i class="icon-book-open"></i></a> <a href="javascript:void(0)" name="viewLogInfo" url="${ctx}/ntc/whitelist/ajaxIpSubList" compileId="${log.cfgId }" ><i class="icon-book-open"></i></a>
</td> </td>
<td>${log.cfgId }</td> <td>${log.cfgId }</td>
<td> <td>

View File

@@ -237,8 +237,8 @@
<thead> <thead>
<tr> <tr>
<th><spring:message code="log"/></th> <th><spring:message code="log"/></th>
<th class="sort-column cfg_id " isVisible="false" column="cfg_id"><spring:message code="cfg_id"/></th> <%-- <th class="sort-column cfg_id " isVisible="false" column="cfg_id"><spring:message code="cfg_id"/></th> --%>
<th class="sort-column service" isVisible="false" column="action"><spring:message code="action"/></th> <%-- <th class="sort-column service" isVisible="false" column="action"><spring:message code="action"/></th> --%>
<th class="sort-column found_time" column="found_time"><spring:message code="found_time"/></th> <th class="sort-column found_time" column="found_time"><spring:message code="found_time"/></th>
<th class="sort-column recv_time" isVisible="false" column="recv_time"><spring:message code="recv_time"/></th> <th class="sort-column recv_time" isVisible="false" column="recv_time"><spring:message code="recv_time"/></th>
<th class="sort-column entrance_id" isVisible="false" column="entrance_id"><spring:message code="entrance_id"/></th> <th class="sort-column entrance_id" isVisible="false" column="entrance_id"><spring:message code="entrance_id"/></th>
@@ -284,16 +284,16 @@
<%-- <span id="open${status.index}" class="log-open-cfg" compileId="${log.cfgId }"> ▷ </span><span style="display: none" id="close${status.index}" > ▼ </span> --%> <%-- <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" url="${ctx}/ntc/mail/ajaxMailSubList" compileId="${log.cfgId }" ><i class="icon-book-open"></i></a> <a href="javascript:void(0)" name="viewLogInfo" url="${ctx}/ntc/mail/ajaxMailSubList" compileId="${log.cfgId }" ><i class="icon-book-open"></i></a>
</td> </td>
<td>${log.cfgId }</td> <%-- <td>${log.cfgId }</td> --%>
<td> <!-- <td> -->
<c:set var="actions">${log.action }</c:set> <%-- <c:set var="actions">${log.action }</c:set> --%>
<c:forEach items="${fns:getDictList('SERVICE_ACTION')}" var="dict"> <%-- <c:forEach items="${fns:getDictList('SERVICE_ACTION')}" var="dict"> --%>
<c:if test="${dict.itemCode eq log.action}"> <%-- <c:if test="${dict.itemCode eq log.action}"> --%>
<c:set var="actions">${dict.itemValue}</c:set> <%-- <c:set var="actions">${dict.itemValue}</c:set> --%>
</c:if> <%-- </c:if> --%>
</c:forEach> <%-- </c:forEach> --%>
<spring:message code="${actions}"/> <%-- <spring:message code="${actions}"/> --%>
</td> <!-- </td> -->
<td>${log.foundTime }</td> <td>${log.foundTime }</td>
<td>${log.recvTime }</td> <td>${log.recvTime }</td>

View File

@@ -244,8 +244,8 @@
<thead> <thead>
<tr> <tr>
<th><spring:message code="log"/></th> <th><spring:message code="log"/></th>
<th class="sort-column cfg_id " isVisible="false" column="cfg_id"><spring:message code="cfg_id"/></th> <%-- <th class="sort-column cfg_id " isVisible="false" column="cfg_id"><spring:message code="cfg_id"/></th> --%>
<th class="sort-column service" isVisible="false" column="action"><spring:message code="action"/></th> <%-- <th class="sort-column service" isVisible="false" column="action"><spring:message code="action"/></th> --%>
<th class="sort-column found_time" column="found_time"><spring:message code="found_time"/></th> <th class="sort-column found_time" column="found_time"><spring:message code="found_time"/></th>
<th class="sort-column recv_time" isVisible="false" column="recv_time"><spring:message code="recv_time"/></th> <th class="sort-column recv_time" isVisible="false" column="recv_time"><spring:message code="recv_time"/></th>
<th class="sort-column entrance_id" isVisible="false" column="entrance_id"><spring:message code="entrance_id"/></th> <th class="sort-column entrance_id" isVisible="false" column="entrance_id"><spring:message code="entrance_id"/></th>
@@ -290,16 +290,16 @@
<%-- <span id="open${status.index}" class="log-open-cfg" compileId="${log.cfgId }"> ▷ </span><span style="display: none" id="close${status.index}" > ▼ </span> --%> <%-- <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" url="${ctx}/ntc/website/ajaxSslSubList" compileId="${log.cfgId }" ><i class="icon-book-open"></i></a> <a href="javascript:void(0)" name="viewLogInfo" url="${ctx}/ntc/website/ajaxSslSubList" compileId="${log.cfgId }" ><i class="icon-book-open"></i></a>
</td> </td>
<td>${log.cfgId }</td> <%-- <td>${log.cfgId }</td> --%>
<td> <!-- <td> -->
<c:set var="actions">${log.action }</c:set> <%-- <c:set var="actions">${log.action }</c:set> --%>
<c:forEach items="${fns:getDictList('SERVICE_ACTION')}" var="dict"> <%-- <c:forEach items="${fns:getDictList('SERVICE_ACTION')}" var="dict"> --%>
<c:if test="${dict.itemCode eq log.action}"> <%-- <c:if test="${dict.itemCode eq log.action}"> --%>
<c:set var="actions">${dict.itemValue}</c:set> <%-- <c:set var="actions">${dict.itemValue}</c:set> --%>
</c:if> <%-- </c:if> --%>
</c:forEach> <%-- </c:forEach> --%>
<spring:message code="${actions}"/> <%-- <spring:message code="${actions}"/> --%>
</td> <!-- </td> -->
<td>${log.foundTime }</td> <td>${log.foundTime }</td>
<td>${log.recvTime }</td> <td>${log.recvTime }</td>

View File

@@ -79,7 +79,7 @@
} }
.main_right{ .main_right{
background-image: url("${pageContext.request.contextPath}/static/login/assets/images/login/login_06.png"); background-image: url("${pageContext.request.contextPath}/static/login/assets/images/login/login_06-K.png");
background-repeat:no-repeat; background-repeat:no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
max-height: 501px; max-height: 501px;

View File

@@ -230,7 +230,7 @@
<th class="sort-column service" isVisible="false"><spring:message code="action"/></th> --%> <th class="sort-column service" isVisible="false"><spring:message code="action"/></th> --%>
<th class="sort-column s_asn" column="asn"><spring:message code="asn"/></th> <th class="sort-column s_asn" column="asn"><spring:message code="asn"/></th>
<th class="sort-column pps" column="pps"><spring:message code="pps"/></th> <th class="sort-column pps" column="pps"><spring:message code="pps"/></th>
<th class="sort-column bps" column="bps"><spring:message code="bps"/></th> <th class="sort-column bps" column="bps"><spring:message code="GBps"/></th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>

View File

@@ -953,8 +953,24 @@ jQuery.validator.addMethod("asnNoUnique",function(value, element) {
async:false, async:false,
url: url, url: url,
data:{"id":id,"asnId":value}, data:{"id":id,"asnId":value},
success:function(data){ success:function(data,textStatus){
result = data; if(textStatus=="success"){
if(data == null || data.id==null || data.id == 'undefined'){
result=true;
}else{
/*if($(element).attr("name")
&& $(element).attr("name") != ''){
var name=$(element).attr("name").split(".");
console.log(name[0]);
if(name[1] == 'cfgKeywords'){
$("input[name='"+name[0]+".userRegion1']").val(data.regionId);
$("input[name='"+name[0]+".userRegion2']").val(data.groupId);
}
}*/
result=false;
}
}
} }
}); });
return result; return result;
@@ -963,18 +979,40 @@ jQuery.validator.addMethod("asnMustExists",function(value, element) {
var ctx=$(element).attr("ctx"); var ctx=$(element).attr("ctx");
//var id= $("[name='id']").val(); //var id= $("[name='id']").val();
var url = ctx+"/basics/asnGroup/checkAsnNo"; var url = ctx+"/basics/asnGroup/checkAsnNo";
var result = true; var result = false;
$.ajax({ $.ajax({
type:'post', type:'post',
async:false, async:false,
url: url, url: url,
data:{"asnId":value}, data:{"asnId":value},
success:function(data){ success:function(data,textStatus){
if(data==true){ if(textStatus=="success"){
result=false; if(data == null || data.id==null || data.id == 'undefined'){
}else{ result=false;
result=true; }else{
if($(element).attr("name")
&& $(element).attr("name") != ''){
var name=$(element).attr("name").split(".");
console.log(name[0]);
if(name[1] == 'cfgKeywords'){
//校验成功的同时
$("input[name='"+name[0]+".userRegion1']").val(data.regionId);
$("input[name='"+name[0]+".userRegion2']").val(data.groupId);
$("input[name='"+name[0]+".userRegion3']").val(data.commonGroupIds);
var commonGroupIds=$("input[name='commonGroupIds']").val();
if(commonGroupIds !=null
&& commonGroupIds != ''
&& (","+commonGroupIds+",").indexOf(","+data.commonGroupIds+",") < 0){
$("input[name='commonGroupIds']").val(commonGroupIds+","+data.commonGroupIds)
}else{
$("input[name='commonGroupIds']").val(data.commonGroupIds)
}
}
}
result=true;
}
} }
} }
}); });
return result; return result;

View File

@@ -1,4 +1,4 @@
$(function(){ /*$(function(){
$('.asnNo').selectpicker({ $('.asnNo').selectpicker({
deselectAllText: $("#deselectAll").text(), deselectAllText: $("#deselectAll").text(),
selectAllText: $("#selectAll").text() selectAllText: $("#selectAll").text()
@@ -11,9 +11,9 @@ $(function(){
$(this).change(); $(this).change();
}); });
}); });
/** *//**
* 异步获取ASN组织 * 异步获取ASN组织
*/ *//*
var initAsnOrganazation=function(){ var initAsnOrganazation=function(){
var pathName=window.document.location.pathname.substring(0,window.document.location.pathname.lastIndexOf("/nis")+4); var pathName=window.document.location.pathname.substring(0,window.document.location.pathname.lastIndexOf("/nis")+4);
$.ajax({ $.ajax({
@@ -34,7 +34,7 @@ var initAsnOrganazation=function(){
} }
} }
}); });
/***设定数据库值***/ *//***设定数据库值***//*
$(".organization").each(function(){ $(".organization").each(function(){
if($(this).attr("name") != null && $(this).attr("name") != 'undefined'){ if($(this).attr("name") != null && $(this).attr("name") != 'undefined'){
var asnObjName = ($(this).attr("name")).split("userRegion1")[0]+"organizationGroupId"; var asnObjName = ($(this).attr("name")).split("userRegion1")[0]+"organizationGroupId";
@@ -45,9 +45,9 @@ var initAsnOrganazation=function(){
}); });
} }
/** *//**
* ASN组织级联获取ASN NO * ASN组织级联获取ASN NO
*/ *//*
var getASNNo=function(obj,orgGroupId,orgName){ var getASNNo=function(obj,orgGroupId,orgName){
if($(obj).attr("name") != null && $(obj).attr("name") != 'undefined'){ if($(obj).attr("name") != null && $(obj).attr("name") != 'undefined'){
var asnObjName = ($(obj).attr("name")).split("userRegion1")[0]+"cfgKeywords"; var asnObjName = ($(obj).attr("name")).split("userRegion1")[0]+"cfgKeywords";
@@ -71,7 +71,7 @@ var getASNNo=function(obj,orgGroupId,orgName){
}); });
} }
/***设定数据库值***/ *//***设定数据库值***//*
$("select[name='"+asnObjName+"']").selectpicker('refresh'); $("select[name='"+asnObjName+"']").selectpicker('refresh');
var asnNoObjName = ($(obj).attr("name")).split("userRegion1")[0]+"asnNo"; var asnNoObjName = ($(obj).attr("name")).split("userRegion1")[0]+"asnNo";
if($("input[name='"+asnNoObjName+"']").val() == '' if($("input[name='"+asnNoObjName+"']").val() == ''
@@ -88,3 +88,4 @@ var getASNNo=function(obj,orgGroupId,orgName){
} }
} }
*/