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 regionId;
private Integer orgGroupId;
public Integer getOrgGroupId() {
return orgGroupId;
}
public void setOrgGroupId(Integer orgGroupId) {
this.orgGroupId = orgGroupId;
}
public Integer getIsUsed() {
return isUsed;
}

View File

@@ -109,7 +109,7 @@ public class AppPolicyCfg extends BaseCfg<AppPolicyCfg> {
@SerializedName("isHexbin")
private Integer isHexbin;
@ExcelField(title="log_total",sort=31)
@ExcelField(title="log_total",sort=43)
private Long totalLogs;
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;
/**
* 是否区域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;
/**
* 分类
*/
@ExcelField(title="classification",dictType="type",sort=60)
@ExcelField(title="classification",dictType="type",sort=62)
protected String classify;
/**
* 性质
@@ -270,9 +270,9 @@ public class BaseCfg<T> extends BaseEntity<T> implements Cloneable{
/**
* 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;
@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 groupId;//仅用于copy属性使用
protected Integer regionId;//仅用于copy属性使用

View File

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

View File

@@ -86,12 +86,8 @@ public class CfgIndexInfo extends BaseCfg<CfgIndexInfo> {
private String country;
private String detail;
private List<AsnKeywordCfg> asnKeywords;
@ExcelField(title="log_total",sort=31)
@ExcelField(title="log_total",sort=42)
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;//缓存策略用户自定义域参数
@@ -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() {
return organization;
}

View File

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

View File

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

View File

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

View File

@@ -6,8 +6,9 @@ import com.nis.util.excel.ExcelField;
public class NtcAsnRecord extends BaseLogEntity<NtcAsnRecord>{
private static final long serialVersionUID = -4947912502754359817L;
@ExcelField(title="bps",sort=10)
@ExcelField(title="GBps",sort=10)
protected String GBps;
//@ExcelField(title="bps",sort=10)
protected String bps;
@ExcelField(title="pps",sort=9)
protected String pps;
@@ -27,6 +28,12 @@ public class NtcAsnRecord extends BaseLogEntity<NtcAsnRecord>{
}
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() {
return bps;
}

View File

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

View File

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

View File

@@ -218,7 +218,7 @@ public class DnsIpCfgController extends BaseController {
}
titleList.add(entity.getMenuNameCode());
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) {

View File

@@ -500,6 +500,7 @@ public class WhiteListController extends CommonController {
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);
//获取日志总量
@@ -507,6 +508,7 @@ public class WhiteListController extends CommonController {
List<Map<String,Object>> logs = getLogTotal( null,serviceIdsStr,compileIdsStr);
logTotals.addAll(logs);
}
}
titleList.add(entity.getMenuNameCode());
titleList.add("NTC_HTTP_URL");
classMap.put(entity.getMenuNameCode(), CfgIndexInfo.class);

View File

@@ -3,9 +3,11 @@ package com.nis.web.controller.configuration.proxy;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -273,6 +275,35 @@ public class InterceptController extends CommonController {
Page<CfgIndexInfo> page = ipCfgService.getIpCfgList(pageInfo, entity);
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>();
if (entity.getFunctionId().equals(200)) {
@@ -325,6 +356,12 @@ public class InterceptController extends CommonController {
List<BaseStringCfg> httpUrlList = new ArrayList<BaseStringCfg>();
List<BaseStringCfg> pktBinList = new ArrayList<BaseStringCfg>();
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);
httpUrlList.addAll(maps.get("NTC_HTTP_URL"));
ipList.addAll(maps.get("PXY_INTERCEPT_IP"));
@@ -346,7 +383,7 @@ public class InterceptController extends CommonController {
httpUrlList = BaseStringCfg.baseHexList(httpUrlList);
dataMap.put(entity.getMenuNameCode(), ipLists);
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_PKT_BIN");
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.net.URISyntaxException;
import java.net.URLEncoder;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
@@ -248,7 +249,7 @@ public class DashboardController extends BaseController{
@ResponseBody
public List ajaxIpActiveList(String beginDate,String endDate,Integer entranceId){
Map<String, Object> fromJsonList = new HashMap<String, Object>();
List list = new ArrayList();
List<TrafficIpActiveStatistic> list = new ArrayList<TrafficIpActiveStatistic>();
try {
String url=Constants.DASHBOARD_URL+Constants.TRAFFIC_IPACTIVE_ONEHOUR;
url=urlAddDate(url, beginDate, endDate);
@@ -260,6 +261,16 @@ public class DashboardController extends BaseController{
fromJsonList = gson.fromJson(string, new TypeToken<Map<String, Object>>(){}.getType());
logger.debug("活跃IP1小时"+fromJsonList);
list = gson.fromJson(fromJsonList.get("data").toString(), new TypeToken<List<TrafficIpActiveStatistic>>() {}.getType()) ;
if(list.size()>0) {
DecimalFormat lf = new DecimalFormat("0");
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//两个时间段之间的秒数
double allSeconds = DateUtils.getSecondsOfTwoDate(sdf.parse(beginDate),sdf.parse(endDate));
for(TrafficIpActiveStatistic data:list) {
data.setAvgByte(lf.format(Integer.parseInt(data.get_byte())*8/allSeconds));
data.setAvgPacket(lf.format(Integer.parseInt(data.get_packet())/allSeconds));
}
}
Collections.sort(list, new Comparator<TrafficIpActiveStatistic>() {
@Override
@@ -282,7 +293,7 @@ public class DashboardController extends BaseController{
} catch (Exception e) {
e.printStackTrace();
logger.error("活跃IP数据获取错误"+e);
list.add(Maps.newHashMap("error","request_service_failed"));
//list.add(Maps.newHashMap("error","request_service_failed"));
}
return list;
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -30,6 +30,6 @@ public interface AsnGroupInfoDao extends CrudDao<AsnGroupInfo> {
Long getCount();
void modifyIssuedIp(AsnGroupInfo info);
List<AsnGroupInfo> findAsnGroupInfoByAsnGroup(AsnGroupInfo asnGroupInfo);
void updateIsUsedAndIsValid(@Param("asnNos")List asnNos,@Param("isUsed")Integer isUsed,@Param("isValid")Integer isValid);
List<AsnGroupInfo> findAsnGroupInfoByAsnNos(@Param("asnNos")List asnNos,@Param("isUsed")Integer isUsed);
void updateIsUsedAndIsValid(@Param("groupIds")List groupIds,@Param("isUsed")Integer isUsed,@Param("isValid")Integer isValid);
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="is_used" property="isUsed" jdbcType="INTEGER" />
<result column="region_id" property="regionId" jdbcType="INTEGER" />
<result column="org_group_id" property="orgGroupId" jdbcType="INTEGER" />
</resultMap>
<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.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>
<!-- 查出所有 有效数据-->
@@ -62,6 +63,9 @@
</if>
<if test="isValid != null and isValid != ''">
AND r.is_valid =#{isValid }
</if>
<if test="orgGroupId != null and orgGroupId != ''">
AND r.org_group_id =#{orgGroupId }
</if>
AND r.is_valid !=-1
<!-- 数据范围过滤 -->
@@ -102,7 +106,8 @@
edit_time,
asn_id,
is_used,
region_id
region_id,
org_group_id
)values (
#{groupId,jdbcType=INTEGER},
#{compileId,jdbcType=INTEGER},
@@ -116,7 +121,8 @@
#{editTime,jdbcType=TIMESTAMP},
#{asnId,jdbcType=INTEGER},
#{isUsed,jdbcType=INTEGER},
#{regionId,jdbcType=INTEGER}
#{regionId,jdbcType=INTEGER},
#{orgGroupId,jdbcType=INTEGER}
)
</insert>
@@ -159,6 +165,9 @@
</if>
<if test="regionId != null" >
region_id = #{regionId,jdbcType=INTEGER},
</if>
<if test="orgGroupId != null" >
org_group_id = #{orgGroupId,jdbcType=INTEGER},
</if>
</trim>
</set>
@@ -181,10 +190,10 @@
</if>
</set>
<where>
<if test="asnNos != null" >
and asn_id in
<foreach collection ="asnNos" item="asnId" separator ="," open="(" close=")">
#{asnId}
<if test="groupIds != null" >
and group_id in
<foreach collection ="groupIds" item="groupId" separator ="," open="(" close=")">
#{groupId}
</foreach >
</if>
<if test="isValid != null" >
@@ -351,7 +360,7 @@
</if>
</where>
</select>
<select id="findAsnGroupInfoByAsnNos" resultMap="AsnGroupInfoMap">
<select id="findAsnGroupInfoByGroupIds" resultMap="AsnGroupInfoMap">
SELECT
<include refid="AsnGroupInfoColumns"/>
FROM
@@ -360,10 +369,10 @@
<if test="isUsed != null" >
AND r.is_used = #{isUsed,jdbcType=INTEGER}
</if>
<if test="asnNos != null" >
and r.asn_id in
<foreach collection ="asnNos" item="asnId" separator ="," open="(" close=")">
#{asnId}
<if test="groupIds != null" >
and r.group_id in
<foreach collection ="groupIds" item="groupId" separator ="," open="(" close=")">
#{groupId}
</foreach >
</if>
</where>

View File

@@ -33,6 +33,6 @@ public interface AsnIpCfgDao extends CrudDao<AsnIpCfg>{
public void ajaxDeleteAsnIp(@Param("ids")String ids);
public int hasValidAsnIp(@Param("asnId")Long asnNo);
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);
}

View File

@@ -560,7 +560,7 @@
delete from asn_ip_cfg where asn_ip_group in (${ids})
</update>
<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>
<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

View File

@@ -123,4 +123,6 @@ public interface AppCfgDao {
//app ssl证书特征配置CRUD
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
where r.CFG_ID in (${ids})
</select>
<select id="findAppIpByCompileId" resultMap="AppIpCfgMap">
select * from app_ip_cfg where is_valid=1 and compile_Id = #{compileId}
</select>
</mapper>

View File

@@ -130,4 +130,21 @@
</if>
</where>
</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>

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

View File

@@ -510,7 +510,10 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
List<AsnGroupInfo> auditAsnGroupList=new ArrayList<>();
SqlSessionFactory sqlSessionFactory=SpringContextHolder.getBean(SqlSessionFactory.class);
final SqlSession batchSqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false);
Integer serviceId=0;
try{
if(!StringUtil.isEmpty(asnIpCfgs)){
serviceId=asnIpCfgs.get(0).getServiceId();
int issuedNum=asnIpCfgs.size();
for(int index = 0; index < asnIpCfgs.size();index++){
AsnIpCfg t = asnIpCfgs.get(index);
@@ -590,6 +593,9 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
}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<>();
@@ -610,15 +616,33 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
//调用服务接口下发配置
ToMaatResult result = ConfigServiceUtil.auditCommonGroupRegionSources(json,3);
logger.info("ASN IP域删除配置响应信息"+result.getMsg());
//如果一个asn组下没有IP了修改有效状态
if(hasValidAsnIp(asn)) {
}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 {
if(batchSqlSession != null){
batchSqlSession.close();

View File

@@ -1168,7 +1168,9 @@ public class AppCfgService extends BaseService {
List<NumBoundaryCfg> numRegionList = new ArrayList();
List<DigestCfg> digestRegionList = new ArrayList();
List<IpCfg> areaIpRegionList = new ArrayList();
Integer serviceId=0;
this.auditAppIpCfg(entitys);
serviceId=entitys.get(0).getServiceId();
// for(AppIpCfg entity:entitys) {
// // 保存区域IP信息
// List<AreaIpCfg> areaIpCfgList = areaIpCfgDao.getByCompileId(entitys.get(0).getCompileId());
@@ -1272,6 +1274,8 @@ public class AppCfgService extends BaseService {
throw new RuntimeException("Unknown configGroupInfo isIssued value");
}
} else if (isAudit == 3) {
//判断配置取消之后,是否还有有效的配置
if(hasValidAppIp(configGroupInfo.getCompileId())){
//已经下发过的,调用分组复用配置删除接口
GroupReuseAddBean maatBean = new GroupReuseAddBean();
List<GroupReuseCfg> groupReuseList=new ArrayList<>();
@@ -1292,6 +1296,32 @@ public class AppCfgService extends BaseService {
//调用服务接口下发配置
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);
entity.setIpPortList(ipPortList);
entity.setNtcSubscribeIdCfgList(subscribeIdList);
if(StringUtils.isNotBlank(entity.getCommonGroupIds())) {
List<AsnKeywordCfg> asnKeywordCfgs=stringCfgDao.findAsnKeywordCfgList(entity);
entity.setAsnKeywords(asnKeywordCfgs);
}
return entity;
}
public CfgIndexInfo exportIpInfo(CfgIndexInfo entity){
List<IpPortCfg> ipPortList = ipCfgDao.getIpPortList(entity);
entity.setIpPortList(ipPortList);
if(StringUtils.isNotBlank(entity.getUserRegion4())) {
List<AsnKeywordCfg> asnKeywordCfgs=stringCfgDao.findAsnKeywordCfgList(entity);
entity.setAsnKeywords(asnKeywordCfgs);
}
return entity;
}
public BaseIpCfg getIpCfgById(String tableName,long id){

View File

@@ -1361,7 +1361,7 @@ nas_ip=NAS IP Address
framed_ip=Framed IP Address
log_user_name=User Name
av_tips=The system does not support the index information of audio and video coding in the tail of the audio and video files. The system does not support video with resolution greater than 1080P.
asn_ip_group_delete=\uFF08IP configuration under this ASN group will also be deleted.)
asn_ip_group_delete=\uff08IP configuration under this ASN group will also be deleted.)
keyword_log_tips=Deduplicate http body keywords log,for the control status of http body keywords is not ideal, configure the http url of the hit keyword as URL control configuration.
conn_record=Connection Records
bps=Gbps
@@ -1475,3 +1475,5 @@ block_drop=Block(Drop)
mail_record=Mail Records
ssl_record=SSL 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
basic_configuration=\u0411\u0430\u0437\u043e\u0432\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f
Request_from=\u041f\u0438\u0441\u044c\u043c\u0435\u043d\u043d\u044b\u0439 \u043e\u0444\u0438\u0441
second_bps=bps
classification_manage=\u041a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f
area_manage=\u0420\u0435\u0433\u0438\u043e\u043d
feature_scope_manage=\u041e\u0431\u043b\u0430\u0441\u0442\u044c \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432
@@ -342,10 +343,10 @@ expression_type=\u0422\u0438\u043f \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0
null_expression=\u041d\u0435\u0442 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f
and_expression=&
match_method=\u041c\u0435\u0442\u043e\u0434\u044b \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u0438\u0435
substring_match=\u0421\u043E\u0433\u043B\u0430\u0441\u043E\u0432\u0430\u043D\u0438\u0435 \u041F\u043E\u0434\u0441\u0442\u0440\u043E\u043A\u043E\u0439
right_match= \u0421\u0443\u0444\u0444\u0438\u043A\u0441 \u0421\u043E\u0433\u043B\u0430\u0441\u043E\u0432\u0430\u043D\u0438\u0435
left_match=\u041F\u0440\u0435\u0444\u0438\u043A\u0441 \u0421\u043E\u0433\u043B\u0430\u0441\u043E\u0432\u0430\u043D\u0438\u0435
exactly_match=\u0422\u043E\u0447\u043D\u043E\u0441\u0442\u044C\u044E \u0421\u043E\u0433\u043B\u0430\u0441\u043E\u0432\u0430\u043D\u0438\u0435
substring_match=\u0421\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u0438\u0435 \u041f\u043e\u0434\u0441\u0442\u0440\u043e\u043a\u043e\u0439
right_match= \u0421\u0443\u0444\u0444\u0438\u043a\u0441 \u0421\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u0438\u0435
left_match=\u041f\u0440\u0435\u0444\u0438\u043a\u0441 \u0421\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u0438\u0435
exactly_match=\u0422\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e \u0421\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u0438\u0435
whether_hexbinary=\u041d\u0435\u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043a \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0443 \u0438\u043b\u0438 \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u0438\u043b\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 HEX
hex_binary=HEX \u0444\u043e\u0440\u043c\u0430\u0442
case_insensitive_nohex=\u041d\u0435\u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u0435\u043d \u043a \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0443, \u0438 \u043d\u0435 HEX
@@ -1018,7 +1019,7 @@ domain_intercepter_ratelimit=\u041f\u0435\u0440\u0435\u0445\u0432\u0430\u0442 \u
app_built_in_features_config=\u0412\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f
PXY_INTERCEPT_PKT_BIN=\u041f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u043e\u0432
certificate=\u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442
do_log=\u041D\u0430\u0434\u043E \u043B\u0438 \u0437\u0430\u043F\u0438\u0441\u0430\u0442\u044C \u0436\u0443\u0440\u043D\u0430\u043B
do_log=\u041d\u0430\u0434\u043e \u043b\u0438 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0436\u0443\u0440\u043d\u0430\u043b
file_strategy=\u041f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 \u0444\u0430\u0439\u043b\u043e\u0432
file_desc=\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u043e\u0432
content_type=\u0422\u0438\u043f \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f
@@ -1045,7 +1046,7 @@ keyring_name=\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0430\u0440
keyring_type=\u0422\u0438\u043f \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430
private_key_file=\u0424\u0430\u0439\u043b \u0441 \u0437\u0430\u043a\u0440\u044b\u0442\u043e\u043c \u043a\u043b\u044e\u0447\u043e\u043c
public_key_file=\u0424\u0430\u0439\u043b \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c \u043a\u043b\u044e\u0447\u043e\u043c
expire_after=\u0418\u0441\u0442\u0435\u043a\u0430\u0435\u0442 \u043f\u043e\u0441\u043b\u0435(\u0414\u043D\u0438)
expire_after=\u0418\u0441\u0442\u0435\u043a\u0430\u0435\u0442 \u043f\u043e\u0441\u043b\u0435(\u0414\u043d\u0438)
issuer=\u042d\u043c\u0438\u0442\u0435\u043d\u0442 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430
certificate_subject=\u041f\u0440\u0435\u0434\u043c\u0435\u0442 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430
not_before_time=\u0412\u0440\u0435\u043c\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430
@@ -1406,11 +1407,11 @@ APP_TCP_SESSION_BYTE=\u0421\u0435\u0430\u043d\u0441
ip_count=Uniq-IP
counnection_count=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439
asn=ASN
Unique_num=\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u041A\u043B\u0438\u0435\u043D\u0442\u0430 IP
Unique_num=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u041a\u043b\u0438\u0435\u043d\u0442\u0430 IP
ip=IP
country=\u0421\u0442\u0440\u0430\u043d\u0430
desc=Desc
unique_num=\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u041A\u043B\u0438\u0435\u043D\u0442\u0430 IP
unique_num=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u041a\u043b\u0438\u0435\u043d\u0442\u0430 IP
import_limit_is=The maximum import size is
upload_limit_is=The limitation of file uplaod is
count=Count
@@ -1472,10 +1473,11 @@ not_exist=not exist
real_time=Real Time
history=History
all_columns_hidden=All columns are hidden!
no_log=\u041D\u0435\u0442 \u0416\u0443\u0440\u043D\u0430\u043B\u043E\u0432
all_log=\u0421\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439 \u0416\u0443\u0440\u043D\u0430\u043B \u0438 \u0416\u0443\u0440\u043D\u0430\u043B-\u0444\u0430\u0439\u043B
framework_log=\u0421\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439 \u0416\u0443\u0440\u043D\u0430\u043B
no_log=\u041d\u0435\u0442 \u0416\u0443\u0440\u043d\u0430\u043b\u043e\u0432
all_log=\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0416\u0443\u0440\u043d\u0430\u043b \u0438 \u0416\u0443\u0440\u043d\u0430\u043b-\u0444\u0430\u0439\u043b
framework_log=\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0416\u0443\u0440\u043d\u0430\u043b
block_drop=\u0411\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435(\u041f\u0430\u0434\u0435\u043d\u0438\u0435)
mail_record=\u0417\u0430\u043F\u0438\u0441\u0438 \u041F\u043E\u0447\u0442\u044B
ssl_record=SSL \u0417\u0430\u043F\u0438\u0441\u0438
http_record=HTTP \u0417\u0430\u043F\u0438\u0441\u0438
mail_record=\u0417\u0430\u043f\u0438\u0441\u0438 \u041f\u043e\u0447\u0442\u044b
ssl_record=SSL \u0417\u0430\u043f\u0438\u0441\u0438
http_record=HTTP \u0417\u0430\u043f\u0438\u0441\u0438
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
PXY_INTERCEPT_PKT_BIN=\u5305\u8f7d\u8377
certificate=\u8bc1\u4e66
do_log=\u662F\u5426\u8BB0\u5F55\u65E5\u5FD7
do_log=\u662f\u5426\u8bb0\u5f55\u65e5\u5fd7
file_strategy=\u6587\u4ef6\u7b56\u7565
file_desc=\u6587\u4ef6\u63cf\u8ff0\t
content_type=\u5185\u5bb9\u7c7b\u578b
@@ -1468,10 +1468,12 @@ not_exist=\u4e0d\u5b58\u5728
real_time=\u5b9e\u65f6
history=\u5386\u53f2
all_columns_hidden=\u6240\u6709\u7684\u5217\u90fd\u9690\u85cf\u4e86\uff01
no_log=\u4E0D\u8BB0\u5F55
all_log=\u8BB0\u5F55\u6240\u6709\u65E5\u5FD7
framework_log=\u53EA\u8BB0\u5F55\u7ED3\u6784\u5316\u65E5\u5FD7
block_drop=\u5C01\u5835(\u4E22\u5F03)
mail_record=\u90AE\u4EF6\u6CDB\u6536
ssl_record=SSL\u6CDB\u6536
http_record=HTTP\u6CDB\u6536
no_log=\u4e0d\u8bb0\u5f55
all_log=\u8bb0\u5f55\u6240\u6709\u65e5\u5fd7
framework_log=\u53ea\u8bb0\u5f55\u7ed3\u6784\u5316\u65e5\u5fd7
block_drop=\u5c01\u5835(\u4e22\u5f03)
mail_record=\u90ae\u4ef6\u6cdb\u6536
ssl_record=SSL\u6cdb\u6536
http_record=HTTP\u6cdb\u6536
second_bps=bps
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_domain_cfg;
DELETE FROM app_features_index;
DELETE FROM app_feature_index;
DELETE FROM app_http_cfg;
DELETE FROM app_id_cfg;
DELETE FROM app_ip_cfg;
@@ -66,3 +67,7 @@ DELETE FROM ip_reuse_policy_cfg;
DELETE FROM user_manage;
#clear vpn
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;
}
//验证是否可删除
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){
var flag = false;

View File

@@ -65,6 +65,7 @@ $(function(){
<input type="hidden" name="groupId" value="${_cfg.groupId}">
<input type="hidden" name="isValid" value="${_cfg.isValid}">
<input type="hidden" name="compileId" value="${_cfg.compileId}">
<input type="hidden" name="regionId" value="${_cfg.regionId}">
<div class="form-body">
<div class="row">
<div class="col-md-6">

View File

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

View File

@@ -20,15 +20,21 @@
<input type="hidden" name="${cfgName}.machMethod" value="3">
<input type="hidden" name="${cfgName}.isHexbin" value="0">
<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 -->
<input type="hidden" name="${cfgName}.userRegion2" value="${cfg.userRegion2}">
<div class="hidden" id="selectAll"><spring:message code="select_All_Text"/></div>
<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="deselectAll"><spring:message code="deselect_All_Text"/></div>
<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="col-md-6">
<%-- <div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="organization"/></label>
<div class="col-md-6">
@@ -38,13 +44,14 @@
</div>
<div for="${cfgName}.userRegion1"></div>
</div>
</div>
</div> --%>
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="asn_no"/></label>
<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" >
</select>
<input class="form-control required digits asnMustExists" type="text" name="${cfgName}.cfgKeywords" value="${cfg.cfgKeywords}" ctx="${ctx}">
<%-- <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 for="${cfgName}.cfgKeywords"></div>
</div>

View File

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

View File

@@ -332,12 +332,12 @@
<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="group" ><spring:message code="group"/></th>
<th column="is_audit" ><spring:message code="is_audit"/></th>
<th column="ip_type" ><spring:message code="ip_type"/></th>
<th column="IP" ><spring:message code="IP"/></th>
<%-- <th column="port" ><spring:message code="port"/></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="is_audit" ><spring:message code="is_audit"/></th>
<th column="letter" ><spring:message code="letter"/></th>
<th column="classification" ><spring:message code="classification"/></th>
<th column="attribute" ><spring:message code="attribute"/></th>
@@ -371,12 +371,19 @@
<spring:message code="default_group"/>
</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>
<c:forEach items="${fns:getDictList('IP_TYPE')}" var="ipTypeC">
<c:if test="${cfg.ipType==ipTypeC.itemCode}"><spring:message code="${ipTypeC.itemValue }"/></c:if>
</c:forEach>
</td>
<td title="${cfg.destIpAddress }">${fns:abbr(cfg.destIpAddress, 42)}</td>
<%-- <td>${cfg.destPort }</td> --%>
<td>
<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:forEach>
</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 title="${cfg.destIpAddress }">${fns:abbr(cfg.destIpAddress, 42)}</td>
<td>${cfg.requestName }</td>
<td >
<c:set var="classify"></c:set>

View File

@@ -409,14 +409,14 @@
<th column="userregion1" ><spring:message code="intercept_intensity"/></th>
</c:if> --%>
<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="letter" ><spring:message code="letter"/></th>
<th column="classification" ><spring:message code="classification"/></th>
<th column="attribute" ><spring:message code="attribute"/></th>
<th column="label" ><spring:message code="label"/></th>
<th column="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="config_time" class="sort-column a.create_time"><spring:message code="config_time"/></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:choose>
</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>
<c:if test="${indexCfg.isAreaEffective==0}"><spring:message code="all"/></c:if>
<c:if test="${indexCfg.isAreaEffective==1}">
@@ -624,14 +632,6 @@
<c:if test="${indexCfg.isValid==1}"><spring:message code="yes"/></c:if>
<c:if test="${indexCfg.isValid==-1}"><spring:message code="deleted"/></c:if>
</td>
<td>
<c: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><fmt:formatDate value="${indexCfg.createTime }" pattern="yyyy-MM-dd HH:mm:ss"/></td>
<td>${indexCfg.editorName }</td>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -375,9 +375,9 @@
<th column="label" ><spring:message code="label"/></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="log_total" ><spring:message code="log_total"/></th>
<th column="valid_identifier" class="sort-column a.is_valid"><spring:message code="valid_identifier"/></th>
<th column="creator" ><spring:message code="creator"/></th>
<th column="config_time" class="sort-column a.create_time"><spring:message code="config_time"/></th>
<th column="editor" ><spring:message code="editor"/></th>
@@ -477,11 +477,6 @@
<c:when test="${indexCfg.isAudit eq '3'}"><span class="label label-warning"><spring:message code="cancel_approved"></spring:message></span></c:when>
</c:choose>
</td>
<td>
<c:if test="${indexCfg.isValid==0}"><spring:message code="no"/></c:if>
<c:if test="${indexCfg.isValid==1}"><spring:message code="yes"/></c:if>
<c:if test="${indexCfg.isValid==-1}"><spring:message code="deleted"/></c:if>
</td>
<td>
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict">
<c:if test="${dict.itemCode eq indexCfg.doLog }">
@@ -490,6 +485,11 @@
</c:forEach>
</td>
<td audit="${indexCfg.isAudit}" functionId="${indexCfg.functionId}" compileId="${indexCfg.compileId}" action="${indexCfg.action}" serviceId="${indexCfg.serviceId}"><div class="loading-total"></div></td>
<td>
<c:if test="${indexCfg.isValid==0}"><spring:message code="no"/></c:if>
<c:if test="${indexCfg.isValid==1}"><spring:message code="yes"/></c:if>
<c:if test="${indexCfg.isValid==-1}"><spring:message code="deleted"/></c:if>
</td>
<td>${indexCfg.creatorName }</td>
<td><fmt:formatDate value="${indexCfg.createTime }" pattern="yyyy-MM-dd HH:mm:ss"/></td>
<td>${indexCfg.editorName }</td>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -44,6 +44,16 @@
$('#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();
var proto = $("#protos").val(); //回选的数据
if (proto !=null && proto !='') {
@@ -127,6 +137,7 @@
<input id="apps" type="hidden" value="${log.appId}"/>
<input id="webs" type="hidden" value="${log.webId}"/>
<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 }"/>
<sys:tableSort id="orderBy" name="orderBy.
@@ -262,11 +273,22 @@
</div> --%>
<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="form-group">
<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"/>">
<option value="" disabled="true"><spring:message code="select"/></option>
<c:forEach items="${appList}" var="app" >
<option value="${app.code}"><spring:message code="${app.item}"></spring:message></option>
</c:forEach>
@@ -278,7 +300,6 @@
<div class="form-group">
<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"/>">
<option value="" disabled="true"><spring:message code="select"/></option>
<c:forEach items="${protocolList}" var="proto" >
<option value="${proto.code}"><spring:message code="${proto.item}"></spring:message></option>
</c:forEach>
@@ -290,7 +311,6 @@
<div class="form-group">
<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"/>">
<option value="" disabled="true"><spring:message code="select"/></option>
<c:forEach items="${webList}" var="web" >
<option value="${web.code}"><spring:message code="${web.item}"></spring:message></option>
</c:forEach>
@@ -312,15 +332,14 @@
</div>
</div>
</div>
<div class="row">
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="s_asn"></spring:message></label>
<input name="sAsn" type="text" class="form-control" value="${log.sAsn }"/>
</div>
</div>
</div>
<div class="row">
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="d_asn"></spring:message></label>

View File

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

View File

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

View File

@@ -237,8 +237,8 @@
<thead>
<tr>
<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 service" isVisible="false" column="action"><spring:message code="action"/></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 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 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> --%>
<a href="javascript:void(0)" name="viewLogInfo" url="${ctx}/ntc/mail/ajaxMailSubList" compileId="${log.cfgId }" ><i class="icon-book-open"></i></a>
</td>
<td>${log.cfgId }</td>
<td>
<c:set var="actions">${log.action }</c:set>
<c:forEach items="${fns:getDictList('SERVICE_ACTION')}" var="dict">
<c:if test="${dict.itemCode eq log.action}">
<c:set var="actions">${dict.itemValue}</c:set>
</c:if>
</c:forEach>
<spring:message code="${actions}"/>
</td>
<%-- <td>${log.cfgId }</td> --%>
<!-- <td> -->
<%-- <c:set var="actions">${log.action }</c:set> --%>
<%-- <c:forEach items="${fns:getDictList('SERVICE_ACTION')}" var="dict"> --%>
<%-- <c:if test="${dict.itemCode eq log.action}"> --%>
<%-- <c:set var="actions">${dict.itemValue}</c:set> --%>
<%-- </c:if> --%>
<%-- </c:forEach> --%>
<%-- <spring:message code="${actions}"/> --%>
<!-- </td> -->
<td>${log.foundTime }</td>
<td>${log.recvTime }</td>

View File

@@ -244,8 +244,8 @@
<thead>
<tr>
<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 service" isVisible="false" column="action"><spring:message code="action"/></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 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 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> --%>
<a href="javascript:void(0)" name="viewLogInfo" url="${ctx}/ntc/website/ajaxSslSubList" compileId="${log.cfgId }" ><i class="icon-book-open"></i></a>
</td>
<td>${log.cfgId }</td>
<td>
<c:set var="actions">${log.action }</c:set>
<c:forEach items="${fns:getDictList('SERVICE_ACTION')}" var="dict">
<c:if test="${dict.itemCode eq log.action}">
<c:set var="actions">${dict.itemValue}</c:set>
</c:if>
</c:forEach>
<spring:message code="${actions}"/>
</td>
<%-- <td>${log.cfgId }</td> --%>
<!-- <td> -->
<%-- <c:set var="actions">${log.action }</c:set> --%>
<%-- <c:forEach items="${fns:getDictList('SERVICE_ACTION')}" var="dict"> --%>
<%-- <c:if test="${dict.itemCode eq log.action}"> --%>
<%-- <c:set var="actions">${dict.itemValue}</c:set> --%>
<%-- </c:if> --%>
<%-- </c:forEach> --%>
<%-- <spring:message code="${actions}"/> --%>
<!-- </td> -->
<td>${log.foundTime }</td>
<td>${log.recvTime }</td>

View File

@@ -79,7 +79,7 @@
}
.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-size: 100% 100%;
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 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 bps" column="bps"><spring:message code="bps"/></th>
<th class="sort-column bps" column="bps"><spring:message code="GBps"/></th>
</tr>
</thead>
<tbody>

View File

@@ -953,8 +953,24 @@ jQuery.validator.addMethod("asnNoUnique",function(value, element) {
async:false,
url: url,
data:{"id":id,"asnId":value},
success:function(data){
result = data;
success:function(data,textStatus){
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;
@@ -963,19 +979,41 @@ jQuery.validator.addMethod("asnMustExists",function(value, element) {
var ctx=$(element).attr("ctx");
//var id= $("[name='id']").val();
var url = ctx+"/basics/asnGroup/checkAsnNo";
var result = true;
var result = false;
$.ajax({
type:'post',
async:false,
url: url,
data:{"asnId":value},
success:function(data){
if(data==true){
success:function(data,textStatus){
if(textStatus=="success"){
if(data == null || data.id==null || data.id == 'undefined'){
result=false;
}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;
});

View File

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