From bf03ca1cc0c8d8f316cd89aaea3d35edc615decd Mon Sep 17 00:00:00 2001 From: zhangwenqing Date: Mon, 10 Jun 2019 18:31:52 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E5=A2=9E=E5=8A=A0SubscribeId?= =?UTF-8?q?=E5=88=86=E7=BB=84=E9=85=8D=E7=BD=AE=E5=8A=9F=E8=83=BD=202?= =?UTF-8?q?=E3=80=81=E5=A2=9E=E5=8A=A0=E5=85=AC=E5=85=B1=E5=88=86=E7=BB=84?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E5=9B=BD=E9=99=85=E5=8C=96=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E5=8F=8A=E7=9B=B8=E5=85=B3sql=E6=96=87=E4=BB=B6=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/nis/domain/basics/DomainCommCfg.java | 58 +++ .../java/com/nis/domain/basics/IpCommCfg.java | 2 +- .../nis/domain/basics/ScriberIdCommCfg.java | 58 +++ .../com/nis/domain/basics/UrlCommCfg.java | 29 +- .../com/nis/domain/configuration/BaseCfg.java | 14 +- .../domain/configuration/CfgIndexInfo.java | 20 + .../template/DomainCommCfgTemplate.java | 23 ++ .../template/IpCommCfgTemplate.java | 2 +- .../template/ScriberIdCommCfgTemplate.java | 23 ++ .../template/UrlCommCfgTemplate.java | 2 +- src/main/java/com/nis/util/Constants.java | 16 + src/main/java/com/nis/util/DictUtils.java | 37 ++ .../java/com/nis/util/excel/ExportExcel.java | 31 +- .../excel/thread/CheckIpFormatThread.java | 17 + .../excel/thread/CheckStringFormatThread.java | 37 ++ .../nis/web/controller/BaseController.java | 15 +- .../basics/CommonGroupManageController.java | 4 +- .../basics/DomainCommGroupController.java | 302 ++++++++++++++ .../basics/IpCommGroupController.java | 62 +-- .../basics/ScriberIdCommGroupController.java | 302 ++++++++++++++ .../basics/UrlCommGroupController.java | 130 +++++- .../configuration/ntc/IpController.java | 24 ++ .../web/dao/basics/CommonGroupManageDao.java | 2 + .../web/dao/basics/CommonGroupManageDao.xml | 25 ++ .../web/dao/basics/DomainCommGroupDao.java | 36 ++ .../nis/web/dao/basics/DomainCommGroupDao.xml | 384 ++++++++++++++++++ .../nis/web/dao/basics/IpCommGroupCfgDao.java | 2 +- .../nis/web/dao/basics/IpCommGroupCfgDao.xml | 15 +- .../web/dao/basics/ScriberIdCommGroupDao.java | 36 ++ .../web/dao/basics/ScriberIdCommGroupDao.xml | 384 ++++++++++++++++++ .../nis/web/dao/basics/UrlCommGroupDao.java | 2 +- .../nis/web/dao/basics/UrlCommGroupDao.xml | 4 +- .../basics/CommonGroupManageService.java | 95 ++++- .../basics/DomainCommGroupService.java | 180 ++++++++ .../service/basics/IpCommGroupCfgService.java | 43 +- .../basics/ScriberIdCommGroupService.java | 182 +++++++++ .../service/basics/UrlCommGroupService.java | 79 ++-- .../resources/messages/message_en.properties | 9 +- .../resources/messages/message_ru.properties | 9 +- .../messages/message_zh_CN.properties | 9 +- .../common_group_add_tables.sql} | 80 ++++ .../common_group_save_cfg.sql} | 32 +- src/main/resources/sql/truncate_tables.sql | 4 + .../WEB-INF/include/excel/importModal.jsp | 6 +- .../WEB-INF/views/basics/commonGroupForm.jsp | 3 +- .../WEB-INF/views/basics/commonGroupList.jsp | 14 +- .../views/basics/domainCommGroupFormAdd.jsp | 330 +++++++++++++++ .../basics/domainCommGroupFormUpdate.jsp | 270 ++++++++++++ .../views/basics/domainCommGroupList.jsp | 256 ++++++++++++ .../views/basics/ipCommGroupFormAdd.jsp | 4 +- .../views/basics/ipCommGroupFormUpdate.jsp | 4 +- .../views/basics/ipCommonGroupCfgList.jsp | 8 +- .../basics/scriberidCommGroupFormAdd.jsp | 319 +++++++++++++++ .../basics/scriberidCommGroupFormUpdate.jsp | 270 ++++++++++++ .../views/basics/scriberidCommGroupList.jsp | 256 ++++++++++++ .../views/basics/urlCommGroupFormAdd.jsp | 72 +--- .../views/basics/urlCommGroupFormUpdate.jsp | 4 +- .../WEB-INF/views/basics/urlCommGroupList.jsp | 10 +- .../static/pages/scripts/importExcel.js | 5 + 59 files changed, 4394 insertions(+), 257 deletions(-) create mode 100644 src/main/java/com/nis/domain/basics/DomainCommCfg.java create mode 100644 src/main/java/com/nis/domain/basics/ScriberIdCommCfg.java create mode 100644 src/main/java/com/nis/domain/configuration/template/DomainCommCfgTemplate.java create mode 100644 src/main/java/com/nis/domain/configuration/template/ScriberIdCommCfgTemplate.java create mode 100644 src/main/java/com/nis/web/controller/basics/DomainCommGroupController.java create mode 100644 src/main/java/com/nis/web/controller/basics/ScriberIdCommGroupController.java create mode 100644 src/main/java/com/nis/web/dao/basics/DomainCommGroupDao.java create mode 100644 src/main/java/com/nis/web/dao/basics/DomainCommGroupDao.xml create mode 100644 src/main/java/com/nis/web/dao/basics/ScriberIdCommGroupDao.java create mode 100644 src/main/java/com/nis/web/dao/basics/ScriberIdCommGroupDao.xml create mode 100644 src/main/java/com/nis/web/service/basics/DomainCommGroupService.java create mode 100644 src/main/java/com/nis/web/service/basics/ScriberIdCommGroupService.java rename src/main/resources/sql/{20190603/add_tables.sql => 20190610/common_group_add_tables.sql} (50%) rename src/main/resources/sql/{20190603/object_list_group.sql => 20190610/common_group_save_cfg.sql} (60%) create mode 100644 src/main/webapp/WEB-INF/views/basics/domainCommGroupFormAdd.jsp create mode 100644 src/main/webapp/WEB-INF/views/basics/domainCommGroupFormUpdate.jsp create mode 100644 src/main/webapp/WEB-INF/views/basics/domainCommGroupList.jsp create mode 100644 src/main/webapp/WEB-INF/views/basics/scriberidCommGroupFormAdd.jsp create mode 100644 src/main/webapp/WEB-INF/views/basics/scriberidCommGroupFormUpdate.jsp create mode 100644 src/main/webapp/WEB-INF/views/basics/scriberidCommGroupList.jsp diff --git a/src/main/java/com/nis/domain/basics/DomainCommCfg.java b/src/main/java/com/nis/domain/basics/DomainCommCfg.java new file mode 100644 index 000000000..968512644 --- /dev/null +++ b/src/main/java/com/nis/domain/basics/DomainCommCfg.java @@ -0,0 +1,58 @@ +package com.nis.domain.basics; + +import com.nis.domain.configuration.BaseStringCfg; +import com.nis.util.excel.ExcelField; + +public class DomainCommCfg extends BaseStringCfg{ + + private static final long serialVersionUID = 5117517145731135023L; + private static final String tableName="domain_comm_cfg"; + + @ExcelField(title="key_word",sort=3) + protected String cfgKeywords; + + protected Integer isHexbin; + + protected String ratelimit; + + @ExcelField(title="group_name",sort=2) + protected String groupName;//公共组名称 + + @ExcelField(title="match_method",dictType="MATCH_METHOD",sort=20) + protected Integer matchMethod ; + + public String getCfgKeywords() { + return cfgKeywords; + } + public void setCfgKeywords(String cfgKeywords) { + this.cfgKeywords = cfgKeywords; + } + public Integer getIsHexbin() { + return isHexbin; + } + public void setIsHexbin(Integer isHexbin) { + this.isHexbin = isHexbin; + } + public String getRatelimit() { + return ratelimit; + } + public void setRatelimit(String ratelimit) { + this.ratelimit = ratelimit; + } + public static String getTablename() { + return tableName; + } + public String getGroupName() { + return groupName; + } + public void setGroupName(String groupName) { + this.groupName = groupName; + } + public Integer getMatchMethod() { + return matchMethod; + } + public void setMatchMethod(Integer matchMethod) { + this.matchMethod = matchMethod; + } + +} \ No newline at end of file diff --git a/src/main/java/com/nis/domain/basics/IpCommCfg.java b/src/main/java/com/nis/domain/basics/IpCommCfg.java index b5eca72e2..1a0eb1909 100644 --- a/src/main/java/com/nis/domain/basics/IpCommCfg.java +++ b/src/main/java/com/nis/domain/basics/IpCommCfg.java @@ -48,7 +48,7 @@ public class IpCommCfg extends BaseCfg { protected Integer dnsStrategyId; @ExcelField(title="ir_type",dictType="IR_TYPE",sort=57) protected Integer irType; - @ExcelField(title="group_name",sort=58) + @ExcelField(title="group_name",sort=45) protected String groupName; // @ExcelField(title="log_total",sort=42) private Long totalLogs; diff --git a/src/main/java/com/nis/domain/basics/ScriberIdCommCfg.java b/src/main/java/com/nis/domain/basics/ScriberIdCommCfg.java new file mode 100644 index 000000000..ce396cb61 --- /dev/null +++ b/src/main/java/com/nis/domain/basics/ScriberIdCommCfg.java @@ -0,0 +1,58 @@ +package com.nis.domain.basics; + +import com.nis.domain.configuration.BaseStringCfg; +import com.nis.util.excel.ExcelField; + +public class ScriberIdCommCfg extends BaseStringCfg{ + + private static final long serialVersionUID = 5117517145731135023L; + private static final String tableName="scriberid_comm_cfg"; + + @ExcelField(title="key_word",sort=3) + protected String cfgKeywords; + + protected Integer isHexbin; + + protected String ratelimit; + + @ExcelField(title="group_name",sort=2) + protected String groupName;//公共组名称 + + @ExcelField(title="match_method",dictType="MATCH_METHOD",sort=20) + protected Integer matchMethod ; + + public String getCfgKeywords() { + return cfgKeywords; + } + public void setCfgKeywords(String cfgKeywords) { + this.cfgKeywords = cfgKeywords; + } + public Integer getIsHexbin() { + return isHexbin; + } + public void setIsHexbin(Integer isHexbin) { + this.isHexbin = isHexbin; + } + public String getRatelimit() { + return ratelimit; + } + public void setRatelimit(String ratelimit) { + this.ratelimit = ratelimit; + } + public static String getTablename() { + return tableName; + } + public String getGroupName() { + return groupName; + } + public void setGroupName(String groupName) { + this.groupName = groupName; + } + public Integer getMatchMethod() { + return matchMethod; + } + public void setMatchMethod(Integer matchMethod) { + this.matchMethod = matchMethod; + } + +} \ No newline at end of file diff --git a/src/main/java/com/nis/domain/basics/UrlCommCfg.java b/src/main/java/com/nis/domain/basics/UrlCommCfg.java index 2729f4f70..050f498c6 100644 --- a/src/main/java/com/nis/domain/basics/UrlCommCfg.java +++ b/src/main/java/com/nis/domain/basics/UrlCommCfg.java @@ -6,19 +6,18 @@ import com.nis.util.excel.ExcelField; public class UrlCommCfg extends BaseStringCfg{ private static final long serialVersionUID = 398247881810945300L; - private static final String tableName="http_url_cfg"; + private static final String tableName="url_comm_cfg"; @ExcelField(title="key_word",sort=3) protected String cfgKeywords;//url关键字配置 - // protected Integer exprType;//表达式类型 -// protected Integer matchMethod;//匹配类型 protected Integer isHexbin;//是否大小写敏感 protected String ratelimit;//限速比例,0到1之间 - @ExcelField(title="group_name",sort=108) + @ExcelField(title="group_name",sort=2) protected String groupName;//公共组名称 - - + + @ExcelField(title="match_method",dictType="MATCH_METHOD",sort=20) + protected Integer matchMethod ; public String getCfgKeywords() { return cfgKeywords; @@ -26,18 +25,6 @@ public class UrlCommCfg extends BaseStringCfg{ public void setCfgKeywords(String cfgKeywords) { this.cfgKeywords = cfgKeywords; } - // public Integer getExprType() { -// return exprType; -// } -// public void setExprType(Integer exprType) { -// this.exprType = exprType; -// } -// public Integer getMatchMethod() { -// return matchMethod; -// } -// public void setMatchMethod(Integer matchMethod) { -// this.matchMethod = matchMethod; -// } public Integer getIsHexbin() { return isHexbin; } @@ -60,5 +47,11 @@ public class UrlCommCfg extends BaseStringCfg{ public void setGroupName(String groupName) { this.groupName = groupName; } + public Integer getMatchMethod() { + return matchMethod; + } + public void setMatchMethod(Integer matchMethod) { + this.matchMethod = matchMethod; + } } \ No newline at end of file diff --git a/src/main/java/com/nis/domain/configuration/BaseCfg.java b/src/main/java/com/nis/domain/configuration/BaseCfg.java index 438ec6778..548a1f296 100644 --- a/src/main/java/com/nis/domain/configuration/BaseCfg.java +++ b/src/main/java/com/nis/domain/configuration/BaseCfg.java @@ -80,19 +80,19 @@ public class BaseCfg extends BaseEntity implements Cloneable{ private String commonGroupIds; //公共组织id(考虑一个compile存在多个asn组织的情况) protected Integer groupType; //url组以及dns组相关功能使用 protected Integer udFlag; //url组以及dns组相关功能使用 过滤数据库数据标记 + + public String getCommonGroupIds() { + return commonGroupIds; + } + public void setCommonGroupIds(String commonGroupIds) { + this.commonGroupIds = commonGroupIds; + } public Integer getGroupType() { return groupType; } public void setGroupType(Integer groupType) { this.groupType = groupType; } - public String getCommonGroupIds() { - return commonGroupIds; - } - - public void setCommonGroupIds(String commonGroupIds) { - this.commonGroupIds = commonGroupIds; - } public Integer getUdFlag() { return udFlag; } diff --git a/src/main/java/com/nis/domain/configuration/CfgIndexInfo.java b/src/main/java/com/nis/domain/configuration/CfgIndexInfo.java index f2b0e701e..a90d4b88f 100644 --- a/src/main/java/com/nis/domain/configuration/CfgIndexInfo.java +++ b/src/main/java/com/nis/domain/configuration/CfgIndexInfo.java @@ -14,8 +14,10 @@ import java.util.Map; import com.google.gson.annotations.Expose; import com.nis.domain.basics.AsnGroupInfo; import com.nis.domain.basics.AsnIpCfg; +import com.nis.domain.basics.DomainCommCfg; import com.nis.domain.basics.IpCommCfg; import com.nis.domain.basics.IpReuseIpCfg; +import com.nis.domain.basics.ScriberIdCommCfg; import com.nis.domain.basics.UrlCommCfg; import com.nis.util.Constants; import com.nis.util.excel.ExcelField; @@ -92,6 +94,9 @@ public class CfgIndexInfo extends BaseCfg { private Long totalLogs; private List urlCommGroupList; private List ipCommGroupCfgList; + private List domainCommGroupList; + private List scriberIdCommGroupList; + /*private CachePolicyUserRegion cachePolicyUserRegion;//缓存策略用户自定义域参数 public static class CachePolicyUserRegion{ @@ -425,5 +430,20 @@ public class CfgIndexInfo extends BaseCfg { public void setUrlCommGroupList(List urlCommGroupList) { this.urlCommGroupList = urlCommGroupList; } + + public List getDomainCommGroupList() { + return domainCommGroupList; + } + public void setDomainCommGroupList(List domainCommGroupList) { + this.domainCommGroupList = domainCommGroupList; + } + + public List getScriberIdCommGroupList() { + return scriberIdCommGroupList; + } + public void setScriberIdCommGroupList(List scriberIdCommGroupList) { + this.scriberIdCommGroupList = scriberIdCommGroupList; + } + } diff --git a/src/main/java/com/nis/domain/configuration/template/DomainCommCfgTemplate.java b/src/main/java/com/nis/domain/configuration/template/DomainCommCfgTemplate.java new file mode 100644 index 000000000..5a547f7b5 --- /dev/null +++ b/src/main/java/com/nis/domain/configuration/template/DomainCommCfgTemplate.java @@ -0,0 +1,23 @@ +package com.nis.domain.configuration.template; + +import com.nis.util.excel.ExcelField; + +/** + * 域名公共组配置 导入模板 + * @author dell + * + */ +public class DomainCommCfgTemplate extends StringAllNotDoLogTemplate{ + + @ExcelField(title="group_name",align=2,sort=10) + private Integer groupId; + + public Integer getGroupId() { + return groupId; + } + + public void setGroupId(Integer groupId) { + this.groupId = groupId; + } + +} diff --git a/src/main/java/com/nis/domain/configuration/template/IpCommCfgTemplate.java b/src/main/java/com/nis/domain/configuration/template/IpCommCfgTemplate.java index 00dc56ebc..72a9c327e 100644 --- a/src/main/java/com/nis/domain/configuration/template/IpCommCfgTemplate.java +++ b/src/main/java/com/nis/domain/configuration/template/IpCommCfgTemplate.java @@ -3,7 +3,7 @@ package com.nis.domain.configuration.template; import com.nis.util.excel.ExcelField; public class IpCommCfgTemplate extends IpAllNotDoLogTemplate{ - @ExcelField(title="ip_group",align=2,sort=10) + @ExcelField(title="group_name",align=2,sort=10) private Integer groupId; public Integer getGroupId() { diff --git a/src/main/java/com/nis/domain/configuration/template/ScriberIdCommCfgTemplate.java b/src/main/java/com/nis/domain/configuration/template/ScriberIdCommCfgTemplate.java new file mode 100644 index 000000000..d48298ae2 --- /dev/null +++ b/src/main/java/com/nis/domain/configuration/template/ScriberIdCommCfgTemplate.java @@ -0,0 +1,23 @@ +package com.nis.domain.configuration.template; + +import com.nis.util.excel.ExcelField; + +/** + * 域名公共组配置 导入模板 + * @author dell + * + */ +public class ScriberIdCommCfgTemplate extends StringAllNotDoLogTemplate{ + + @ExcelField(title="group_name",align=2,sort=10) + private Integer groupId; + + public Integer getGroupId() { + return groupId; + } + + public void setGroupId(Integer groupId) { + this.groupId = groupId; + } + +} diff --git a/src/main/java/com/nis/domain/configuration/template/UrlCommCfgTemplate.java b/src/main/java/com/nis/domain/configuration/template/UrlCommCfgTemplate.java index 9627fea19..753516f61 100644 --- a/src/main/java/com/nis/domain/configuration/template/UrlCommCfgTemplate.java +++ b/src/main/java/com/nis/domain/configuration/template/UrlCommCfgTemplate.java @@ -9,7 +9,7 @@ import com.nis.util.excel.ExcelField; */ public class UrlCommCfgTemplate extends StringAllNotDoLogTemplate{ - @ExcelField(title="url_group",align=2,sort=10) + @ExcelField(title="group_name",align=2,sort=10) private Integer groupId; public Integer getGroupId() { diff --git a/src/main/java/com/nis/util/Constants.java b/src/main/java/com/nis/util/Constants.java index 9e3729128..02f77932f 100644 --- a/src/main/java/com/nis/util/Constants.java +++ b/src/main/java/com/nis/util/Constants.java @@ -192,6 +192,22 @@ public final class Constants { * DNS 策略组KEY */ public static final String CACHE_DNSGROUP_DICT = "dnsGroupDict"; + /** + * IP公共组缓存KEY + */ + public static final String CACHE_IPGROUP_DICT = "ipComGroupDict"; + /** + * URL公共组缓存KEY + */ + public static final String CACHE_URLGROUP_DICT = "urlComGroupDict"; + /** + * Domain公共组缓存KEY + */ + public static final String CACHE_DOMAINGROUP_DICT = "domainComGroupDict"; + /** + * ScriberId公共组缓存KEY + */ + public static final String CACHE_SCRIBERGROUP_DICT = "scriberComGroupDict"; /** * 词典数据分类 */ diff --git a/src/main/java/com/nis/util/DictUtils.java b/src/main/java/com/nis/util/DictUtils.java index cbf42237d..7e96246e2 100644 --- a/src/main/java/com/nis/util/DictUtils.java +++ b/src/main/java/com/nis/util/DictUtils.java @@ -14,12 +14,14 @@ import com.nis.domain.FunctionRegionDict; import com.nis.domain.FunctionServiceDict; import com.nis.domain.SysDataDictionaryItem; import com.nis.domain.SysDataDictionaryName; +import com.nis.domain.basics.CommonGroupInfo; import com.nis.domain.basics.PolicyGroupInfo; import com.nis.domain.basics.SysDictInfo; import com.nis.domain.configuration.DnsResStrategy; import com.nis.web.dao.FunctionRegionDictDao; import com.nis.web.dao.FunctionServiceDictDao; import com.nis.web.dao.SysDictDao; +import com.nis.web.dao.basics.CommonGroupManageDao; import com.nis.web.dao.basics.PolicyGroupInfoDao; import com.nis.web.dao.basics.SysDictInfoDao; import com.nis.web.dao.configuration.DnsResStrategyDao; @@ -42,6 +44,7 @@ public class DictUtils { private final static FunctionServiceDictDao functionServiceDictDao = SpringContextHolder.getBean(FunctionServiceDictDao.class); private final static DnsResStrategyDao dnsResStrategyDao = SpringContextHolder.getBean(DnsResStrategyDao.class); private final static PolicyGroupInfoDao policyGroupInfoDao = SpringContextHolder.getBean(PolicyGroupInfoDao.class); + private final static CommonGroupManageDao commonGroupManageDao = SpringContextHolder.getBean(CommonGroupManageDao.class); public static Map> getDictData() { @@ -401,4 +404,38 @@ public class DictUtils { } return null; } + + /** + * 获取公共组字典缓存 + */ + public static List getCommonGroups(Integer groupType){ + String dictKey = Constants.CACHE_IPGROUP_DICT; + if(groupType.equals(7)) { + dictKey = Constants.CACHE_URLGROUP_DICT; + }else if(groupType.equals(8)) { + dictKey = Constants.CACHE_DOMAINGROUP_DICT; + }else if(groupType.equals(9)) { + dictKey = Constants.CACHE_SCRIBERGROUP_DICT; + } + List allDictList = (List)CacheUtils.get(dictKey); + if(StringUtil.isEmpty(allDictList)){ + allDictList = commonGroupManageDao.findCommonGroupInfosByType(groupType); + CacheUtils.put(dictKey, allDictList); + } + + return allDictList; + } + public static CommonGroupInfo getCommonGroups(Integer groupId, Integer groupType){ + List allDictList = getCommonGroups(groupType); + if(StringUtil.isEmpty(allDictList)){ + }else { + for(CommonGroupInfo group:allDictList) { + if(group.getServiceGroupId().equals(groupId)) { + return group; + } + } + } + return null; + } + } diff --git a/src/main/java/com/nis/util/excel/ExportExcel.java b/src/main/java/com/nis/util/excel/ExportExcel.java index e582331bf..60da0a052 100644 --- a/src/main/java/com/nis/util/excel/ExportExcel.java +++ b/src/main/java/com/nis/util/excel/ExportExcel.java @@ -465,18 +465,27 @@ public class ExportExcel { } } - if("ip_group".equals(headerStr)) { + // IP、URL、Domain和ScriberId公共组 + if("group_name".equals(headerStr)) { commentStr=""; - //查询dns fake ip policyGroup列表 - List list=policyGroupInfoDao.findPolicyGroupInfosByType(5); - if(!StringUtil.isEmpty(list)){ - for (PolicyGroupInfo policyGroupInfo : list) { - commentStr=commentStr+policyGroupInfo.getServiceGroupId()+"("+policyGroupInfo.getGroupName()+")\n"; - index++; - } + List list = null; + if(region.getFunctionId().equals(605)) { + list=policyGroupInfoDao.findPolicyGroupInfosByType(5); + }else if(region.getFunctionId().equals(606)) { + list=policyGroupInfoDao.findPolicyGroupInfosByType(7); + }else if(region.getFunctionId().equals(607)) { + list=policyGroupInfoDao.findPolicyGroupInfosByType(8); + }else if(region.getFunctionId().equals(608)) { + list=policyGroupInfoDao.findPolicyGroupInfosByType(9); + } + if(!StringUtil.isEmpty(list)){ + for (PolicyGroupInfo policyGroupInfo : list) { + commentStr=commentStr+policyGroupInfo.getServiceGroupId()+"("+policyGroupInfo.getGroupName()+")\n"; + index++; } - commentStr=msgProp.getProperty("select")+":\n"+commentStr; - index++; + } + commentStr=msgProp.getProperty("select")+":\n"+commentStr; + index++; } if("isp".equals(headerStr)) { commentStr=""; @@ -1807,7 +1816,7 @@ public class ExportExcel { commentStr=commentStr+msgProp.getProperty("rule_desc_tip")+":\n"; index++; //2、默认值说明 - if(region.getFunctionId().equals(200)) { + if(region.getFunctionId().equals(200) || region.getFunctionId().equals(607)) { commentStr=commentStr+"▶"+msgProp.getProperty("default_value")+":1\n"; }else { commentStr=commentStr+"▶"+msgProp.getProperty("default_value")+":0\n"; diff --git a/src/main/java/com/nis/util/excel/thread/CheckIpFormatThread.java b/src/main/java/com/nis/util/excel/thread/CheckIpFormatThread.java index b84e83f8c..56457b8e4 100644 --- a/src/main/java/com/nis/util/excel/thread/CheckIpFormatThread.java +++ b/src/main/java/com/nis/util/excel/thread/CheckIpFormatThread.java @@ -21,6 +21,7 @@ import com.nis.domain.FunctionRegionDict; import com.nis.domain.FunctionServiceDict; import com.nis.domain.SysDataDictionaryItem; import com.nis.domain.basics.AsnGroupInfo; +import com.nis.domain.basics.CommonGroupInfo; import com.nis.domain.basics.PolicyGroupInfo; import com.nis.domain.callback.ProxyFileTrafficMirrorCfg; import com.nis.domain.configuration.BaseIpCfg; @@ -33,6 +34,7 @@ import com.nis.util.Constants; import com.nis.util.DictUtils; import com.nis.util.IPUtil; import com.nis.util.StringUtil; +import com.nis.web.dao.basics.PolicyGroupInfoDao; import com.nis.web.dao.configuration.ProxyFileTrafficMirrorDao; import com.nis.web.dao.configuration.PxyObjKeyringDao; import com.nis.web.service.BaseService; @@ -50,6 +52,8 @@ public class CheckIpFormatThread implements Callable{ private Map asnGroupInfos; private static PxyObjKeyringDao pxyObjKeyringDao = SpringContextHolder.getBean(PxyObjKeyringDao.class); private static ProxyFileTrafficMirrorDao proxyFileDao = SpringContextHolder.getBean(ProxyFileTrafficMirrorDao.class); + private static PolicyGroupInfoDao policyGroupInfoDao = SpringContextHolder.getBean(PolicyGroupInfoDao.class); + // private DnsResStrategyDao dnsResStrategyDao; public CheckIpFormatThread(FunctionServiceDict serviceDict,FunctionRegionDict regionDict,Properties prop,BlockingQueue srcQueue,BlockingQueue destQueue) { this.serviceDict=serviceDict; @@ -832,6 +836,19 @@ public class CheckIpFormatThread implements Callable{ } } + // IP公共组配置 + if(regionDict.getFunctionId().equals(605)) { + Integer groupId = baseIpCfg.getGroupId(); + if (groupId != null) { + CommonGroupInfo groupInfo = DictUtils.getCommonGroups(groupId, 5); + if (groupInfo == null) { + errInfo.append(String.format(prop.getProperty("is_incorrect"), prop.getProperty("group_name"))+ ";"); + } + }else { + errInfo.append(String.format(prop.getProperty("can_not_null"), prop.getProperty("group_name") + " ") + ";"); + } + } + if (regionDict.getRegionType().equals(1)) { boolean srcIpEmpty = false; boolean destIpEmpty = false; diff --git a/src/main/java/com/nis/util/excel/thread/CheckStringFormatThread.java b/src/main/java/com/nis/util/excel/thread/CheckStringFormatThread.java index 161183124..0a780d6d0 100644 --- a/src/main/java/com/nis/util/excel/thread/CheckStringFormatThread.java +++ b/src/main/java/com/nis/util/excel/thread/CheckStringFormatThread.java @@ -21,6 +21,8 @@ import com.beust.jcommander.internal.Sets; import com.nis.domain.FunctionRegionDict; import com.nis.domain.FunctionServiceDict; import com.nis.domain.SysDataDictionaryItem; +import com.nis.domain.basics.CommonGroupInfo; +import com.nis.domain.basics.PolicyGroupInfo; import com.nis.domain.callback.ProxyFileTrafficMirrorCfg; import com.nis.domain.configuration.BaseStringCfg; import com.nis.domain.configuration.PxyObjKeyring; @@ -131,6 +133,41 @@ public class CheckStringFormatThread implements Callable{ // doLog属性检验 this.validDoLog(baseStringCfg,errInfo); + // URL、Domain、ScriberId公共组配置 + if(regionDict.getFunctionId().equals(606)) { + Integer groupId = baseStringCfg.getGroupId(); + if (groupId != null) { + CommonGroupInfo groupInfo = DictUtils.getCommonGroups(groupId, 7); + if (groupInfo == null) { + errInfo.append(String.format(prop.getProperty("is_incorrect"), prop.getProperty("group_name"))+ ";"); + } + }else { + errInfo.append(String.format(prop.getProperty("can_not_null"), prop.getProperty("group_name") + " ") + ";"); + } + } + if(regionDict.getFunctionId().equals(607)) { + Integer groupId = baseStringCfg.getGroupId(); + if (groupId != null) { + CommonGroupInfo groupInfo = DictUtils.getCommonGroups(groupId, 8); + if (groupInfo == null) { + errInfo.append(String.format(prop.getProperty("is_incorrect"), prop.getProperty("group_name"))+ ";"); + } + }else { + errInfo.append(String.format(prop.getProperty("can_not_null"), prop.getProperty("group_name") + " ") + ";"); + } + } + if(regionDict.getFunctionId().equals(608)) { + Integer groupId = baseStringCfg.getGroupId(); + if (groupId != null) { + CommonGroupInfo groupInfo = DictUtils.getCommonGroups(groupId, 9); + if (groupInfo == null) { + errInfo.append(String.format(prop.getProperty("is_incorrect"), prop.getProperty("group_name"))+ ";"); + } + }else { + errInfo.append(String.format(prop.getProperty("can_not_null"), prop.getProperty("group_name") + " ") + ";"); + } + } + if (regionDict.getRegionType().equals(2)) { if (regionDict.getFunctionId().equals(510) && "p2p_hash".equals(regionDict.getConfigServiceType())) { String userRegion1 = baseStringCfg.getUserRegion1(); diff --git a/src/main/java/com/nis/web/controller/BaseController.java b/src/main/java/com/nis/web/controller/BaseController.java index ae44e75d4..a1303bba9 100644 --- a/src/main/java/com/nis/web/controller/BaseController.java +++ b/src/main/java/com/nis/web/controller/BaseController.java @@ -91,6 +91,7 @@ import com.nis.domain.configuration.template.DnsComplexStringTemplate; import com.nis.domain.configuration.template.DnsFakeIpTemplate; import com.nis.domain.configuration.template.DnsIpTemplate; import com.nis.domain.configuration.template.DnsResStrategyTemplate; +import com.nis.domain.configuration.template.DomainCommCfgTemplate; import com.nis.domain.configuration.template.DomainInterceptMonitTemplate; import com.nis.domain.configuration.template.DomainInterceptRateLimitTemplate; import com.nis.domain.configuration.template.DomainInterceptTemplate; @@ -107,15 +108,18 @@ import com.nis.domain.configuration.template.InterceptDomainTemplate; import com.nis.domain.configuration.template.InterceptIpTemplate; import com.nis.domain.configuration.template.IpAllNotDoLogTemplate; import com.nis.domain.configuration.template.IpAllTemplate; +import com.nis.domain.configuration.template.IpCommCfgTemplate; import com.nis.domain.configuration.template.IpPayloadTemplate; import com.nis.domain.configuration.template.IpRateLimitTemplate; import com.nis.domain.configuration.template.IpSpoofingTemplate; import com.nis.domain.configuration.template.IpWhitelistTemplate; import com.nis.domain.configuration.template.P2pHashStringTemplate; import com.nis.domain.configuration.template.P2pIpTemplate; +import com.nis.domain.configuration.template.ScriberIdCommCfgTemplate; import com.nis.domain.configuration.template.StringAllNotDoLogTemplate; import com.nis.domain.configuration.template.StringAllTemplate; import com.nis.domain.configuration.template.TopicWebsiteTemplate; +import com.nis.domain.configuration.template.UrlCommCfgTemplate; import com.nis.domain.log.BaseLogEntity; import com.nis.domain.log.SearchReport; import com.nis.domain.maat.MaatCfg; @@ -2545,7 +2549,10 @@ public class BaseController { ei.loadInitParams(IpAllNotDoLogTemplate.class, msgProp, regionDict, serviceDict); } else if((regionDict.getFunctionId().equals(63) || regionDict.getFunctionId().equals(407) || regionDict.getFunctionId().equals(408)) && serviceDict.getAction().equals(64)){ // Policies -> Stream ei.loadInitParams(IpRateLimitTemplate.class, msgProp, regionDict, serviceDict); - }else { + } else if(regionDict.getFunctionId().equals(605)){ // IP Common Group + ei.loadInitParams(IpCommCfgTemplate.class, msgProp, regionDict, serviceDict); + } + else { ei.loadInitParams(IpAllTemplate.class, msgProp, regionDict, serviceDict); } } else if (regionDict.getRegionType().equals(2)) {// 字符串类 @@ -2583,6 +2590,12 @@ public class BaseController { ei.loadInitParams(StringAllNotDoLogTemplate.class, this.getMsgProp(), regionDict, serviceDict); }else if(regionDict.getFunctionId().equals(560)){// 主题网站 ei.loadInitParams(TopicWebsiteTemplate.class, this.getMsgProp(), regionDict, serviceDict); + }else if(regionDict.getFunctionId().equals(606)){// URL Common Group + ei.loadInitParams(UrlCommCfgTemplate.class, this.getMsgProp(), regionDict, serviceDict); + }else if(regionDict.getFunctionId().equals(607)){// 域名 Common Group + ei.loadInitParams(DomainCommCfgTemplate.class, this.getMsgProp(), regionDict, serviceDict); + }else if(regionDict.getFunctionId().equals(608)){// 账号 Common Group + ei.loadInitParams(ScriberIdCommCfgTemplate.class, this.getMsgProp(), regionDict, serviceDict); }else { ei.loadInitParams(StringAllTemplate.class, msgProp, regionDict, serviceDict); } diff --git a/src/main/java/com/nis/web/controller/basics/CommonGroupManageController.java b/src/main/java/com/nis/web/controller/basics/CommonGroupManageController.java index e4951171d..727e91c1e 100644 --- a/src/main/java/com/nis/web/controller/basics/CommonGroupManageController.java +++ b/src/main/java/com/nis/web/controller/basics/CommonGroupManageController.java @@ -71,9 +71,9 @@ public class CommonGroupManageController extends BaseController { } @RequestMapping(value={"delete"}) - public String delete(RedirectAttributes redirectAttributes, Integer groupType,String ids,int isValid,HttpServletRequest request) { + public String delete(RedirectAttributes redirectAttributes, String groupTypes, String ids, int isValid,HttpServletRequest request) { try { - commonGroupManageService.deldete(ids,isValid); + commonGroupManageService.deldete(ids, isValid, groupTypes); addMessage(redirectAttributes,"success","delete_success"); } catch (Exception e) { logger.error("删除失败",e); diff --git a/src/main/java/com/nis/web/controller/basics/DomainCommGroupController.java b/src/main/java/com/nis/web/controller/basics/DomainCommGroupController.java new file mode 100644 index 000000000..3f3dbd866 --- /dev/null +++ b/src/main/java/com/nis/web/controller/basics/DomainCommGroupController.java @@ -0,0 +1,302 @@ +package com.nis.web.controller.basics; + +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.BlockingQueue; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.jets3t.service.ServiceException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +import com.beust.jcommander.internal.Lists; +import com.nis.domain.FunctionRegionDict; +import com.nis.domain.FunctionServiceDict; +import com.nis.domain.Page; +import com.nis.domain.basics.CommonGroupInfo; +import com.nis.domain.basics.DomainCommCfg; +import com.nis.domain.configuration.BaseStringCfg; +import com.nis.domain.configuration.CfgIndexInfo; +import com.nis.domain.configuration.template.DomainCommCfgTemplate; +import com.nis.exceptions.MaatConvertException; +import com.nis.util.ConfigServiceUtil; +import com.nis.util.Constants; +import com.nis.util.DictUtils; +import com.nis.util.StringUtil; +import com.nis.util.excel.ImportBigExcel; +import com.nis.web.controller.BaseController; +import com.nis.web.security.UserUtils; +import com.nis.web.service.basics.DomainCommGroupService; + +@Controller +@RequestMapping(value = "${adminPath}/basics/domain") +public class DomainCommGroupController extends BaseController{ + + @Autowired + private DomainCommGroupService domainCommGroupService; + + @RequestMapping(value = {"/list"}) + public String list(Model model, @ModelAttribute("cfg")DomainCommCfg entity, HttpServletRequest request,HttpServletResponse response){ + Page page = domainCommGroupService.findPage(new Page(request, response,"r"), entity); + List regionList = DictUtils.getFunctionRegionDictList(entity.getFunctionId()); + List serviceList = DictUtils.getFunctionServiceDictList(entity.getFunctionId()); + List groupInfos = commonGroupManageService.findCommonGroupInfosByType(8); + + model.addAttribute("page", page); + model.addAttribute("regionList", regionList); + model.addAttribute("serviceList", serviceList); + model.addAttribute("policyGroupInfos", groupInfos); + return "/basics/domainCommGroupList"; + } + + @RequestMapping(value = {"/addForm"}) + public String addForm(Model model, @ModelAttribute("cfg")CfgIndexInfo cfg, RedirectAttributes redirectAttributes, + HttpServletRequest request, HttpServletResponse response){ + initFormCondition(model,cfg); + List groupInfos=commonGroupManageService.findCommonGroupInfosByType(8); + model.addAttribute("policyGroupInfos", groupInfos); + + model.addAttribute("_cfg", cfg); + return "/basics/domainCommGroupFormAdd"; + } + + @RequestMapping(value = {"/save"}) + public String save(Model model, @ModelAttribute("cfg")CfgIndexInfo cfg,RedirectAttributes redirectAttributes, + HttpServletRequest request,HttpServletResponse response){ + try{ + domainCommGroupService.saveCommGroupCfg(cfg); + addMessage(redirectAttributes,"success","save_success"); + }catch(Exception e){ + logger.error("信息保存失败",e); + if(e instanceof MaatConvertException) { + addMessage(redirectAttributes,"error",e.getMessage()); + }else { + addMessage(redirectAttributes,"error","save_failed"); + } + } + + return "redirect:" + adminPath +"/basics/domain/list?functionId="+cfg.getFunctionId(); + } + + @RequestMapping(value = {"/updateForm"}) + public String updateForm(Model model,HttpServletRequest request + ,HttpServletResponse response,String ids,@ModelAttribute("cfg")DomainCommCfg cfg + ,RedirectAttributes redirectAttributes){ + cfg = domainCommGroupService.get(Long.parseLong(ids)); + initUpdateFormCondition(model,cfg); + List groupInfos=commonGroupManageService.findCommonGroupInfosByType(8); + model.addAttribute("policyGroupInfos", groupInfos); + model.addAttribute("_cfg", cfg); + return "/basics/domainCommGroupFormUpdate"; + } + + @RequestMapping(value = {"/update"}) + public String update(Model model,HttpServletRequest request,HttpServletResponse response,@ModelAttribute("cfg")DomainCommCfg cfg,RedirectAttributes redirectAttributes){ + try{ + domainCommGroupService.update(cfg); + addMessage(redirectAttributes,"success","save_success"); + }catch(Exception e){ + logger.error("信息保存失败",e); + addMessage(redirectAttributes,"error","save_failed"); + } + + return "redirect:" + adminPath +"/basics/domain/list?functionId="+cfg.getFunctionId(); + } + + @RequestMapping(value = {"/delete"}) + public String delete(String compileIds, String ids, Integer functionId, RedirectAttributes redirectAttributes){ + try{ + domainCommGroupService.delete(ids,compileIds); + addMessage(redirectAttributes,"success","delete_success"); + }catch(Exception e){ + logger.error("Delete failed",e); + if(e instanceof MaatConvertException) { + addMessage(redirectAttributes,"error",e.getMessage()); + }else { + addMessage(redirectAttributes,"error","delete_failed"); + } + } + + return "redirect:" + adminPath +"/basics/domain/list?functionId="+functionId; + } + + // 数据导入 + @RequestMapping(value = "import", method=RequestMethod.POST) + public String importIp(HttpServletRequest request,HttpServletResponse response,RedirectAttributes redirectAttributes, + @RequestParam("files") MultipartFile[] files, Integer serviceDictId ,Integer requestId ,String attribute ,String classify + ,String regionDictIds ,String importPath) { + logger.warn("import start..."); + long start=System.currentTimeMillis(); + ImportBigExcel ei=null; + try { + FunctionServiceDict serviceDict = DictUtils.getFunctionServiceDict(serviceDictId); + StringBuffer errTip=new StringBuffer(); + BlockingQueue> stringCfgs =null; + + for (int i = 0; i < files.length; i++) { + MultipartFile file = files[i]; + ei = new ImportBigExcel(file, 0, 1); + FunctionRegionDict regionDict = DictUtils.getFunctionRegionDict(Integer.parseInt(regionDictIds.split(",")[i])); + //加载模板 + loadTemplate(ei,regionDict, serviceDict); + //------------------------------------check format start---------------------------- + if (regionDict.getRegionType().equals(2)) { + BlockingQueue list = ei.getDataList(DomainCommCfgTemplate.class ); + stringCfgs = this.checkStringCfgMulity(errTip, serviceDict, regionDict, list); + } + //删除文件 + if(ei.getUploadFile()!=null&&ei.getUploadFile().exists()) { + ei.getUploadFile().delete(); + } + //------------------------------------check format end---------------------------- + Date date = new Date(); + //String isSend = request.getParameter("isSend")==null?"":request.getParameter("isSend"); + + if (regionDict.getRegionType().equals(2)) { + List> _stringCfgs=Lists.newArrayList(Constants.MAAT_JSON_SEND_SIZE); + while(!stringCfgs.isEmpty()) { + stringCfgs.drainTo(_stringCfgs, Constants.MAAT_JSON_SEND_SIZE); + + List regionIds = Lists.newArrayList(_stringCfgs.size()); + try { + regionIds = ConfigServiceUtil.getId(3,_stringCfgs.size()); + } catch (Exception e) { + e.printStackTrace(); + logger.info("获取域ID出错"); + throw new MaatConvertException(":"+e.getMessage()); + } + + int index = 0; + for (BaseStringCfg cfg : _stringCfgs) { + cfg.setAction(serviceDict==null?null:serviceDict.getAction()); + cfg.setCfgRegionCode(regionDict.getConfigRegionCode()); + cfg.setCfgType(regionDict.getConfigRegionValue()); + cfg.setCreateTime(date); + cfg.setCreatorId(UserUtils.getUser().getId()); + //cfg.setDoLog(2); + cfg.setCompileId(0); + cfg.setFunctionId(regionDict.getFunctionId()); + cfg.setIsAudit(Constants.AUDIT_NOT_YET); + cfg.setIsValid(Constants.VALID_NO); + cfg.setIsAreaEffective(0); + cfg.setLable("0"); + cfg.setRequestId(StringUtil.isEmpty(requestId) ? 0 : requestId); + cfg.setAttribute(attribute); + cfg.setClassify(classify); + cfg.setServiceId(serviceDict==null?null:serviceDict.getServiceId()); + cfg.setTableName("domain_comm_cfg"); + cfg.setRegionId(regionIds.get(index)); + index++; + + } + domainCommGroupService.saveAndSend(regionDict, serviceDict, _stringCfgs); + _stringCfgs.clear(); + } + + } + } + if(errTip.toString().length()>0) { + addMessage(redirectAttributes,"error", errTip.toString()); + } + } catch (Exception e) { + if(ei!=null) { + if(ei.getUploadFile().exists()) { + ei.getUploadFile().delete(); + } + } + if(e instanceof MaatConvertException) { + addMessage(redirectAttributes,"error", "request_service_failed"); + }else if(e instanceof ServiceException) { + addMessage(redirectAttributes,"error", e.getMessage()); + }else if(e instanceof IndexOutOfBoundsException){ + addMessage(redirectAttributes,"error", "template_error"); + }else { + addMessage(redirectAttributes,"error", "import_failed"); + } + logger.error("import failed", e); + } + long end=System.currentTimeMillis(); + logger.warn("import finish,cost:"+(end-start)); + return "redirect:" + adminPath+ importPath; + } + + // 数据导出 + @RequestMapping(value = "/exportGroupInfo") + public void exportGroupInfo(Model model,HttpServletRequest request,HttpServletResponse response, + @ModelAttribute("cfg")DomainCommCfg entity,String ids,RedirectAttributes redirectAttributes){ + try { + List titleList=new ArrayList(); + Map> classMap=new HashMap>(); + Map dataMap=new HashMap(); + Map noExportMap=new HashMap(); + List list = new ArrayList(); + if (!StringUtil.isEmpty(ids)) { + list = domainCommGroupService.findByPage(ids); + } else { + Page pageInfo=new Page(request, response,"r"); + pageInfo.setPageNo(1); + pageInfo.setPageSize(Constants.MAX_EXPORT_SIZE); + Page page = domainCommGroupService.findPage(pageInfo, entity); + list=page.getList(); + } + + CommonGroupInfo groupInfo = new CommonGroupInfo(); + for (DomainCommCfg cfg : list) { + groupInfo.setServiceGroupId(cfg.getGroupId()); + CommonGroupInfo commonGroupInfo = commonGroupManageService.getGroupInfo(groupInfo); + cfg.setGroupName(commonGroupInfo.getGroupName()); + + } + + titleList.add(entity.getMenuNameCode()); + classMap.put(entity.getMenuNameCode(), DomainCommCfg.class); + String cfgIndexInfoNoExport=",block_type,do_log,action,letter,whether_area_block,classification,attribute,label" + + ",expression_type,userregion1,userregion2,userregion3,userregion4,userregion5,ir_type,asn_no," + + "is_hex,is_case_insenstive,cfg_id,is_audit,auditor,valid_identifier,"; + // 时间过滤 + if (entity.getSearch_create_time_start() == null ) { + cfgIndexInfoNoExport = ",config_time" + cfgIndexInfoNoExport; + } + if (entity.getSearch_edit_time_start() == null) { + cfgIndexInfoNoExport = ",edit_time" + cfgIndexInfoNoExport; + } + if (entity.getSearch_audit_time_start() == null) { + cfgIndexInfoNoExport = ",audit_time" + cfgIndexInfoNoExport; + } + if (!StringUtil.isEmpty(entity.gethColumns())) { + cfgIndexInfoNoExport = "," + entity.gethColumns() + "," + cfgIndexInfoNoExport; + } + + noExportMap.put(entity.getMenuNameCode(),cfgIndexInfoNoExport); + dataMap.put(entity.getMenuNameCode(), list); + String timeRange = initTimeMap(entity); + noExportMap.put("timeRange", timeRange); + + if ("csv".equals(entity.getExType())) { + this._exportCsv(model, request, response, redirectAttributes, entity.getMenuNameCode(), titleList, + classMap, dataMap, noExportMap); + } else { + this._export(model, request, response, redirectAttributes, entity.getMenuNameCode(), titleList, + classMap, dataMap, noExportMap); + } + + } catch (Exception e) { + logger.error("domainGroupConfig export failed",e); + addMessage(redirectAttributes,"error","export_failed"); + + } + + } +} \ No newline at end of file diff --git a/src/main/java/com/nis/web/controller/basics/IpCommGroupController.java b/src/main/java/com/nis/web/controller/basics/IpCommGroupController.java index 4b32cad00..8dfef1e3d 100644 --- a/src/main/java/com/nis/web/controller/basics/IpCommGroupController.java +++ b/src/main/java/com/nis/web/controller/basics/IpCommGroupController.java @@ -33,6 +33,7 @@ import com.nis.domain.configuration.CfgIndexInfo; import com.nis.domain.configuration.IpPortCfg; import com.nis.domain.configuration.template.IpCommCfgTemplate; import com.nis.exceptions.MaatConvertException; +import com.nis.util.ConfigServiceUtil; import com.nis.util.Constants; import com.nis.util.DictUtils; import com.nis.util.StringUtil; @@ -159,11 +160,20 @@ public class IpCommGroupController extends BaseController { Page page = ipCommGroupCfgService.findPage(pageInfo, entity); list = page.getList(); } + + CommonGroupInfo groupInfo = new CommonGroupInfo(); + for (IpCommCfg cfg : list) { + groupInfo.setServiceGroupId(cfg.getGroupId()); + CommonGroupInfo commonGroupInfo = commonGroupManageService.getGroupInfo(groupInfo); + cfg.setGroupName(commonGroupInfo.getGroupName()); + + } + titleList.add(entity.getMenuNameCode()); - classMap.put(entity.getMenuNameCode(), IpPortCfg.class); + classMap.put(entity.getMenuNameCode(), IpCommCfg.class); String cfgIndexInfoNoExport = ",block_type,do_log,action" - + ",letter,whether_area_block,classification,attribute,label" - + ",userregion1,userregion2,userregion3,userregion4,userregion5,src_ip_pattern,client_ip,src_port_pattern,client_port,dest_ip_pattern,dest_port_pattern,dest_port,"; + + ",letter,whether_area_block,classification,attribute,label,userregion1,userregion2,userregion3,userregion4,userregion5" + + ",src_ip_pattern,src_port_pattern,client_port,dest_ip_pattern,dest_port_pattern,server_port,cfg_id,is_audit,auditor,valid_identifier,ir_type,"; // 时间过滤 if (entity.getSearch_create_time_start() == null) { cfgIndexInfoNoExport = ",config_time" + cfgIndexInfoNoExport; @@ -198,7 +208,8 @@ public class IpCommGroupController extends BaseController { } } - + + // 数据导入 @RequestMapping(value = "import", method=RequestMethod.POST) public String importIp(HttpServletRequest request,HttpServletResponse response,RedirectAttributes redirectAttributes, @RequestParam("files") MultipartFile[] files, Integer serviceDictId ,Integer requestId ,String attribute ,String classify @@ -210,7 +221,7 @@ public class IpCommGroupController extends BaseController { FunctionServiceDict serviceDict = DictUtils.getFunctionServiceDict(serviceDictId); StringBuffer errTip=new StringBuffer(); BlockingQueue ipPortCfgs =null; - //List cfgIndexInfos = new ArrayList(); + for (int i = 0; i < files.length; i++) { MultipartFile file = files[i]; ei = new ImportBigExcel(file, 0, 1); @@ -234,8 +245,16 @@ public class IpCommGroupController extends BaseController { List _ipPortCfgs=Lists.newArrayList(Constants.MAAT_JSON_SEND_SIZE); while(!ipPortCfgs.isEmpty()) { ipPortCfgs.drainTo(_ipPortCfgs, Constants.MAAT_JSON_SEND_SIZE); + List regionIds = Lists.newArrayList(_ipPortCfgs.size()); + try { + regionIds = ConfigServiceUtil.getId(3,_ipPortCfgs.size()); + } catch (Exception e) { + e.printStackTrace(); + logger.info("获取域ID出错"); + throw new MaatConvertException(":"+e.getMessage()); + } - int ind=0; + int index = 0; for (BaseIpCfg cfg : _ipPortCfgs) { cfg.setAction(serviceDict==null?null:serviceDict.getAction()); cfg.setCfgRegionCode(regionDict.getConfigRegionCode()); @@ -245,15 +264,8 @@ public class IpCommGroupController extends BaseController { //cfg.setDoLog(2); cfg.setCompileId(0); cfg.setFunctionId(regionDict.getFunctionId()); - if(isSend.equals("1")) { - cfg.setIsAudit(Constants.AUDIT_YES); - cfg.setIsValid(Constants.VALID_YES); - cfg.setAuditorId(UserUtils.getUser().getId()); - cfg.setAuditTime(date); - }else { - cfg.setIsAudit(Constants.AUDIT_NOT_YET); - cfg.setIsValid(Constants.VALID_NO); - } + cfg.setIsAudit(Constants.AUDIT_NOT_YET); + cfg.setIsValid(Constants.VALID_NO); cfg.setIsAreaEffective(0); cfg.setLable("0"); cfg.setRequestId(StringUtil.isEmpty(requestId) ? 0 : requestId); @@ -261,12 +273,14 @@ public class IpCommGroupController extends BaseController { cfg.setClassify(classify); cfg.setServiceId(serviceDict==null?null:serviceDict.getServiceId()); cfg.setTableName("ip_comm_cfg"); - ind++; + cfg.setRegionId(regionIds.get(index)); + index++; + } - ipCommGroupCfgService.saveAndSend(regionDict, serviceDict, _ipPortCfgs,isSend.equals("1")); + ipCommGroupCfgService.saveAndSend(regionDict, serviceDict, _ipPortCfgs); _ipPortCfgs.clear(); } - + } } if(errTip.toString().length()>0) { @@ -294,16 +308,4 @@ public class IpCommGroupController extends BaseController { return "redirect:" + adminPath+ importPath; } - /*@ResponseBody - @RequestMapping(value="ajaxGetGroups",method=RequestMethod.POST) - public Map ajaxGetGroups(Model model,@RequestParam(required=true,value="groupIds")String groupIds){ - Map groupIdList=new HashMap(); - if(StringUtils.isNotBlank(groupIds)) { - List list=policyGroupInfoService.findPolicyByGroupInfoList(groupIds); - for(PolicyGroupInfo p:list) { - groupIdList.put(p.getGroupId(), p.getGroupName()); - } - } - return groupIdList; - }*/ } \ No newline at end of file diff --git a/src/main/java/com/nis/web/controller/basics/ScriberIdCommGroupController.java b/src/main/java/com/nis/web/controller/basics/ScriberIdCommGroupController.java new file mode 100644 index 000000000..ed7953612 --- /dev/null +++ b/src/main/java/com/nis/web/controller/basics/ScriberIdCommGroupController.java @@ -0,0 +1,302 @@ +package com.nis.web.controller.basics; + +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.BlockingQueue; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.jets3t.service.ServiceException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +import com.beust.jcommander.internal.Lists; +import com.nis.domain.FunctionRegionDict; +import com.nis.domain.FunctionServiceDict; +import com.nis.domain.Page; +import com.nis.domain.basics.CommonGroupInfo; +import com.nis.domain.basics.ScriberIdCommCfg; +import com.nis.domain.configuration.BaseStringCfg; +import com.nis.domain.configuration.CfgIndexInfo; +import com.nis.domain.configuration.template.ScriberIdCommCfgTemplate; +import com.nis.exceptions.MaatConvertException; +import com.nis.util.ConfigServiceUtil; +import com.nis.util.Constants; +import com.nis.util.DictUtils; +import com.nis.util.StringUtil; +import com.nis.util.excel.ImportBigExcel; +import com.nis.web.controller.BaseController; +import com.nis.web.security.UserUtils; +import com.nis.web.service.basics.ScriberIdCommGroupService; + +@Controller +@RequestMapping(value = "${adminPath}/basics/scriberId") +public class ScriberIdCommGroupController extends BaseController{ + + @Autowired + private ScriberIdCommGroupService scriberIdCommGroupService; + + @RequestMapping(value = {"/list"}) + public String list(Model model, @ModelAttribute("cfg")ScriberIdCommCfg entity, HttpServletRequest request,HttpServletResponse response){ + Page page = scriberIdCommGroupService.findPage(new Page(request, response,"r"), entity); + List regionList = DictUtils.getFunctionRegionDictList(entity.getFunctionId()); + List serviceList = DictUtils.getFunctionServiceDictList(entity.getFunctionId()); + List groupInfos = commonGroupManageService.findCommonGroupInfosByType(9); + + model.addAttribute("page", page); + model.addAttribute("regionList", regionList); + model.addAttribute("serviceList", serviceList); + model.addAttribute("policyGroupInfos", groupInfos); + return "/basics/scriberidCommGroupList"; + } + + @RequestMapping(value = {"/addForm"}) + public String addForm(Model model, @ModelAttribute("cfg")CfgIndexInfo cfg, RedirectAttributes redirectAttributes, + HttpServletRequest request, HttpServletResponse response){ + initFormCondition(model,cfg); + List groupInfos=commonGroupManageService.findCommonGroupInfosByType(9); + model.addAttribute("policyGroupInfos", groupInfos); + + model.addAttribute("_cfg", cfg); + return "/basics/scriberidCommGroupFormAdd"; + } + + @RequestMapping(value = {"/save"}) + public String save(Model model, @ModelAttribute("cfg")CfgIndexInfo cfg,RedirectAttributes redirectAttributes, + HttpServletRequest request,HttpServletResponse response){ + try{ + scriberIdCommGroupService.saveCommGroupCfg(cfg); + addMessage(redirectAttributes,"success","save_success"); + }catch(Exception e){ + logger.error("信息保存失败",e); + if(e instanceof MaatConvertException) { + addMessage(redirectAttributes,"error",e.getMessage()); + }else { + addMessage(redirectAttributes,"error","save_failed"); + } + } + + return "redirect:" + adminPath +"/basics/scriberId/list?functionId="+cfg.getFunctionId(); + } + + @RequestMapping(value = {"/updateForm"}) + public String updateForm(Model model,HttpServletRequest request + ,HttpServletResponse response,String ids,@ModelAttribute("cfg")ScriberIdCommCfg cfg + ,RedirectAttributes redirectAttributes){ + cfg = scriberIdCommGroupService.get(Long.parseLong(ids)); + initUpdateFormCondition(model,cfg); + List groupInfos=commonGroupManageService.findCommonGroupInfosByType(9); + model.addAttribute("policyGroupInfos", groupInfos); + model.addAttribute("_cfg", cfg); + return "/basics/scriberidCommGroupFormUpdate"; + } + + @RequestMapping(value = {"/update"}) + public String update(Model model,HttpServletRequest request,HttpServletResponse response,@ModelAttribute("cfg")ScriberIdCommCfg cfg,RedirectAttributes redirectAttributes){ + try{ + scriberIdCommGroupService.update(cfg); + addMessage(redirectAttributes,"success","save_success"); + }catch(Exception e){ + logger.error("信息保存失败",e); + addMessage(redirectAttributes,"error","save_failed"); + } + + return "redirect:" + adminPath +"/basics/scriberId/list?functionId="+cfg.getFunctionId(); + } + + @RequestMapping(value = {"/delete"}) + public String delete(String compileIds, String ids, Integer functionId, RedirectAttributes redirectAttributes){ + try{ + scriberIdCommGroupService.delete(ids,compileIds); + addMessage(redirectAttributes,"success","delete_success"); + }catch(Exception e){ + logger.error("Delete failed",e); + if(e instanceof MaatConvertException) { + addMessage(redirectAttributes,"error",e.getMessage()); + }else { + addMessage(redirectAttributes,"error","delete_failed"); + } + } + + return "redirect:" + adminPath +"/basics/scriberId/list?functionId="+functionId; + } + + // 数据导入 + @RequestMapping(value = "import", method=RequestMethod.POST) + public String importIp(HttpServletRequest request,HttpServletResponse response,RedirectAttributes redirectAttributes, + @RequestParam("files") MultipartFile[] files, Integer serviceDictId ,Integer requestId ,String attribute ,String classify + ,String regionDictIds ,String importPath) { + logger.warn("import start..."); + long start=System.currentTimeMillis(); + ImportBigExcel ei=null; + try { + FunctionServiceDict serviceDict = DictUtils.getFunctionServiceDict(serviceDictId); + StringBuffer errTip=new StringBuffer(); + BlockingQueue> stringCfgs =null; + + for (int i = 0; i < files.length; i++) { + MultipartFile file = files[i]; + ei = new ImportBigExcel(file, 0, 1); + FunctionRegionDict regionDict = DictUtils.getFunctionRegionDict(Integer.parseInt(regionDictIds.split(",")[i])); + //加载模板 + loadTemplate(ei,regionDict, serviceDict); + //------------------------------------check format start---------------------------- + if (regionDict.getRegionType().equals(2)) { + BlockingQueue list = ei.getDataList(ScriberIdCommCfgTemplate.class ); + stringCfgs = this.checkStringCfgMulity(errTip, serviceDict, regionDict, list); + } + //删除文件 + if(ei.getUploadFile()!=null&&ei.getUploadFile().exists()) { + ei.getUploadFile().delete(); + } + //------------------------------------check format end---------------------------- + Date date = new Date(); + //String isSend = request.getParameter("isSend")==null?"":request.getParameter("isSend"); + + if (regionDict.getRegionType().equals(2)) { + List> _stringCfgs=Lists.newArrayList(Constants.MAAT_JSON_SEND_SIZE); + while(!stringCfgs.isEmpty()) { + stringCfgs.drainTo(_stringCfgs, Constants.MAAT_JSON_SEND_SIZE); + + List regionIds = Lists.newArrayList(_stringCfgs.size()); + try { + regionIds = ConfigServiceUtil.getId(3,_stringCfgs.size()); + } catch (Exception e) { + e.printStackTrace(); + logger.info("获取域ID出错"); + throw new MaatConvertException(":"+e.getMessage()); + } + + int index = 0; + for (BaseStringCfg cfg : _stringCfgs) { + cfg.setAction(serviceDict==null?null:serviceDict.getAction()); + cfg.setCfgRegionCode(regionDict.getConfigRegionCode()); + cfg.setCfgType(regionDict.getConfigRegionValue()); + cfg.setCreateTime(date); + cfg.setCreatorId(UserUtils.getUser().getId()); + //cfg.setDoLog(2); + cfg.setCompileId(0); + cfg.setFunctionId(regionDict.getFunctionId()); + cfg.setIsAudit(Constants.AUDIT_NOT_YET); + cfg.setIsValid(Constants.VALID_NO); + cfg.setIsAreaEffective(0); + cfg.setLable("0"); + cfg.setRequestId(StringUtil.isEmpty(requestId) ? 0 : requestId); + cfg.setAttribute(attribute); + cfg.setClassify(classify); + cfg.setServiceId(serviceDict==null?null:serviceDict.getServiceId()); + cfg.setTableName("scriberid_comm_cfg"); + cfg.setRegionId(regionIds.get(index)); + index++; + + } + scriberIdCommGroupService.saveAndSend(regionDict, serviceDict, _stringCfgs); + _stringCfgs.clear(); + } + + } + } + if(errTip.toString().length()>0) { + addMessage(redirectAttributes,"error", errTip.toString()); + } + } catch (Exception e) { + if(ei!=null) { + if(ei.getUploadFile().exists()) { + ei.getUploadFile().delete(); + } + } + if(e instanceof MaatConvertException) { + addMessage(redirectAttributes,"error", "request_service_failed"); + }else if(e instanceof ServiceException) { + addMessage(redirectAttributes,"error", e.getMessage()); + }else if(e instanceof IndexOutOfBoundsException){ + addMessage(redirectAttributes,"error", "template_error"); + }else { + addMessage(redirectAttributes,"error", "import_failed"); + } + logger.error("import failed", e); + } + long end=System.currentTimeMillis(); + logger.warn("import finish,cost:"+(end-start)); + return "redirect:" + adminPath+ importPath; + } + + // 数据导出 + @RequestMapping(value = "/exportGroupInfo") + public void exportGroupInfo(Model model,HttpServletRequest request,HttpServletResponse response, + @ModelAttribute("cfg")ScriberIdCommCfg entity,String ids,RedirectAttributes redirectAttributes){ + try { + List titleList=new ArrayList(); + Map> classMap=new HashMap>(); + Map dataMap=new HashMap(); + Map noExportMap=new HashMap(); + List list = new ArrayList(); + if (!StringUtil.isEmpty(ids)) { + list = scriberIdCommGroupService.findByPage(ids); + } else { + Page pageInfo=new Page(request, response,"r"); + pageInfo.setPageNo(1); + pageInfo.setPageSize(Constants.MAX_EXPORT_SIZE); + Page page = scriberIdCommGroupService.findPage(pageInfo, entity); + list=page.getList(); + } + + CommonGroupInfo groupInfo = new CommonGroupInfo(); + for (ScriberIdCommCfg cfg : list) { + groupInfo.setServiceGroupId(cfg.getGroupId()); + CommonGroupInfo commonGroupInfo = commonGroupManageService.getGroupInfo(groupInfo); + cfg.setGroupName(commonGroupInfo.getGroupName()); + + } + + titleList.add(entity.getMenuNameCode()); + classMap.put(entity.getMenuNameCode(), ScriberIdCommCfg.class); + String cfgIndexInfoNoExport=",block_type,do_log,action,letter,whether_area_block,classification,attribute,label" + + ",expression_type,userregion1,userregion2,userregion3,userregion4,userregion5,ir_type,asn_no," + + "is_hex,is_case_insenstive,cfg_id,is_audit,auditor,valid_identifier,"; + // 时间过滤 + if (entity.getSearch_create_time_start() == null ) { + cfgIndexInfoNoExport = ",config_time" + cfgIndexInfoNoExport; + } + if (entity.getSearch_edit_time_start() == null) { + cfgIndexInfoNoExport = ",edit_time" + cfgIndexInfoNoExport; + } + if (entity.getSearch_audit_time_start() == null) { + cfgIndexInfoNoExport = ",audit_time" + cfgIndexInfoNoExport; + } + if (!StringUtil.isEmpty(entity.gethColumns())) { + cfgIndexInfoNoExport = "," + entity.gethColumns() + "," + cfgIndexInfoNoExport; + } + + noExportMap.put(entity.getMenuNameCode(),cfgIndexInfoNoExport); + dataMap.put(entity.getMenuNameCode(), list); + String timeRange = initTimeMap(entity); + noExportMap.put("timeRange", timeRange); + + if ("csv".equals(entity.getExType())) { + this._exportCsv(model, request, response, redirectAttributes, entity.getMenuNameCode(), titleList, + classMap, dataMap, noExportMap); + } else { + this._export(model, request, response, redirectAttributes, entity.getMenuNameCode(), titleList, + classMap, dataMap, noExportMap); + } + + } catch (Exception e) { + logger.error("scriberidGroupConfig export failed",e); + addMessage(redirectAttributes,"error","export_failed"); + + } + + } +} \ No newline at end of file diff --git a/src/main/java/com/nis/web/controller/basics/UrlCommGroupController.java b/src/main/java/com/nis/web/controller/basics/UrlCommGroupController.java index cf8efd882..8721c225b 100644 --- a/src/main/java/com/nis/web/controller/basics/UrlCommGroupController.java +++ b/src/main/java/com/nis/web/controller/basics/UrlCommGroupController.java @@ -1,31 +1,43 @@ package com.nis.web.controller.basics; import java.util.ArrayList; +import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.concurrent.BlockingQueue; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.jets3t.service.ServiceException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.mvc.support.RedirectAttributes; +import com.beust.jcommander.internal.Lists; import com.nis.domain.FunctionRegionDict; import com.nis.domain.FunctionServiceDict; import com.nis.domain.Page; import com.nis.domain.basics.CommonGroupInfo; import com.nis.domain.basics.UrlCommCfg; +import com.nis.domain.configuration.BaseStringCfg; import com.nis.domain.configuration.CfgIndexInfo; +import com.nis.domain.configuration.template.UrlCommCfgTemplate; import com.nis.exceptions.MaatConvertException; +import com.nis.util.ConfigServiceUtil; import com.nis.util.Constants; import com.nis.util.DictUtils; import com.nis.util.StringUtil; +import com.nis.util.excel.ImportBigExcel; import com.nis.web.controller.BaseController; +import com.nis.web.security.UserUtils; import com.nis.web.service.basics.UrlCommGroupService; @Controller @@ -52,7 +64,6 @@ public class UrlCommGroupController extends BaseController{ @RequestMapping(value = {"/addForm"}) public String addForm(Model model, @ModelAttribute("cfg")CfgIndexInfo cfg, RedirectAttributes redirectAttributes, HttpServletRequest request, HttpServletResponse response){ - cfg.setGroupType(11); initFormCondition(model,cfg); List groupInfos=commonGroupManageService.findCommonGroupInfosByType(7); model.addAttribute("policyGroupInfos", groupInfos); @@ -84,7 +95,6 @@ public class UrlCommGroupController extends BaseController{ ,HttpServletResponse response,String ids,@ModelAttribute("cfg")UrlCommCfg cfg ,RedirectAttributes redirectAttributes){ cfg = urlCommGroupService.get(Long.parseLong(ids)); - cfg.setGroupType(11); initUpdateFormCondition(model,cfg); List groupInfos=commonGroupManageService.findCommonGroupInfosByType(7); model.addAttribute("policyGroupInfos", groupInfos); @@ -122,6 +132,106 @@ public class UrlCommGroupController extends BaseController{ return "redirect:" + adminPath +"/basics/url/list?functionId="+functionId; } + // 数据导入 + @RequestMapping(value = "import", method=RequestMethod.POST) + public String importIp(HttpServletRequest request,HttpServletResponse response,RedirectAttributes redirectAttributes, + @RequestParam("files") MultipartFile[] files, Integer serviceDictId ,Integer requestId ,String attribute ,String classify + ,String regionDictIds ,String importPath) { + logger.warn("import start..."); + long start=System.currentTimeMillis(); + ImportBigExcel ei=null; + try { + FunctionServiceDict serviceDict = DictUtils.getFunctionServiceDict(serviceDictId); + StringBuffer errTip=new StringBuffer(); + BlockingQueue> stringCfgs =null; + + for (int i = 0; i < files.length; i++) { + MultipartFile file = files[i]; + ei = new ImportBigExcel(file, 0, 1); + FunctionRegionDict regionDict = DictUtils.getFunctionRegionDict(Integer.parseInt(regionDictIds.split(",")[i])); + //加载模板 + loadTemplate(ei,regionDict, serviceDict); + //------------------------------------check format start---------------------------- + if (regionDict.getRegionType().equals(2)) { + BlockingQueue list = ei.getDataList(UrlCommCfgTemplate.class ); + stringCfgs = this.checkStringCfgMulity(errTip, serviceDict, regionDict, list); + } + //删除文件 + if(ei.getUploadFile()!=null&&ei.getUploadFile().exists()) { + ei.getUploadFile().delete(); + } + //------------------------------------check format end---------------------------- + Date date = new Date(); + //String isSend = request.getParameter("isSend")==null?"":request.getParameter("isSend"); + + if (regionDict.getRegionType().equals(2)) { + List> _stringCfgs=Lists.newArrayList(Constants.MAAT_JSON_SEND_SIZE); + while(!stringCfgs.isEmpty()) { + stringCfgs.drainTo(_stringCfgs, Constants.MAAT_JSON_SEND_SIZE); + + List regionIds = Lists.newArrayList(_stringCfgs.size()); + try { + regionIds = ConfigServiceUtil.getId(3,_stringCfgs.size()); + } catch (Exception e) { + e.printStackTrace(); + logger.info("获取域ID出错"); + throw new MaatConvertException(":"+e.getMessage()); + } + + int index = 0; + for (BaseStringCfg cfg : _stringCfgs) { + cfg.setAction(serviceDict==null?null:serviceDict.getAction()); + cfg.setCfgRegionCode(regionDict.getConfigRegionCode()); + cfg.setCfgType(regionDict.getConfigRegionValue()); + cfg.setCreateTime(date); + cfg.setCreatorId(UserUtils.getUser().getId()); + //cfg.setDoLog(2); + cfg.setCompileId(0); + cfg.setFunctionId(regionDict.getFunctionId()); + cfg.setIsAudit(Constants.AUDIT_NOT_YET); + cfg.setIsValid(Constants.VALID_NO); + cfg.setIsAreaEffective(0); + cfg.setLable("0"); + cfg.setRequestId(StringUtil.isEmpty(requestId) ? 0 : requestId); + cfg.setAttribute(attribute); + cfg.setClassify(classify); + cfg.setServiceId(serviceDict==null?null:serviceDict.getServiceId()); + cfg.setTableName("url_comm_cfg"); + cfg.setRegionId(regionIds.get(index)); + index++; + + } + urlCommGroupService.saveAndSend(regionDict, serviceDict, _stringCfgs); + _stringCfgs.clear(); + } + + } + } + if(errTip.toString().length()>0) { + addMessage(redirectAttributes,"error", errTip.toString()); + } + } catch (Exception e) { + if(ei!=null) { + if(ei.getUploadFile().exists()) { + ei.getUploadFile().delete(); + } + } + if(e instanceof MaatConvertException) { + addMessage(redirectAttributes,"error", "request_service_failed"); + }else if(e instanceof ServiceException) { + addMessage(redirectAttributes,"error", e.getMessage()); + }else if(e instanceof IndexOutOfBoundsException){ + addMessage(redirectAttributes,"error", "template_error"); + }else { + addMessage(redirectAttributes,"error", "import_failed"); + } + logger.error("import failed", e); + } + long end=System.currentTimeMillis(); + logger.warn("import finish,cost:"+(end-start)); + return "redirect:" + adminPath+ importPath; + } + // 数据导出 @RequestMapping(value = "/exportUrlComm") public void exportUrlComm(Model model,HttpServletRequest request,HttpServletResponse response, @@ -141,12 +251,20 @@ public class UrlCommGroupController extends BaseController{ Page page = urlCommGroupService.findPage(pageInfo, entity); list=page.getList(); } - + + CommonGroupInfo groupInfo = new CommonGroupInfo(); + for (UrlCommCfg cfg : list) { + groupInfo.setServiceGroupId(cfg.getGroupId()); + CommonGroupInfo commonGroupInfo = commonGroupManageService.getGroupInfo(groupInfo); + cfg.setGroupName(commonGroupInfo.getGroupName()); + + } + titleList.add(entity.getMenuNameCode()); classMap.put(entity.getMenuNameCode(), UrlCommCfg.class); - String cfgIndexInfoNoExport=",block_type,do_log,action" - + ",letter,whether_area_block,classification,attribute,label,expression_type,match_method" - +",userregion1,userregion2,userregion3,userregion4,userregion5,ir_type,asn_no,is_hex,is_case_insenstive,"; + String cfgIndexInfoNoExport=",block_type,do_log,action,letter,whether_area_block,classification,attribute,label" + + ",expression_type,userregion1,userregion2,userregion3,userregion4,userregion5,ir_type,asn_no," + + "is_hex,is_case_insenstive,cfg_id,is_audit,auditor,valid_identifier,"; // 时间过滤 if (entity.getSearch_create_time_start() == null ) { cfgIndexInfoNoExport = ",config_time" + cfgIndexInfoNoExport; diff --git a/src/main/java/com/nis/web/controller/configuration/ntc/IpController.java b/src/main/java/com/nis/web/controller/configuration/ntc/IpController.java index 79e470d6f..21b5736e5 100644 --- a/src/main/java/com/nis/web/controller/configuration/ntc/IpController.java +++ b/src/main/java/com/nis/web/controller/configuration/ntc/IpController.java @@ -41,6 +41,7 @@ import com.nis.domain.configuration.template.DnsComplexStringTemplate; import com.nis.domain.configuration.template.DnsFakeIpTemplate; import com.nis.domain.configuration.template.DnsIpTemplate; import com.nis.domain.configuration.template.DnsResStrategyTemplate; +import com.nis.domain.configuration.template.DomainCommCfgTemplate; import com.nis.domain.configuration.template.DomainInterceptMonitTemplate; import com.nis.domain.configuration.template.DomainInterceptRateLimitTemplate; import com.nis.domain.configuration.template.DomainInterceptTemplate; @@ -57,16 +58,19 @@ import com.nis.domain.configuration.template.InterceptDomainTemplate; import com.nis.domain.configuration.template.InterceptIpTemplate; import com.nis.domain.configuration.template.IpAllNotDoLogTemplate; import com.nis.domain.configuration.template.IpAllTemplate; +import com.nis.domain.configuration.template.IpCommCfgTemplate; import com.nis.domain.configuration.template.IpPayloadTemplate; import com.nis.domain.configuration.template.IpRateLimitTemplate; import com.nis.domain.configuration.template.IpSpoofingTemplate; import com.nis.domain.configuration.template.IpWhitelistTemplate; import com.nis.domain.configuration.template.P2pHashStringTemplate; import com.nis.domain.configuration.template.P2pIpTemplate; +import com.nis.domain.configuration.template.ScriberIdCommCfgTemplate; import com.nis.domain.configuration.template.SnatTemplate; import com.nis.domain.configuration.template.StringAllNotDoLogTemplate; import com.nis.domain.configuration.template.StringAllTemplate; import com.nis.domain.configuration.template.TopicWebsiteTemplate; +import com.nis.domain.configuration.template.UrlCommCfgTemplate; import com.nis.exceptions.MaatConvertException; import com.nis.util.Constants; import com.nis.util.DictUtils; @@ -507,6 +511,11 @@ public class IpController extends BaseController{ ExportExcel excel=new ExportExcel(serviceDict,regionDict,pro,null, IpRateLimitTemplate.class, 2); excel.setDataList(pro,classList,null). write(request,response, fileName).dispose(); + }else if(regionDict.getFunctionId().equals(605)){// IP Common Group + List classList=new ArrayList(); + ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, IpCommCfgTemplate.class, 2); + excel.setDataList(pro,classList,null). + write(request,response, fileName).dispose(); }else{ List classList=new ArrayList(); ExportExcel excel=new ExportExcel(serviceDict,regionDict,pro,null, IpAllTemplate.class, 2); @@ -591,6 +600,21 @@ public class IpController extends BaseController{ ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, TopicWebsiteTemplate.class, 2); excel.setDataList(pro,classList,null). write(request,response, fileName).dispose(); + }else if(regionDict.getFunctionId().equals(606)) {// URL Common Group + List classList=new ArrayList(); + ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, UrlCommCfgTemplate.class, 2); + excel.setDataList(pro,classList,null). + write(request,response, fileName).dispose(); + }else if(regionDict.getFunctionId().equals(607)) {// Domain Common Group + List classList=new ArrayList(); + ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, DomainCommCfgTemplate.class, 2); + excel.setDataList(pro,classList,null). + write(request,response, fileName).dispose(); + }else if(regionDict.getFunctionId().equals(608)) {// ScriberId Common Group + List classList=new ArrayList(); + ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, ScriberIdCommCfgTemplate.class, 2); + excel.setDataList(pro,classList,null). + write(request,response, fileName).dispose(); }else{ List classList=new ArrayList(); ExportExcel excel=new ExportExcel(serviceDict,regionDict,pro,null, StringAllTemplate.class, 2); diff --git a/src/main/java/com/nis/web/dao/basics/CommonGroupManageDao.java b/src/main/java/com/nis/web/dao/basics/CommonGroupManageDao.java index 21f2f7bb6..474a98086 100644 --- a/src/main/java/com/nis/web/dao/basics/CommonGroupManageDao.java +++ b/src/main/java/com/nis/web/dao/basics/CommonGroupManageDao.java @@ -19,5 +19,7 @@ public interface CommonGroupManageDao extends CrudDao { List findGroupInfoList(@Param("ids")String ids); void updateGroupStatus(@Param("serviceGroupId")String serviceGroupId, @Param("udFlag")Integer udFlag, @Param("groupType")Integer groupType); + + CommonGroupInfo getGroupInfo(CommonGroupInfo searchCfg); } \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/basics/CommonGroupManageDao.xml b/src/main/java/com/nis/web/dao/basics/CommonGroupManageDao.xml index 891c7c97a..d1352a4f5 100644 --- a/src/main/java/com/nis/web/dao/basics/CommonGroupManageDao.xml +++ b/src/main/java/com/nis/web/dao/basics/CommonGroupManageDao.xml @@ -181,4 +181,29 @@ WHERE service_group_id IN (${serviceGroupId}) AND group_type = #{groupType} + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/basics/DomainCommGroupDao.java b/src/main/java/com/nis/web/dao/basics/DomainCommGroupDao.java new file mode 100644 index 000000000..cbe12c87a --- /dev/null +++ b/src/main/java/com/nis/web/dao/basics/DomainCommGroupDao.java @@ -0,0 +1,36 @@ +package com.nis.web.dao.basics; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; + +import com.nis.domain.basics.DomainCommCfg; +import com.nis.web.dao.CrudDao; +import com.nis.web.dao.MyBatisDao; + +@MyBatisDao +public interface DomainCommGroupDao extends CrudDao{ + + // 查询列表 + public List findAllPageList(DomainCommCfg entity); + public List findByPage(@Param("ids")String ids); + + public List findInfoByCfgId(@Param("cfgId")Long cfgId); + + //新增 + public int insertCommGroupCfg(DomainCommCfg entity); + + //修改 + public int update(DomainCommCfg entity); + + //删除 + public int delete(@Param("ids")String ids); + + public List getByIds(@Param("ids")String ids); + + + public Integer getGroupIdCount(@Param("groupId")String groupId); + + // 校验分组是否被引用 + public Integer getCfgInfoByGroupIds(@Param("ids")String ids); +} diff --git a/src/main/java/com/nis/web/dao/basics/DomainCommGroupDao.xml b/src/main/java/com/nis/web/dao/basics/DomainCommGroupDao.xml new file mode 100644 index 000000000..8149cbfa9 --- /dev/null +++ b/src/main/java/com/nis/web/dao/basics/DomainCommGroupDao.xml @@ -0,0 +1,384 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + r.cfg_id,r.cfg_desc,r.cfg_keywords,r.action,r.is_valid,r.is_audit,r.creator_id, + r.create_time,r.editor_id,r.edit_time,r.auditor_id,r.audit_time,r.service_id, + r.request_id,r.compile_id,r.is_area_effective,r.classify,r.attribute,r.lable, + r.expr_type,r.match_method,r.is_hexbin,r.area_effective_ids,r.function_id, + r.cfg_region_code,r.cfg_type,r.ratelimit, r.region_id, r.group_id,r.user_region1,r.user_region2, + r.user_region3,r.user_region4,r.user_region5 + + + + + + + + + + + + + + + + + insert into domain_comm_cfg ( + CFG_DESC, + cfg_keywords, + action, + is_valid, + is_audit, + creator_id, + create_time, + editor_id, + edit_time, + auditor_id, + audit_time, + service_id, + request_id, + compile_id, + IS_AREA_EFFECTIVE, + CLASSIFY, + ATTRIBUTE, + LABLE, + expr_type, + match_method, + is_hexbin, + area_effective_ids, + function_id, + cfg_region_code, + cfg_type, + ratelimit, + region_id, + group_id, + user_region1, + user_region2, + user_region3, + user_region4, + user_region5 + )values ( + #{cfgDesc,jdbcType=VARCHAR}, + #{cfgKeywords,jdbcType=VARCHAR}, + #{action,jdbcType=INTEGER}, + #{isValid,jdbcType=INTEGER}, + #{isAudit,jdbcType=INTEGER}, + #{creatorId,jdbcType=INTEGER}, + #{createTime,jdbcType=TIMESTAMP}, + #{editorId,jdbcType=INTEGER}, + #{editTime,jdbcType=TIMESTAMP}, + #{auditorId,jdbcType=INTEGER}, + #{auditTime,jdbcType=TIMESTAMP}, + #{serviceId,jdbcType=INTEGER}, + #{requestId,jdbcType=INTEGER}, + #{compileId,jdbcType=INTEGER}, + #{isAreaEffective,jdbcType=INTEGER}, + #{classify,jdbcType=VARCHAR}, + #{attribute,jdbcType=VARCHAR}, + #{lable,jdbcType=VARCHAR}, + #{exprType,jdbcType=INTEGER}, + #{matchMethod,jdbcType=INTEGER}, + #{isHexbin,jdbcType=INTEGER}, + #{areaEffectiveIds,jdbcType=VARCHAR}, + #{functionId,jdbcType=INTEGER}, + #{cfgRegionCode,jdbcType=INTEGER}, + #{cfgType,jdbcType=VARCHAR}, + #{ratelimit,jdbcType=VARCHAR}, + #{regionId,jdbcType=INTEGER}, + #{groupId,jdbcType=INTEGER}, + #{userRegion1,jdbcType=VARCHAR}, + #{userRegion2,jdbcType=VARCHAR}, + #{userRegion3,jdbcType=VARCHAR}, + #{userRegion4,jdbcType=VARCHAR}, + #{userRegion5,jdbcType=VARCHAR} + ) + + + + update domain_comm_cfg + + + + cfg_desc = #{cfgDesc,jdbcType=VARCHAR}, + + + cfg_keywords = #{cfgKeywords,jdbcType=VARCHAR}, + + + action = #{action,jdbcType=INTEGER}, + + + is_valid = #{isValid,jdbcType=INTEGER}, + + + is_audit = #{isAudit,jdbcType=INTEGER}, + + + editor_id = #{editorId,jdbcType=INTEGER}, + + + edit_time = #{editTime,jdbcType=TIMESTAMP}, + + + AUDITOR_ID = #{auditorId,jdbcType=INTEGER}, + + + AUDIT_TIME = #{auditTime,jdbcType=TIMESTAMP}, + + + service_id = #{serviceId,jdbcType=INTEGER}, + + + request_id = #{requestId,jdbcType=INTEGER}, + + + compile_id = #{compileId,jdbcType=INTEGER}, + + + is_area_effective = #{isAreaEffective,jdbcType=INTEGER}, + + + classify = #{classify,jdbcType=VARCHAR}, + + + attribute = #{attribute,jdbcType=VARCHAR}, + + + lable = #{lable,jdbcType=VARCHAR}, + + + expr_type = #{exprType,jdbcType=INTEGER}, + + + match_method = #{matchMethod,jdbcType=INTEGER}, + + + is_hexbin = #{isHexbin,jdbcType=INTEGER}, + + + area_effective_ids = #{areaEffectiveIds,jdbcType=VARCHAR}, + + + function_id = #{functionId,jdbcType=INTEGER}, + + + cfg_type = #{cfgType,jdbcType=VARCHAR}, + + + cfg_region_code = #{cfgRegionCode,jdbcType=INTEGER}, + + + ratelimit = #{ratelimit,jdbcType=VARCHAR}, + + + group_id = #{groupId,jdbcType=INTEGER} + + + user_region2 = #{userRegion2,jdbcType=VARCHAR}, + + + user_region3 = #{userRegion3,jdbcType=VARCHAR}, + + + user_region4 = #{userRegion4,jdbcType=VARCHAR}, + + + user_region5 = #{userRegion5,jdbcType=VARCHAR}, + + + + + and cfg_id = #{cfgId,jdbcType=INTEGER} + + + + + delete from domain_comm_cfg where cfg_id in (${ids}) + + + + + + diff --git a/src/main/java/com/nis/web/dao/basics/IpCommGroupCfgDao.java b/src/main/java/com/nis/web/dao/basics/IpCommGroupCfgDao.java index fcedaefbd..da8832a19 100644 --- a/src/main/java/com/nis/web/dao/basics/IpCommGroupCfgDao.java +++ b/src/main/java/com/nis/web/dao/basics/IpCommGroupCfgDao.java @@ -27,5 +27,5 @@ public interface IpCommGroupCfgDao extends CrudDao{ public int getGroupIdCount(int groupId); // 校验分组是否被引用 - public List getCfgInfoByGroupIds(@Param("ids")String ids); + public Integer getCfgInfoByGroupIds(@Param("ids")String ids); } diff --git a/src/main/java/com/nis/web/dao/basics/IpCommGroupCfgDao.xml b/src/main/java/com/nis/web/dao/basics/IpCommGroupCfgDao.xml index c7eb7f698..4c5468766 100644 --- a/src/main/java/com/nis/web/dao/basics/IpCommGroupCfgDao.xml +++ b/src/main/java/com/nis/web/dao/basics/IpCommGroupCfgDao.xml @@ -204,9 +204,9 @@ r.cfg_id = #{ids} AND r.is_valid != -1 - SELECT - + COUNT(1) FROM ip_comm_cfg r WHERE @@ -420,9 +420,6 @@ AUDIT_TIME = #{auditTime,jdbcType=TIMESTAMP}, - - REGION_ID = #{regionId,jdbcType=TIMESTAMP}, - REQUEST_ID = #{requestId,jdbcType=INTEGER}, @@ -647,13 +644,5 @@ ${sqlMap.dsf} - - - ORDER BY ${page.orderBy} - - - ORDER BY r.CFG_ID desc - - \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/basics/ScriberIdCommGroupDao.java b/src/main/java/com/nis/web/dao/basics/ScriberIdCommGroupDao.java new file mode 100644 index 000000000..75ab0035b --- /dev/null +++ b/src/main/java/com/nis/web/dao/basics/ScriberIdCommGroupDao.java @@ -0,0 +1,36 @@ +package com.nis.web.dao.basics; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; + +import com.nis.domain.basics.ScriberIdCommCfg; +import com.nis.web.dao.CrudDao; +import com.nis.web.dao.MyBatisDao; + +@MyBatisDao +public interface ScriberIdCommGroupDao extends CrudDao{ + + // 查询列表 + public List findAllPageList(ScriberIdCommCfg entity); + public List findByPage(@Param("ids")String ids); + + public List findInfoByCfgId(@Param("cfgId")Long cfgId); + + //新增 + public int insertCommGroupCfg(ScriberIdCommCfg entity); + + //修改 + public int update(ScriberIdCommCfg entity); + + //删除 + public int delete(@Param("ids")String ids); + + public List getByIds(@Param("ids")String ids); + + + public Integer getGroupIdCount(@Param("groupId")String groupId); + + // 校验分组是否被引用 + public Integer getCfgInfoByGroupIds(@Param("ids")String ids); +} diff --git a/src/main/java/com/nis/web/dao/basics/ScriberIdCommGroupDao.xml b/src/main/java/com/nis/web/dao/basics/ScriberIdCommGroupDao.xml new file mode 100644 index 000000000..3f5dffddd --- /dev/null +++ b/src/main/java/com/nis/web/dao/basics/ScriberIdCommGroupDao.xml @@ -0,0 +1,384 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + r.cfg_id,r.cfg_desc,r.cfg_keywords,r.action,r.is_valid,r.is_audit,r.creator_id, + r.create_time,r.editor_id,r.edit_time,r.auditor_id,r.audit_time,r.service_id, + r.request_id,r.compile_id,r.is_area_effective,r.classify,r.attribute,r.lable, + r.expr_type,r.match_method,r.is_hexbin,r.area_effective_ids,r.function_id, + r.cfg_region_code,r.cfg_type,r.ratelimit, r.region_id, r.group_id,r.user_region1,r.user_region2, + r.user_region3,r.user_region4,r.user_region5 + + + + + + + + + + + + + + + + + insert into scriberid_comm_cfg ( + CFG_DESC, + cfg_keywords, + action, + is_valid, + is_audit, + creator_id, + create_time, + editor_id, + edit_time, + auditor_id, + audit_time, + service_id, + request_id, + compile_id, + IS_AREA_EFFECTIVE, + CLASSIFY, + ATTRIBUTE, + LABLE, + expr_type, + match_method, + is_hexbin, + area_effective_ids, + function_id, + cfg_region_code, + cfg_type, + ratelimit, + region_id, + group_id, + user_region1, + user_region2, + user_region3, + user_region4, + user_region5 + )values ( + #{cfgDesc,jdbcType=VARCHAR}, + #{cfgKeywords,jdbcType=VARCHAR}, + #{action,jdbcType=INTEGER}, + #{isValid,jdbcType=INTEGER}, + #{isAudit,jdbcType=INTEGER}, + #{creatorId,jdbcType=INTEGER}, + #{createTime,jdbcType=TIMESTAMP}, + #{editorId,jdbcType=INTEGER}, + #{editTime,jdbcType=TIMESTAMP}, + #{auditorId,jdbcType=INTEGER}, + #{auditTime,jdbcType=TIMESTAMP}, + #{serviceId,jdbcType=INTEGER}, + #{requestId,jdbcType=INTEGER}, + #{compileId,jdbcType=INTEGER}, + #{isAreaEffective,jdbcType=INTEGER}, + #{classify,jdbcType=VARCHAR}, + #{attribute,jdbcType=VARCHAR}, + #{lable,jdbcType=VARCHAR}, + #{exprType,jdbcType=INTEGER}, + #{matchMethod,jdbcType=INTEGER}, + #{isHexbin,jdbcType=INTEGER}, + #{areaEffectiveIds,jdbcType=VARCHAR}, + #{functionId,jdbcType=INTEGER}, + #{cfgRegionCode,jdbcType=INTEGER}, + #{cfgType,jdbcType=VARCHAR}, + #{ratelimit,jdbcType=VARCHAR}, + #{regionId,jdbcType=INTEGER}, + #{groupId,jdbcType=INTEGER}, + #{userRegion1,jdbcType=VARCHAR}, + #{userRegion2,jdbcType=VARCHAR}, + #{userRegion3,jdbcType=VARCHAR}, + #{userRegion4,jdbcType=VARCHAR}, + #{userRegion5,jdbcType=VARCHAR} + ) + + + + update scriberid_comm_cfg + + + + cfg_desc = #{cfgDesc,jdbcType=VARCHAR}, + + + cfg_keywords = #{cfgKeywords,jdbcType=VARCHAR}, + + + action = #{action,jdbcType=INTEGER}, + + + is_valid = #{isValid,jdbcType=INTEGER}, + + + is_audit = #{isAudit,jdbcType=INTEGER}, + + + editor_id = #{editorId,jdbcType=INTEGER}, + + + edit_time = #{editTime,jdbcType=TIMESTAMP}, + + + AUDITOR_ID = #{auditorId,jdbcType=INTEGER}, + + + AUDIT_TIME = #{auditTime,jdbcType=TIMESTAMP}, + + + service_id = #{serviceId,jdbcType=INTEGER}, + + + request_id = #{requestId,jdbcType=INTEGER}, + + + compile_id = #{compileId,jdbcType=INTEGER}, + + + is_area_effective = #{isAreaEffective,jdbcType=INTEGER}, + + + classify = #{classify,jdbcType=VARCHAR}, + + + attribute = #{attribute,jdbcType=VARCHAR}, + + + lable = #{lable,jdbcType=VARCHAR}, + + + expr_type = #{exprType,jdbcType=INTEGER}, + + + match_method = #{matchMethod,jdbcType=INTEGER}, + + + is_hexbin = #{isHexbin,jdbcType=INTEGER}, + + + area_effective_ids = #{areaEffectiveIds,jdbcType=VARCHAR}, + + + function_id = #{functionId,jdbcType=INTEGER}, + + + cfg_type = #{cfgType,jdbcType=VARCHAR}, + + + cfg_region_code = #{cfgRegionCode,jdbcType=INTEGER}, + + + ratelimit = #{ratelimit,jdbcType=VARCHAR}, + + + group_id = #{groupId,jdbcType=INTEGER} + + + user_region2 = #{userRegion2,jdbcType=VARCHAR}, + + + user_region3 = #{userRegion3,jdbcType=VARCHAR}, + + + user_region4 = #{userRegion4,jdbcType=VARCHAR}, + + + user_region5 = #{userRegion5,jdbcType=VARCHAR}, + + + + + and cfg_id = #{cfgId,jdbcType=INTEGER} + + + + + delete from scriberid_comm_cfg where cfg_id in (${ids}) + + + + + + diff --git a/src/main/java/com/nis/web/dao/basics/UrlCommGroupDao.java b/src/main/java/com/nis/web/dao/basics/UrlCommGroupDao.java index 01cbda88b..8a3ecc05d 100644 --- a/src/main/java/com/nis/web/dao/basics/UrlCommGroupDao.java +++ b/src/main/java/com/nis/web/dao/basics/UrlCommGroupDao.java @@ -36,5 +36,5 @@ public interface UrlCommGroupDao extends CrudDao{ public Integer getGroupIdCount(@Param("groupId")String groupId); // 校验分组是否被引用 - public List getCfgInfoByGroupIds(@Param("ids")String ids); + public Integer getCfgInfoByGroupIds(@Param("ids")String ids); } diff --git a/src/main/java/com/nis/web/dao/basics/UrlCommGroupDao.xml b/src/main/java/com/nis/web/dao/basics/UrlCommGroupDao.xml index 137d9528d..f1e95fcf3 100644 --- a/src/main/java/com/nis/web/dao/basics/UrlCommGroupDao.xml +++ b/src/main/java/com/nis/web/dao/basics/UrlCommGroupDao.xml @@ -186,9 +186,9 @@ r.cfg_id = #{ids} AND r.is_valid != -1 - SELECT - + COUNT(1) FROM url_comm_cfg r WHERE diff --git a/src/main/java/com/nis/web/service/basics/CommonGroupManageService.java b/src/main/java/com/nis/web/service/basics/CommonGroupManageService.java index 4213ec3a3..74e35555f 100644 --- a/src/main/java/com/nis/web/service/basics/CommonGroupManageService.java +++ b/src/main/java/com/nis/web/service/basics/CommonGroupManageService.java @@ -1,5 +1,9 @@ package com.nis.web.service.basics; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; import java.util.Date; import java.util.HashMap; import java.util.HashSet; @@ -7,20 +11,27 @@ import java.util.List; import java.util.Map; import java.util.Set; -import com.nis.domain.basics.PolicyGroupInfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.nis.domain.Page; import com.nis.domain.basics.CommonGroupInfo; +import com.nis.domain.basics.DomainCommCfg; import com.nis.domain.basics.IpCommCfg; +import com.nis.domain.basics.PolicyGroupInfo; +import com.nis.domain.basics.ProtectionListInfo; +import com.nis.domain.basics.ScriberIdCommCfg; import com.nis.domain.basics.UrlCommCfg; import com.nis.exceptions.MaatConvertException; +import com.nis.util.CacheUtils; import com.nis.util.ConfigServiceUtil; +import com.nis.util.Constants; import com.nis.util.StringUtil; import com.nis.web.dao.basics.CommonGroupManageDao; +import com.nis.web.dao.basics.DomainCommGroupDao; import com.nis.web.dao.basics.IpCommGroupCfgDao; +import com.nis.web.dao.basics.ScriberIdCommGroupDao; import com.nis.web.dao.basics.UrlCommGroupDao; import com.nis.web.security.UserUtils; import com.nis.web.service.BaseService; @@ -33,9 +44,12 @@ public class CommonGroupManageService extends BaseService{ @Autowired private IpCommGroupCfgDao ipCommGroupCfgDao; // 校验分组时使用 - @Autowired private UrlCommGroupDao urlCommGroupDao; + @Autowired + private DomainCommGroupDao domainCommGroupDao; + @Autowired + private ScriberIdCommGroupDao scriberIdCommGroupDao; public Page findCommonGroupInfoList(Page page, CommonGroupInfo entity) { entity.getSqlMap().put("dsf", configScopeFilter(entity.getCurrentUser(),"r")); @@ -68,7 +82,7 @@ public class CommonGroupManageService extends BaseService{ } entity.setServiceGroupId(serviceGroupId); commonGroupManageDao.insert(entity); - + this.updatePolicyGroupDict(entity.getGroupType()+""); }else{ // 修改 Date editTime=new Date(); entity.setEditorId(UserUtils.getUser().getId()); @@ -80,7 +94,7 @@ public class CommonGroupManageService extends BaseService{ } @Transactional(readOnly=false,rollbackFor=RuntimeException.class) - public void deldete(String ids, int isValid){ + public void deldete(String ids, int isValid, String groupTypes){ CommonGroupInfo entity=new CommonGroupInfo(); Date editTime=new Date(); entity.setEditorId(UserUtils.getUser().getId()); @@ -121,29 +135,72 @@ public class CommonGroupManageService extends BaseService{ for(PolicyGroupInfo info:policyGroupInfos){ boolean update=false; Integer udFlag = 0; + Integer size = 0; if(groupType == 5) { // IP - List list = ipCommGroupCfgDao.getCfgInfoByGroupIds(info.getServiceGroupId().toString()); - if(list.size() > 0&&info.getUdFlag().equals(0)) { - update=true; - udFlag = 1; // 可用 - }else if(list.size()==0&&info.getUdFlag().equals(2)){ - update=true; - } + size = ipCommGroupCfgDao.getCfgInfoByGroupIds(info.getServiceGroupId().toString()); }else if(groupType == 7) { // URL - List list = urlCommGroupDao.getCfgInfoByGroupIds(info.getServiceGroupId().toString()); - if(list.size() > 0&&info.getUdFlag().equals(0)) { - update=true; - udFlag = 1; - }else if(list.size()==0&&info.getUdFlag().equals(2)){ - update=true; - } + size = urlCommGroupDao.getCfgInfoByGroupIds(info.getServiceGroupId().toString()); + }else if(groupType == 8) { // Domain + size = domainCommGroupDao.getCfgInfoByGroupIds(info.getServiceGroupId().toString()); + }else if(groupType == 9) { // ScriberId + size = scriberIdCommGroupDao.getCfgInfoByGroupIds(info.getServiceGroupId().toString()); + } + + if(size > 0 && info.getUdFlag().equals(0)) { + update=true; + udFlag = 1; + }else if(size == 0 && !info.getUdFlag().equals(2)){ + update=true; } if(update){ commonGroupManageDao.updateGroupStatus(info.getServiceGroupId().toString(), udFlag, groupType); } + } + } + + public CommonGroupInfo getGroupInfo(CommonGroupInfo searchCfg) { + return commonGroupManageDao.getGroupInfo(searchCfg); + } + + /** + * 更新字典缓存 + * @return + */ + private void updatePolicyGroupDict(String groupTypes) { + String dictKey = Constants.CACHE_IPGROUP_DICT; + if(groupTypes.contains(",")) { + String[] split = groupTypes.split(","); + List asList = Arrays.asList(split); + HashSet strings = new HashSet<>(asList); + for (String str : strings) { + Integer groupType = Integer.valueOf(str); + if(groupType.equals(7)) { + dictKey = Constants.CACHE_URLGROUP_DICT; + }else if(groupType.equals(8)) { + dictKey = Constants.CACHE_DOMAINGROUP_DICT; + }else if(groupType.equals(9)) { + dictKey = Constants.CACHE_SCRIBERGROUP_DICT; + } + List groupInfo = findCommonGroupInfosByType(groupType); + CacheUtils.put(dictKey, groupInfo); + } + + }else { + Integer groupType = Integer.valueOf(groupTypes); + if(groupType.equals(7)) { + dictKey = Constants.CACHE_URLGROUP_DICT; + }else if(groupType.equals(8)) { + dictKey = Constants.CACHE_DOMAINGROUP_DICT; + }else if(groupType.equals(9)) { + dictKey = Constants.CACHE_SCRIBERGROUP_DICT; + } + List groupInfo = findCommonGroupInfosByType(groupType); + CacheUtils.put(dictKey, groupInfo); + + } } - + } diff --git a/src/main/java/com/nis/web/service/basics/DomainCommGroupService.java b/src/main/java/com/nis/web/service/basics/DomainCommGroupService.java new file mode 100644 index 000000000..52d7b8f0b --- /dev/null +++ b/src/main/java/com/nis/web/service/basics/DomainCommGroupService.java @@ -0,0 +1,180 @@ +package com.nis.web.service.basics; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import org.apache.ibatis.session.ExecutorType; +import org.apache.ibatis.session.SqlSession; +import org.apache.ibatis.session.SqlSessionFactory; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import com.nis.domain.FunctionRegionDict; +import com.nis.domain.FunctionServiceDict; +import com.nis.domain.Page; +import com.nis.domain.basics.DomainCommCfg; +import com.nis.domain.basics.PolicyGroupInfo; +import com.nis.domain.configuration.BaseStringCfg; +import com.nis.domain.configuration.CfgIndexInfo; +import com.nis.exceptions.MaatConvertException; +import com.nis.util.ConfigServiceUtil; +import com.nis.util.Constants; +import com.nis.web.dao.CrudDao; +import com.nis.web.dao.basics.DomainCommGroupDao; +import com.nis.web.dao.basics.PolicyGroupInfoDao; +import com.nis.web.service.CrudService; +import com.nis.web.service.SpringContextHolder; + +@Service +public class DomainCommGroupService extends CrudService, DomainCommCfg>{ + + @Autowired + private DomainCommGroupDao domainCommGroupDao; + + @Autowired + private PolicyGroupInfoDao policyGroupInfoDao; + + private CommonGroupManageService groupManageService = SpringContextHolder.getBean(CommonGroupManageService.class); + + public Page findPage(Page page, DomainCommCfg entity) { + entity.getSqlMap().put("dsf", configScopeFilter(entity.getCurrentUser(),"r")); + entity.setPage(page); + List list=domainCommGroupDao.findAllPageList(entity); + for (int i = 0; i < list.size(); i++) { + String key=list.get(i).getCfgKeywords().replace("***and***", " "); + list.get(i).setCfgKeywords(key); + } + page.setList(list); + return page; + } + + public List findByPage(String ids) { + List list=domainCommGroupDao.findByPage(ids); + return list; + } + + public DomainCommCfg get(Long id ) { + return domainCommGroupDao.get(id); + } + + // 新增 + @Transactional(readOnly=false,rollbackFor=RuntimeException.class) + public void saveCommGroupCfg(CfgIndexInfo entity) { + Date createTime=new Date(); + if(entity.getDomainCommGroupList()!=null) { + List policyGroupInfos=policyGroupInfoDao.findPolicyByServiceGroupInfoList(entity.getGroupId().toString()); + for (int i = 0; i < entity.getDomainCommGroupList().size(); i++) { + BeanUtils.copyProperties(entity, entity.getDomainCommGroupList().get(i), new String[]{"cfgId"}); + Integer regionId = 0; + List regionIds = ConfigServiceUtil.getId(3, 1); + if(regionIds!=null && regionIds.size()>0){ + regionId = regionIds.get(0); + }else { + throw new MaatConvertException("Get region id failed"); + } + entity.getDomainCommGroupList().get(i).setRegionId(regionId); + entity.getDomainCommGroupList().get(i).setRequestId(0); + entity.getDomainCommGroupList().get(i).setClassify("0"); + entity.getDomainCommGroupList().get(i).setAttribute("0"); + entity.getDomainCommGroupList().get(i).setLable("0"); + entity.getDomainCommGroupList().get(i).setIsHexbin(2); + entity.getDomainCommGroupList().get(i).setCreateTime(createTime); + entity.getDomainCommGroupList().get(i).setCreatorId(entity.getCurrentUser().getId()); + entity.getDomainCommGroupList().get(i).setIsValid(Constants.VALID_NO); + entity.getDomainCommGroupList().get(i).setIsAudit(Constants.AUDIT_NOT_YET); + if(entity.getDomainCommGroupList().get(i).getCfgKeywords().contains("***and***")){ + entity.getDomainCommGroupList().get(i).setExprType(1); + }else{ + entity.getDomainCommGroupList().get(i).setExprType(0); + } + entity.getDomainCommGroupList().get(i).setGroupId(entity.getGroupId()); + + domainCommGroupDao.insertCommGroupCfg(entity.getDomainCommGroupList().get(i)); + } + // 更新分组状态 + groupManageService.updateGroupStatus(policyGroupInfos, 8); + //TODO 组配置更新时 需检索是否被其它配置引用,若被引用需调用相应服务接口更新配置 + //transObjGroupToMaat(policyGroupInfos); + } + } + + @Transactional(readOnly=false,rollbackFor=RuntimeException.class) + public void update(DomainCommCfg entity){ + Date editTime=new Date(); + entity.setIsValid(0); + entity.setIsAudit(0); + entity.setEditTime(editTime); + entity.setEditorId(entity.getCurrentUser().getId()); + if(entity.getCfgKeywords().contains("***and***")){ + entity.setExprType(1); + }else{ + entity.setExprType(0); + } + domainCommGroupDao.update(entity); + + // 更新分组状态 + if(!entity.getUserRegion1().equals(entity.getGroupId().toString())) { + List policyGroupInfos = new ArrayList(); + policyGroupInfos.addAll(policyGroupInfoDao.findPolicyByServiceGroupInfoList(entity.getUserRegion1())); + policyGroupInfos.addAll(policyGroupInfoDao.findPolicyByServiceGroupInfoList(entity.getGroupId().toString())); + groupManageService.updateGroupStatus(policyGroupInfos, 8); + } + } + + + @Transactional(readOnly=false,rollbackFor=RuntimeException.class) + public void delete(String ids, String groupIds) { + List policyGroupInfos=policyGroupInfoDao.findPolicyByServiceGroupInfoList(groupIds); + domainCommGroupDao.delete(ids); + // 更新分组状态 + groupManageService.updateGroupStatus(policyGroupInfos, 8); + } + + public List getByIds(String ids) { + if(ids==null) { + throw new RuntimeException("ids is null!"); + } + return domainCommGroupDao.getByIds(ids); + } + + @Transactional(readOnly=false,rollbackFor=RuntimeException.class) + public void saveAndSend(FunctionRegionDict regionDict, FunctionServiceDict serviceDict, List> cfgs) { + logger.warn("Start to save Domain,size:"+cfgs.size()); + long start=System.currentTimeMillis(); + SqlSessionFactory sqlSessionFactory=SpringContextHolder.getBean(SqlSessionFactory.class); + SqlSession batchSqlSession = null; + // 需要通过新增域接口新增的ip集合 + try{ + String ids = ""; + batchSqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false); + for(BaseStringCfg cfg:cfgs) { + if(!ids.contains(cfg.getGroupId()+"")) { + ids += ","+cfg.getGroupId(); + } + DomainCommCfg DomainCommCfg=new DomainCommCfg(); + BeanUtils.copyProperties(cfg, DomainCommCfg); + ((DomainCommGroupDao) batchSqlSession.getMapper(DomainCommGroupDao.class)).insertCommGroupCfg(DomainCommCfg); + } + batchSqlSession.commit(); + + // 更新分组状态 + String serviceGroupIds = ids.substring(1); + List policyGroupInfos = policyGroupInfoDao.findPolicyByServiceGroupInfoList(serviceGroupIds); + groupManageService.updateGroupStatus(policyGroupInfos, 8); + + }finally { + if(batchSqlSession != null){ + batchSqlSession.close(); + } + + } + long end=System.currentTimeMillis(); + logger.warn("Save Domain finish,cost:"+(end-start)); + cfgs.clear(); + cfgs=null; + } + +} diff --git a/src/main/java/com/nis/web/service/basics/IpCommGroupCfgService.java b/src/main/java/com/nis/web/service/basics/IpCommGroupCfgService.java index 4fbad4cfa..5ad6295e3 100644 --- a/src/main/java/com/nis/web/service/basics/IpCommGroupCfgService.java +++ b/src/main/java/com/nis/web/service/basics/IpCommGroupCfgService.java @@ -73,12 +73,14 @@ public class IpCommGroupCfgService extends BaseService { } @Transactional(readOnly=false,rollbackFor=RuntimeException.class) public void update(IpCommCfg entity){ - List policyGroupInfosOld=policyGroupInfoDao.findPolicyByServiceGroupInfoList(entity.getUserRegion1()); - List policyGroupInfosNew=policyGroupInfoDao.findPolicyByServiceGroupInfoList(entity.getGroupId().toString()); ipCommGroupCfgDao.update(entity); // 更新分组状态 - groupManageService.updateGroupStatus(policyGroupInfosOld, 5); // old - groupManageService.updateGroupStatus(policyGroupInfosNew, 5); // new + if(!entity.getUserRegion1().equals(entity.getGroupId().toString())) { + List policyGroupInfos = new ArrayList(); + policyGroupInfos.addAll(policyGroupInfoDao.findPolicyByServiceGroupInfoList(entity.getUserRegion1())); + policyGroupInfos.addAll(policyGroupInfoDao.findPolicyByServiceGroupInfoList(entity.getGroupId().toString())); + groupManageService.updateGroupStatus(policyGroupInfos, 5); + } } @@ -138,45 +140,36 @@ public class IpCommGroupCfgService extends BaseService { } @Transactional(readOnly=false,rollbackFor=RuntimeException.class) - public void saveAndSend(FunctionRegionDict regionDict, FunctionServiceDict serviceDict, List cfgs,boolean send) { + public void saveAndSend(FunctionRegionDict regionDict, FunctionServiceDict serviceDict, List cfgs) { logger.warn("Start to save IP,size:"+cfgs.size()); long start=System.currentTimeMillis(); SqlSessionFactory sqlSessionFactory=SpringContextHolder.getBean(SqlSessionFactory.class); SqlSession batchSqlSession = null; //需要通过新增域接口新增的ip集合 - Map groupCount=Maps.newHashMap(); - List ipCommCfgs=new ArrayList(cfgs.size()); try{ + String ids = ""; batchSqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false); - for(BaseIpCfg cfg:cfgs) { + if(!ids.contains(cfg.getGroupId()+"")) { + ids += ","+cfg.getGroupId(); + } IpCommCfg ipCommCfg=new IpCommCfg(); BeanUtils.copyProperties(cfg, ipCommCfg); - ipCommCfgs.add(ipCommCfg); ((IpCommGroupCfgDao) batchSqlSession.getMapper(IpCommGroupCfgDao.class)).insertForBatch(ipCommCfg); -// if(send) { -// if(groupCount.containsKey(ipCommCfg.getGroupId())) { -// groupCount.put(ipCommCfg.getGroupId(), groupCount.get(ipCommCfg.getGroupId())+1); -// }else { -// groupCount.put(ipCommCfg.getGroupId(), 1); -// } -// } } -// if(send) { -// if(groupCount.size()>0) { -// for(Entry groupId:groupCount.entrySet()) { -// policyGroupInfoDao.updateUdFlag(groupId.getKey(), 1,5); -// } -// -// this.send2Maat(ipCommCfgs, Constants.VALID_YES); -// } -// } batchSqlSession.commit(); + + // 更新分组状态 + String serviceGroupIds = ids.substring(1); + List policyGroupInfos = policyGroupInfoDao.findPolicyByServiceGroupInfoList(serviceGroupIds); + groupManageService.updateGroupStatus(policyGroupInfos, 5); + }finally { if(batchSqlSession != null){ batchSqlSession.close(); } + } long end=System.currentTimeMillis(); logger.warn("Save IP finish,cost:"+(end-start)); diff --git a/src/main/java/com/nis/web/service/basics/ScriberIdCommGroupService.java b/src/main/java/com/nis/web/service/basics/ScriberIdCommGroupService.java new file mode 100644 index 000000000..3ec07eef4 --- /dev/null +++ b/src/main/java/com/nis/web/service/basics/ScriberIdCommGroupService.java @@ -0,0 +1,182 @@ +package com.nis.web.service.basics; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import org.apache.ibatis.session.ExecutorType; +import org.apache.ibatis.session.SqlSession; +import org.apache.ibatis.session.SqlSessionFactory; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import com.nis.domain.FunctionRegionDict; +import com.nis.domain.FunctionServiceDict; +import com.nis.domain.Page; +import com.nis.domain.basics.PolicyGroupInfo; +import com.nis.domain.basics.ScriberIdCommCfg; +import com.nis.domain.configuration.BaseStringCfg; +import com.nis.domain.configuration.CfgIndexInfo; +import com.nis.exceptions.MaatConvertException; +import com.nis.util.ConfigServiceUtil; +import com.nis.util.Constants; +import com.nis.web.dao.CrudDao; +import com.nis.web.dao.basics.PolicyGroupInfoDao; +import com.nis.web.dao.basics.ScriberIdCommGroupDao; +import com.nis.web.service.CrudService; +import com.nis.web.service.SpringContextHolder; + +@Service +public class ScriberIdCommGroupService extends CrudService, ScriberIdCommCfg>{ + + @Autowired + private ScriberIdCommGroupDao scriberIdCommGroupDao; + + @Autowired + private PolicyGroupInfoDao policyGroupInfoDao; + + private CommonGroupManageService groupManageService = SpringContextHolder.getBean(CommonGroupManageService.class); + + public Page findPage(Page page, ScriberIdCommCfg entity) { + entity.getSqlMap().put("dsf", configScopeFilter(entity.getCurrentUser(),"r")); + entity.setPage(page); + List list=scriberIdCommGroupDao.findAllPageList(entity); + for (int i = 0; i < list.size(); i++) { + String key=list.get(i).getCfgKeywords().replace("***and***", " "); + list.get(i).setCfgKeywords(key); + } + page.setList(list); + return page; + } + + public List findByPage(String ids) { + List list=scriberIdCommGroupDao.findByPage(ids); + return list; + } + + public ScriberIdCommCfg get(Long id ) { + return scriberIdCommGroupDao.get(id); + } + + // 新增 + @Transactional(readOnly=false,rollbackFor=RuntimeException.class) + public void saveCommGroupCfg(CfgIndexInfo entity) { + Date createTime=new Date(); + if(entity.getScriberIdCommGroupList()!=null) { + List policyGroupInfos=policyGroupInfoDao.findPolicyByServiceGroupInfoList(entity.getGroupId().toString()); + for (int i = 0; i < entity.getScriberIdCommGroupList().size(); i++) { + BeanUtils.copyProperties(entity, entity.getScriberIdCommGroupList().get(i), new String[]{"cfgId"}); + Integer regionId = 0; + List regionIds = ConfigServiceUtil.getId(3, 1); + if(regionIds!=null && regionIds.size()>0){ + regionId = regionIds.get(0); + }else { + throw new MaatConvertException("Get region id failed"); + } + entity.getScriberIdCommGroupList().get(i).setRegionId(regionId); + entity.getScriberIdCommGroupList().get(i).setRequestId(0); + entity.getScriberIdCommGroupList().get(i).setClassify("0"); + entity.getScriberIdCommGroupList().get(i).setAttribute("0"); + entity.getScriberIdCommGroupList().get(i).setLable("0"); + entity.getScriberIdCommGroupList().get(i).setIsHexbin(2); + entity.getScriberIdCommGroupList().get(i).setCreateTime(createTime); + entity.getScriberIdCommGroupList().get(i).setCreatorId(entity.getCurrentUser().getId()); + entity.getScriberIdCommGroupList().get(i).setIsValid(Constants.VALID_NO); + entity.getScriberIdCommGroupList().get(i).setIsAudit(Constants.AUDIT_NOT_YET); + if(entity.getScriberIdCommGroupList().get(i).getCfgKeywords().contains("***and***")){ + entity.getScriberIdCommGroupList().get(i).setExprType(1); + }else{ + entity.getScriberIdCommGroupList().get(i).setExprType(0); + } + entity.getScriberIdCommGroupList().get(i).setGroupId(entity.getGroupId()); + + scriberIdCommGroupDao.insertCommGroupCfg(entity.getScriberIdCommGroupList().get(i)); + } + // 更新分组状态 + groupManageService.updateGroupStatus(policyGroupInfos, 9); + //TODO 组配置更新时 需检索是否被其它配置引用,若被引用需调用相应服务接口更新配置 + //transObjGroupToMaat(policyGroupInfos); + + } + } + + @Transactional(readOnly=false,rollbackFor=RuntimeException.class) + public void update(ScriberIdCommCfg entity){ + Date editTime=new Date(); + entity.setIsValid(0); + entity.setIsAudit(0); + entity.setEditTime(editTime); + entity.setEditorId(entity.getCurrentUser().getId()); + if(entity.getCfgKeywords().contains("***and***")){ + entity.setExprType(1); + }else{ + entity.setExprType(0); + } + scriberIdCommGroupDao.update(entity); + + // 更新分组状态 + if(!entity.getUserRegion1().equals(entity.getGroupId().toString())) { + List policyGroupInfos = new ArrayList(); + policyGroupInfos.addAll(policyGroupInfoDao.findPolicyByServiceGroupInfoList(entity.getUserRegion1())); + policyGroupInfos.addAll(policyGroupInfoDao.findPolicyByServiceGroupInfoList(entity.getGroupId().toString())); + groupManageService.updateGroupStatus(policyGroupInfos, 9); + } + + } + + + @Transactional(readOnly=false,rollbackFor=RuntimeException.class) + public void delete(String ids, String groupIds) { + List policyGroupInfos=policyGroupInfoDao.findPolicyByServiceGroupInfoList(groupIds); + scriberIdCommGroupDao.delete(ids); + // 更新分组状态 + groupManageService.updateGroupStatus(policyGroupInfos, 9); + } + + public List getByIds(String ids) { + if(ids==null) { + throw new RuntimeException("ids is null!"); + } + return scriberIdCommGroupDao.getByIds(ids); + } + + @Transactional(readOnly=false,rollbackFor=RuntimeException.class) + public void saveAndSend(FunctionRegionDict regionDict, FunctionServiceDict serviceDict, List> cfgs) { + logger.warn("Start to save ScriberId,size:"+cfgs.size()); + long start=System.currentTimeMillis(); + SqlSessionFactory sqlSessionFactory=SpringContextHolder.getBean(SqlSessionFactory.class); + SqlSession batchSqlSession = null; + // 需要通过新增域接口新增的ip集合 + try{ + String ids = ""; + batchSqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false); + for(BaseStringCfg cfg:cfgs) { + if(!ids.contains(cfg.getGroupId()+"")) { + ids += ","+cfg.getGroupId(); + } + ScriberIdCommCfg commCfg=new ScriberIdCommCfg(); + BeanUtils.copyProperties(cfg, commCfg); + ((ScriberIdCommGroupDao) batchSqlSession.getMapper(ScriberIdCommGroupDao.class)).insertCommGroupCfg(commCfg); + } + batchSqlSession.commit(); + + // 更新分组状态 + String serviceGroupIds = ids.substring(1); + List policyGroupInfos = policyGroupInfoDao.findPolicyByServiceGroupInfoList(serviceGroupIds); + groupManageService.updateGroupStatus(policyGroupInfos, 9); + + }finally { + if(batchSqlSession != null){ + batchSqlSession.close(); + } + + } + long end=System.currentTimeMillis(); + logger.warn("Save ScriberId finish,cost:"+(end-start)); + cfgs.clear(); + cfgs=null; + } + +} diff --git a/src/main/java/com/nis/web/service/basics/UrlCommGroupService.java b/src/main/java/com/nis/web/service/basics/UrlCommGroupService.java index 2ebcac49f..b271e8a93 100644 --- a/src/main/java/com/nis/web/service/basics/UrlCommGroupService.java +++ b/src/main/java/com/nis/web/service/basics/UrlCommGroupService.java @@ -1,17 +1,25 @@ package com.nis.web.service.basics; +import java.util.ArrayList; import java.util.Date; import java.util.List; import com.nis.domain.basics.PolicyGroupInfo; import com.nis.web.dao.basics.PolicyGroupInfoDao; + +import org.apache.ibatis.session.ExecutorType; +import org.apache.ibatis.session.SqlSession; +import org.apache.ibatis.session.SqlSessionFactory; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import com.nis.domain.FunctionRegionDict; +import com.nis.domain.FunctionServiceDict; import com.nis.domain.Page; import com.nis.domain.basics.UrlCommCfg; +import com.nis.domain.configuration.BaseStringCfg; import com.nis.domain.configuration.CfgIndexInfo; import com.nis.exceptions.MaatConvertException; import com.nis.util.ConfigServiceUtil; @@ -55,8 +63,8 @@ public class UrlCommGroupService extends CrudService, UrlCom @Transactional(readOnly=false,rollbackFor=RuntimeException.class) public void saveUrlCommGroupCfg(CfgIndexInfo entity) { Date createTime=new Date(); - List policyGroupInfos=policyGroupInfoDao.findPolicyByServiceGroupInfoList(entity.getGroupId().toString()); if(entity.getUrlCommGroupList()!=null) { + List policyGroupInfos=policyGroupInfoDao.findPolicyByServiceGroupInfoList(entity.getGroupId().toString()); for (int i = 0; i < entity.getUrlCommGroupList().size(); i++) { BeanUtils.copyProperties(entity, entity.getUrlCommGroupList().get(i), new String[]{"cfgId"}); Integer regionId = 0; @@ -104,11 +112,14 @@ public class UrlCommGroupService extends CrudService, UrlCom entity.setExprType(0); } urlCommGroupDao.update(entity); - List policyGroupInfosOld=policyGroupInfoDao.findPolicyByServiceGroupInfoList(entity.getUserRegion1()); - List policyGroupInfosNew=policyGroupInfoDao.findPolicyByServiceGroupInfoList(entity.getGroupId().toString()); + // 更新分组状态 - groupManageService.updateGroupStatus(policyGroupInfosOld, 7); // old - groupManageService.updateGroupStatus(policyGroupInfosNew, 7); // new + if(!entity.getUserRegion1().equals(entity.getGroupId().toString())) { + List policyGroupInfos = new ArrayList(); + policyGroupInfos.addAll(policyGroupInfoDao.findPolicyByServiceGroupInfoList(entity.getUserRegion1())); + policyGroupInfos.addAll(policyGroupInfoDao.findPolicyByServiceGroupInfoList(entity.getGroupId().toString())); + groupManageService.updateGroupStatus(policyGroupInfos, 7); + } } @@ -126,26 +137,42 @@ public class UrlCommGroupService extends CrudService, UrlCom } return urlCommGroupDao.getByIds(ids); } - - /*@Transactional(readOnly=false,rollbackFor=RuntimeException.class) - public void audit(UrlCommCfg urlGroupCfg,Integer isAudit,Integer isValid) { - - if(!StringUtil.isEmpty(urlGroupCfg)){ - urlGroupCfg.setIsValid(isValid); - urlGroupCfg.setIsAudit(isAudit); - urlGroupCfg.setAuditorId(UserUtils.getUser().getId()); - urlGroupCfg.setAuditTime(new Date()); - - urlCommGroupDao.update(urlGroupCfg); + + @Transactional(readOnly=false,rollbackFor=RuntimeException.class) + public void saveAndSend(FunctionRegionDict regionDict, FunctionServiceDict serviceDict, List> cfgs) { + logger.warn("Start to save URL,size:"+cfgs.size()); + long start=System.currentTimeMillis(); + SqlSessionFactory sqlSessionFactory=SpringContextHolder.getBean(SqlSessionFactory.class); + SqlSession batchSqlSession = null; + // 需要通过新增域接口新增的ip集合 + try{ + String ids = ""; + batchSqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false); + for(BaseStringCfg cfg:cfgs) { + if(!ids.contains(cfg.getGroupId()+"")) { + ids += ","+cfg.getGroupId(); + } + UrlCommCfg urlCommCfg=new UrlCommCfg(); + BeanUtils.copyProperties(cfg, urlCommCfg); + ((UrlCommGroupDao) batchSqlSession.getMapper(UrlCommGroupDao.class)).insertUrlCommGroupCfg(urlCommCfg); + } + batchSqlSession.commit(); + + // 更新分组状态 + String serviceGroupIds = ids.substring(1); + List policyGroupInfos = policyGroupInfoDao.findPolicyByServiceGroupInfoList(serviceGroupIds); + groupManageService.updateGroupStatus(policyGroupInfos, 7); + + }finally { + if(batchSqlSession != null){ + batchSqlSession.close(); + } + } - //下发配置时改变公共组udFlag标识 - //查询有效的url配置个数 - Integer groupCount=urlCommGroupDao.getGroupIdCount(urlGroupCfg.getUserRegion3()); - if(groupCount>0){//udFlag 设置为1 - urlCommGroupDao.updateUrlUdFlag(Integer.parseInt(urlGroupCfg.getUserRegion3()), 1); - }else{//udFlag 设置为0 - urlCommGroupDao.updateUrlUdFlag(Integer.parseInt(urlGroupCfg.getUserRegion3()), 0); - } - }*/ - + long end=System.currentTimeMillis(); + logger.warn("Save URL finish,cost:"+(end-start)); + cfgs.clear(); + cfgs=null; + } + } diff --git a/src/main/resources/messages/message_en.properties b/src/main/resources/messages/message_en.properties index 86daddc5e..d695f6893 100644 --- a/src/main/resources/messages/message_en.properties +++ b/src/main/resources/messages/message_en.properties @@ -1627,4 +1627,11 @@ ssl_cert_verify=SSL Cert Verify stream_trace_id=Stream Trace ID ssl_error=SSL Error import_built_cert_file=Import built-in certificate -built_in=built-in \ No newline at end of file +built_in=built-in +#---------------------------Object List Group Manage------------------------------------ +ip_group_configuration=IP Group Configuration +domain_group_configuration=Domain Group Configuration +scriberid_group_configuration=ScriberId Group Configuration +common_group_manage=Common Group Manage +can_not_delete_issued_group=Can not delete issued group +#---------------------------Object List Group Manage------------------------------------ \ No newline at end of file diff --git a/src/main/resources/messages/message_ru.properties b/src/main/resources/messages/message_ru.properties index c0d1b44a1..2f7f87345 100644 --- a/src/main/resources/messages/message_ru.properties +++ b/src/main/resources/messages/message_ru.properties @@ -1629,4 +1629,11 @@ ssl_cert_verify=SSL Cert Verify stream_trace_id=Stream Trace ID ssl_error=SSL Error import_built_cert_file=Import built-in certificate -built_in=built-in \ No newline at end of file +built_in=built-in +#---------------------------Object List Group Manage------------------------------------ +ip_group_configuration=IP Group Configuration +domain_group_configuration=Domain Group Configuration +scriberid_group_configuration=ScriberId Group Configuration +common_group_manage=Common Group Manage +can_not_delete_issued_group=Can not delete issued group +#---------------------------Object List Group Manage------------------------------------ \ No newline at end of file diff --git a/src/main/resources/messages/message_zh_CN.properties b/src/main/resources/messages/message_zh_CN.properties index 5514789c9..fb875e50a 100644 --- a/src/main/resources/messages/message_zh_CN.properties +++ b/src/main/resources/messages/message_zh_CN.properties @@ -1627,4 +1627,11 @@ ssl_cert_verify=\u8bc1\u4e66\u6821\u9a8c\u7ed3\u679c stream_trace_id=\u6d41\u7684\u8ffd\u8e2aID ssl_error=SSL\u9519\u8bef\u4fe1\u606f import_built_cert_file=\u5BFC\u5165\u5185\u7F6E\u8BC1\u4E66 -built_in=\u5185\u7F6E\u8BC1\u4E66 \ No newline at end of file +built_in=\u5185\u7F6E\u8BC1\u4E66 +#---------------------------Object List Group Manage------------------------------------ +ip_group_configuration=IP \u5206\u7ec4\u914d\u7f6e +domain_group_configuration=\u57DF\u540D\u5206\u7ec4\u914d\u7f6e +scriberid_group_configuration=\u8D26\u53F7\u5206\u7ec4\u914d\u7f6e +common_group_manage=\u516C\u5171\u5206\u7EC4\u7BA1\u7406 +can_not_delete_issued_group=\u4E0D\u80FD\u5220\u9664\u5DF2\u7ECF\u88AB\u5F15\u7528\u7684\u5206\u7EC4 +#---------------------------Object List Group Manage------------------------------------ \ No newline at end of file diff --git a/src/main/resources/sql/20190603/add_tables.sql b/src/main/resources/sql/20190610/common_group_add_tables.sql similarity index 50% rename from src/main/resources/sql/20190603/add_tables.sql rename to src/main/resources/sql/20190610/common_group_add_tables.sql index 8015d2eda..8bf7e5890 100644 --- a/src/main/resources/sql/20190603/add_tables.sql +++ b/src/main/resources/sql/20190610/common_group_add_tables.sql @@ -85,3 +85,83 @@ CREATE TABLE `url_comm_cfg` ( KEY `http_url_cfg_compileId` (`compile_id`), KEY `http_url_cfg_functionId` (`function_id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC; + +CREATE TABLE `domain_comm_cfg` ( + `cfg_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键,自增', + `cfg_desc` varchar(128) DEFAULT NULL, + `cfg_keywords` varchar(2048) NOT NULL, + `action` int(11) NOT NULL COMMENT '1:阻断,2:监测, 5: FD 白名单,6:监测白名单,7: FD 监测都白名单,应与业务ID所代表的逻辑相匹配,8-灰名单', + `is_valid` int(11) NOT NULL COMMENT '0无效,1有效,-1删除;1) 未审核时配置可删除;2) 审核通过,此字段置1;3) 取消审核通过,此字段置0', + `is_audit` int(11) NOT NULL COMMENT '0未审核,1审核通过,2审核未通过,3取消审核通过;1) 审核未通过,配置可修改;2) 审核通过,配置不可删除,只能取消审核通过', + `creator_id` int(11) NOT NULL COMMENT '取自sys_user.id', + `create_time` datetime NOT NULL, + `editor_id` int(11) DEFAULT NULL COMMENT '取自sys_user.id', + `edit_time` datetime DEFAULT NULL, + `auditor_id` int(11) DEFAULT NULL COMMENT '取自sys_user.id', + `audit_time` datetime DEFAULT NULL, + `service_id` int(11) NOT NULL COMMENT '参考系统业务类型管理表', + `request_id` int(11) NOT NULL COMMENT '取自request_info.id', + `compile_id` int(11) NOT NULL COMMENT '取自服务接口返回的maat配置的编译id,配置初始入库时获取。', + `is_area_effective` int(11) NOT NULL COMMENT '0否,1是', + `classify` varchar(128) DEFAULT NULL COMMENT '分类id,多个用英文逗号分隔', + `attribute` varchar(128) DEFAULT NULL COMMENT '性质id,多个用英文逗号分隔', + `lable` varchar(128) DEFAULT NULL COMMENT '标签id,多个用英文逗号分隔', + `expr_type` int(11) NOT NULL COMMENT '0:无表达式,1:与表达式', + `match_method` int(11) NOT NULL COMMENT 'expr_type:0时有意义,其它情况必须置0。0:子串匹配;1:右匹配;2:左匹配;3:完全匹配', + `is_hexbin` int(11) NOT NULL COMMENT '默认为0:大小写不敏感,且非HEX;1:HEX格式二进制;2:大小写敏感,且非HEX', + `area_effective_ids` varchar(1024) DEFAULT NULL COMMENT '多个英文逗号分隔', + `function_id` int(11) NOT NULL, + `cfg_region_code` int(11) DEFAULT NULL, + `cfg_type` varchar(64) DEFAULT NULL, + `ratelimit` varchar(10) DEFAULT NULL COMMENT '限速比例,0到1之间', + `region_id` int(11) NOT NULL, + `group_id` int(11) NOT NULL, + `user_region1` varchar(1024) DEFAULT NULL COMMENT '预留自定义域1', + `user_region2` varchar(1024) DEFAULT NULL COMMENT '预留自定义域2', + `user_region3` varchar(1024) DEFAULT NULL COMMENT '预留自定义域3', + `user_region4` varchar(1024) DEFAULT NULL COMMENT '预留自定义域4', + `user_region5` varchar(1024) DEFAULT NULL COMMENT '预留自定义域5', + PRIMARY KEY (`cfg_id`) USING BTREE, + KEY `http_url_cfg_compileId` (`compile_id`), + KEY `http_url_cfg_functionId` (`function_id`) +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC; + +CREATE TABLE `scriberid_comm_cfg` ( + `cfg_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键,自增', + `cfg_desc` varchar(128) DEFAULT NULL, + `cfg_keywords` varchar(2048) NOT NULL, + `action` int(11) NOT NULL COMMENT '1:阻断,2:监测, 5: FD 白名单,6:监测白名单,7: FD 监测都白名单,应与业务ID所代表的逻辑相匹配,8-灰名单', + `is_valid` int(11) NOT NULL COMMENT '0无效,1有效,-1删除;1) 未审核时配置可删除;2) 审核通过,此字段置1;3) 取消审核通过,此字段置0', + `is_audit` int(11) NOT NULL COMMENT '0未审核,1审核通过,2审核未通过,3取消审核通过;1) 审核未通过,配置可修改;2) 审核通过,配置不可删除,只能取消审核通过', + `creator_id` int(11) NOT NULL COMMENT '取自sys_user.id', + `create_time` datetime NOT NULL, + `editor_id` int(11) DEFAULT NULL COMMENT '取自sys_user.id', + `edit_time` datetime DEFAULT NULL, + `auditor_id` int(11) DEFAULT NULL COMMENT '取自sys_user.id', + `audit_time` datetime DEFAULT NULL, + `service_id` int(11) NOT NULL COMMENT '参考系统业务类型管理表', + `request_id` int(11) NOT NULL COMMENT '取自request_info.id', + `compile_id` int(11) NOT NULL COMMENT '取自服务接口返回的maat配置的编译id,配置初始入库时获取。', + `is_area_effective` int(11) NOT NULL COMMENT '0否,1是', + `classify` varchar(128) DEFAULT NULL COMMENT '分类id,多个用英文逗号分隔', + `attribute` varchar(128) DEFAULT NULL COMMENT '性质id,多个用英文逗号分隔', + `lable` varchar(128) DEFAULT NULL COMMENT '标签id,多个用英文逗号分隔', + `expr_type` int(11) NOT NULL COMMENT '0:无表达式,1:与表达式', + `match_method` int(11) NOT NULL COMMENT 'expr_type:0时有意义,其它情况必须置0。0:子串匹配;1:右匹配;2:左匹配;3:完全匹配', + `is_hexbin` int(11) NOT NULL COMMENT '默认为0:大小写不敏感,且非HEX;1:HEX格式二进制;2:大小写敏感,且非HEX', + `area_effective_ids` varchar(1024) DEFAULT NULL COMMENT '多个英文逗号分隔', + `function_id` int(11) NOT NULL, + `cfg_region_code` int(11) DEFAULT NULL, + `cfg_type` varchar(64) DEFAULT NULL, + `ratelimit` varchar(10) DEFAULT NULL COMMENT '限速比例,0到1之间', + `region_id` int(11) NOT NULL, + `group_id` int(11) NOT NULL, + `user_region1` varchar(1024) DEFAULT NULL COMMENT '预留自定义域1', + `user_region2` varchar(1024) DEFAULT NULL COMMENT '预留自定义域2', + `user_region3` varchar(1024) DEFAULT NULL COMMENT '预留自定义域3', + `user_region4` varchar(1024) DEFAULT NULL COMMENT '预留自定义域4', + `user_region5` varchar(1024) DEFAULT NULL COMMENT '预留自定义域5', + PRIMARY KEY (`cfg_id`) USING BTREE, + KEY `http_url_cfg_compileId` (`compile_id`), + KEY `http_url_cfg_functionId` (`function_id`) +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC; diff --git a/src/main/resources/sql/20190603/object_list_group.sql b/src/main/resources/sql/20190610/common_group_save_cfg.sql similarity index 60% rename from src/main/resources/sql/20190603/object_list_group.sql rename to src/main/resources/sql/20190610/common_group_save_cfg.sql index bcab02e3b..a4f5e6afc 100644 --- a/src/main/resources/sql/20190603/object_list_group.sql +++ b/src/main/resources/sql/20190610/common_group_save_cfg.sql @@ -1,20 +1,21 @@ # 菜单 INSERT INTO `sys_menu` (`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 ('717', '0,1,86,717,', 'ip_group_configuration', 'IP公共组管理', '340', '/basics/ip/list', '', '', '1', 'ip:common:config', '1', '2019-05-27 14:06:23', '1', '2019-05-27 14:37:33', '', '1', NULL, '0', '0', '605'); -INSERT INTO `sys_menu` (`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 ('750', '0,1,150,750,', 'ip_group_configuration', 'IP公共组管理', '490', '/basics/ip/list', '', '', '1', 'ip:common:confirm', '1', '2019-05-27 14:08:56', '1', '2019-05-27 14:37:53', '', '1', NULL, '0', '0', '605'); -INSERT INTO `sys_menu` (`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 ('865', '0,1,151,865,', 'ip_group_configuration', 'IP公共组管理', '490', '/basics/ip/list', '', '', '1', 'ip:common:audit', '1', '2019-05-27 14:09:45', '1', '2019-05-27 14:38:11', '', '1', NULL, '0', '0', '605'); - INSERT INTO `sys_menu` (`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 ('717', '0,1,86,717,', 'url_group_configuration', 'URL公共组管理', '350', '/basics/url/list', '', '', '1', 'url:common:config', '1', '2019-05-27 15:54:43', '1', '2019-05-27 15:55:05', '', '1', NULL, '0', '0', '606'); -INSERT INTO `sys_menu` (`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 ('750', '0,1,150,750,', 'ip_group_configuration', 'URL公共组管理', '500', '/basics/url/list', '', '', '1', 'url:common:confirm', '1', '2019-05-27 15:55:58', '1', '2019-05-27 15:55:58', '', '1', NULL, '0', '0', '606'); -INSERT INTO `sys_menu` (`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 ('865', '0,1,151,865,', 'url_group_configuration', 'URL公共组管理', '500', '/basics/url/list', '', '', '1', 'url:common:audit', '1', '2019-05-27 15:56:47', '1', '2019-05-27 15:56:47', '', '1', NULL, '0', '0', '606'); +INSERT INTO `sys_menu` (`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 ('717', '0,1,86,717,', 'domain_group_configuration', '域名公共组管理', '360', '/basics/domain/list', '', '', '1', 'domain:common:config', '1', '2019-06-06 15:18:43', '1', '2019-06-06 15:18:43', '', '1', NULL, '0', '0', '607'); +INSERT INTO `sys_menu` (`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 ('717', '0,1,86,717,', 'scriberid_group_configuration', '账号公共组管理', '370', '/basics/scriberId/list', '', '', '1', 'scriberid:common:config', '1', '2019-06-06 15:20:51', '1', '2019-06-06 15:20:51', '', '1', NULL, '0', '0', '608'); INSERT INTO `sys_menu` (`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 ('109', '0,1,109,', 'common_group_manage', '公共组管理', '5090', '/basics/commonGroup/list', '', 'fa fa-object-ungroup', '1', '', '1', '2019-05-27 16:15:23', '1', '2019-05-28 15:28:59', '', '1', NULL, '0', '0', NULL); # 配置 INSERT INTO `function_region_dict` (`function_id`, `config_district`, `config_region_code`, `config_region_value`, `config_desc`, `is_valid`, `is_maat`, `region_type`, `creator_id`, `create_time`, `editor_id`, `edit_time`, `config_service_type`, `config_expr_type`, `config_match_method`, `config_ip_type`, `config_hex`, `config_multi_keywords`, `config_ip_pattern`, `config_port_pattern`, `config_direction`, `config_protocol`, `config_ip_port_show`, `config_region_sort`, `is_import`) VALUES ('605', '', '1', 'IP_COMMON_GROUP', 'IP公共组管理', '1', '1', '1', NULL, '2019-05-27 14:50:16', NULL, NULL, '', '', '', '4,6', '', '', '1,2,3;1,2,3', '1,2;1,2', '0,1', '0,6,17', '1,2,3,4', '1', '1'); INSERT INTO `function_region_dict` (`function_id`, `config_district`, `config_region_code`, `config_region_value`, `config_desc`, `is_valid`, `is_maat`, `region_type`, `creator_id`, `create_time`, `editor_id`, `edit_time`, `config_service_type`, `config_expr_type`, `config_match_method`, `config_ip_type`, `config_hex`, `config_multi_keywords`, `config_ip_pattern`, `config_port_pattern`, `config_direction`, `config_protocol`, `config_ip_port_show`, `config_region_sort`, `is_import`) VALUES ('606', '', '2', 'URL_COMMON_GROUP', 'URL公共组管理', '1', '1', '2', NULL, '2019-05-27 16:00:39', NULL, NULL, '', '0,1', '0,1,2,3', '', '0', '1', NULL, NULL, NULL, NULL, NULL, '1', '1'); +INSERT INTO `function_region_dict`(`function_id`, `config_district`, `config_region_code`, `config_region_value`, `config_desc`, `is_valid`, `is_maat`, `region_type`, `creator_id`, `create_time`, `editor_id`, `edit_time`, `config_service_type`, `config_expr_type`, `config_match_method`, `config_ip_type`, `config_hex`, `config_multi_keywords`, `config_ip_pattern`, `config_port_pattern`, `config_direction`, `config_protocol`, `config_ip_port_show`, `config_region_sort`, `is_import`) VALUES ('607', '', '1', 'DOMAIN_COMMON_GROUP', '域名公共组管理', '1', '1', '2', NULL, '2019-06-06 14:43:53', NULL, NULL, '', '0', '1,3', '', '2', '0', NULL, NULL, NULL, NULL, NULL, '1', '1'); +INSERT INTO `function_region_dict` (`function_id`, `config_district`, `config_region_code`, `config_region_value`, `config_desc`, `is_valid`, `is_maat`, `region_type`, `creator_id`, `create_time`, `editor_id`, `edit_time`, `config_service_type`, `config_expr_type`, `config_match_method`, `config_ip_type`, `config_hex`, `config_multi_keywords`, `config_ip_pattern`, `config_port_pattern`, `config_direction`, `config_protocol`, `config_ip_port_show`, `config_region_sort`, `is_import`) VALUES ('608', '', '1', 'SCRIBERID_COMMON_GROUP', '账号公共组管理', '1', '1', '2', NULL, '2019-06-06 15:32:02', NULL, NULL, '', '0', '3', '', '0', '0', NULL, NULL, NULL, NULL, NULL, '1', '1'); -INSERT INTO `function_service_dict` (`function_id`, `protocol_id`, `action`, `action_code`, `service_id`, `service_name`, `service_desc`, `is_valid`, `creator_id`, `create_time`, `editor_id`, `edit_time`, `region_code`, `is_import`, `sort`, `config_do_log`) VALUES ('605', '0', '1', 'monit', '0', 'ip_common_group', NULL, '1', '1', '2019-05-27 14:47:47', NULL, NULL, '1', '1', '0', '0;2;2'); +INSERT INTO `function_service_dict` (`function_id`, `protocol_id`, `action`, `action_code`, `service_id`, `service_name`, `service_desc`, `is_valid`, `creator_id`, `create_time`, `editor_id`, `edit_time`, `region_code`, `is_import`, `sort`, `config_do_log`) VALUES ('605', '0', '1', 'monit', '0', 'ip_common_group', NULL, '1', '1', '2019-05-27 14:47:47', NULL, NULL, '1', '1', '0', NULL); INSERT INTO `function_service_dict` (`function_id`, `protocol_id`, `action`, `action_code`, `service_id`, `service_name`, `service_desc`, `is_valid`, `creator_id`, `create_time`, `editor_id`, `edit_time`, `region_code`, `is_import`, `sort`, `config_do_log`) VALUES ('606', '0', '1', 'monit', '0', 'url_common_group', NULL, '1', '1', '2019-05-27 15:59:43', NULL, NULL, '2', '1', '0', NULL); +INSERT INTO `function_service_dict` (`function_id`, `protocol_id`, `action`, `action_code`, `service_id`, `service_name`, `service_desc`, `is_valid`, `creator_id`, `create_time`, `editor_id`, `edit_time`, `region_code`, `is_import`, `sort`, `config_do_log`) VALUES ('607', '0', '1', 'monit', '0', 'domain_common_group', '', '1', NULL, '2019-06-06 15:24:56', NULL, NULL, '2', '1', '0', NULL); +INSERT INTO `function_service_dict` (`function_id`, `protocol_id`, `action`, `action_code`, `service_id`, `service_name`, `service_desc`, `is_valid`, `creator_id`, `create_time`, `editor_id`, `edit_time`, `region_code`, `is_import`, `sort`, `config_do_log`) VALUES ('608', '0', '1', 'monit', '0', 'scriberid_common_group', NULL, '1', NULL, '2019-06-06 15:24:52', NULL, NULL, '2', '1', '0', NULL); # 字典 @@ -36,8 +37,27 @@ VALUES '1', '1', (SELECT id FROM sys_data_dictionary_name WHERE mark = 'GROUP_TYPE') + ), + ( + '8', + 'DOMAIN GROUP', + '普通域名组', + '0', + '1', + '1', + (SELECT id FROM sys_data_dictionary_name WHERE mark = 'GROUP_TYPE') + ), + ( + '9', + 'SCRIBERID GROUP', + '普通账号组', + '0', + '1', + '1', + (SELECT id FROM sys_data_dictionary_name WHERE mark = 'GROUP_TYPE') ); + # 修改表字段注释 ALTER TABLE policy_group_info MODIFY COLUMN group_type INT(2) DEFAULT NULL COMMENT '1:dns 2:ip复用, 4:asn, 5:IP通用组, 7:URL通用组, 8:Domain通用组, 9:SubscribeId通用组', MODIFY COLUMN ud_flag INT(2) NOT NULL DEFAULT 0 COMMENT '0:不可用,1:未被引用(可用),2:已被引用(可用)|默认0'; diff --git a/src/main/resources/sql/truncate_tables.sql b/src/main/resources/sql/truncate_tables.sql index 0929f4eb0..8d9434d4c 100644 --- a/src/main/resources/sql/truncate_tables.sql +++ b/src/main/resources/sql/truncate_tables.sql @@ -86,6 +86,10 @@ DELETE FROM PXY_PROFILE_INSERT_SCRIPTS; DELETE FROM PXY_PROFILE_HIJACK_FILES; DELETE FROM PXY_PROFILE_TRAFFIC_MIRROR; DELETE FROM PXY_PROFILE_RESPONSE_PAGES; +DELETE FROM ip_comm_cfg; +DELETE FROM url_comm_cfg; +DELETE FROM domain_comm_cfg; +DELETE FROM scriberid_comm_cfg; DELETE FROM schedule_cfg; DELETE FROM schedule_exce_log; DELETE FROM schedule_exce_new; diff --git a/src/main/webapp/WEB-INF/include/excel/importModal.jsp b/src/main/webapp/WEB-INF/include/excel/importModal.jsp index 8ad3de3ce..8e100fc76 100644 --- a/src/main/webapp/WEB-INF/include/excel/importModal.jsp +++ b/src/main/webapp/WEB-INF/include/excel/importModal.jsp @@ -173,11 +173,11 @@ + (cfg.functionId eq 560) || (cfg.functionId eq 605) || (cfg.functionId eq 606) || (cfg.functionId eq 607) || (cfg.functionId eq 608) }">