From 606b8a755043ec5e74932281495148903b19a1fe Mon Sep 17 00:00:00 2001 From: zhangwei Date: Thu, 29 Nov 2018 15:04:03 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=A2=9E=E5=8A=A0app=20ip=E7=89=B9?= =?UTF-8?q?=E5=BE=81=EF=BC=88=E5=88=86=E7=BB=84=E5=A4=8D=E7=94=A8=EF=BC=89?= =?UTF-8?q?=E7=9A=84=E6=89=B9=E9=87=8F=E6=8F=90=E4=BA=A4=E5=A4=84=E7=90=86?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ConfigSynchronizationDao.java | 1 + .../ConfigSynchronizationDao.xml | 31 +++- .../ConfigSynchronizationService.java | 161 +++++++++++++++--- src/main/resources/service/service_config.xml | 3 + 4 files changed, 168 insertions(+), 28 deletions(-) diff --git a/src/main/java/com/nis/web/dao/configuration/ConfigSynchronizationDao.java b/src/main/java/com/nis/web/dao/configuration/ConfigSynchronizationDao.java index e8f1301b2..1d39c6b20 100644 --- a/src/main/java/com/nis/web/dao/configuration/ConfigSynchronizationDao.java +++ b/src/main/java/com/nis/web/dao/configuration/ConfigSynchronizationDao.java @@ -89,4 +89,5 @@ public interface ConfigSynchronizationDao { public List getStrListByService(BaseCfg entity); public List getComplexStrListByService(BaseCfg entity); public List getAppIpPortList(@Param("tableName")String tableName,@Param("compileIds")List compileIds); + public List getAppIpFeatureList(BaseCfg entity); } diff --git a/src/main/java/com/nis/web/dao/configuration/ConfigSynchronizationDao.xml b/src/main/java/com/nis/web/dao/configuration/ConfigSynchronizationDao.xml index 8d5abd9d9..fe765303a 100644 --- a/src/main/java/com/nis/web/dao/configuration/ConfigSynchronizationDao.xml +++ b/src/main/java/com/nis/web/dao/configuration/ConfigSynchronizationDao.xml @@ -1278,7 +1278,7 @@ a.area_effective_ids,a.function_id,a.do_log,a.user_region1,a.user_region2, a.user_region3,a.user_region4,a.user_region5, - + a.domain as cfg_keywords, @@ -1341,6 +1341,35 @@ ORDER BY a.CFG_ID + From f06e596cdaa9c0a3e0a7c3c618d329cdd0af697a Mon Sep 17 00:00:00 2001 From: zhangwq Date: Thu, 29 Nov 2018 15:49:47 +0800 Subject: [PATCH 2/2] =?UTF-8?q?1.=E5=9C=B0=E5=9D=80=E6=B1=A0=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=A2=9E=E5=8A=A0=20=E5=88=A0=E9=99=A4=E9=99=90?= =?UTF-8?q?=E5=88=B6=20=202.=E7=AD=96=E7=95=A5=E5=88=86=E7=BB=84=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=8E=BB=E6=8E=89SNAT/DNAT=20IP=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../maintenance/IpAddrPoolController.java | 22 +++++++++++++++++++ .../nis/web/dao/basics/PolicyGroupInfoDao.xml | 4 ++++ .../nis/web/dao/configuration/IpCfgDao.java | 3 +++ .../nis/web/dao/configuration/IpCfgDao.xml | 11 ++++++++++ .../service/configuration/IpCfgService.java | 9 ++++++++ .../resources/messages/message_en.properties | 3 ++- .../resources/messages/message_ru.properties | 3 ++- .../messages/message_zh_CN.properties | 3 ++- .../sql/20181129/add_ip_reuse_addr_pool.sql | 4 ++-- src/main/webapp/WEB-INF/tags/sys/delRow.tag | 22 +++++++++++++++++++ .../WEB-INF/views/basics/policyGroupForm.jsp | 4 +++- .../WEB-INF/views/basics/policyGroupList.jsp | 16 ++++++++------ .../maintenance/ipMultiplexPool/snatlist2.jsp | 2 +- 13 files changed, 92 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/nis/web/controller/configuration/maintenance/IpAddrPoolController.java b/src/main/java/com/nis/web/controller/configuration/maintenance/IpAddrPoolController.java index 3d76f6f8e..80cc4fc1a 100644 --- a/src/main/java/com/nis/web/controller/configuration/maintenance/IpAddrPoolController.java +++ b/src/main/java/com/nis/web/controller/configuration/maintenance/IpAddrPoolController.java @@ -1,6 +1,7 @@ package com.nis.web.controller.configuration.maintenance; import java.util.Date; +import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -16,6 +17,7 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes; import com.nis.domain.Page; import com.nis.domain.basics.PolicyGroupInfo; +import com.nis.domain.configuration.BaseIpCfg; import com.nis.domain.configuration.IpAddrPoolCfg; import com.nis.domain.configuration.IpMultiplexPoolCfg; import com.nis.exceptions.MaatConvertException; @@ -160,4 +162,24 @@ public class IpAddrPoolController extends BaseController{ } return true; } + + /** + * 校验地址池是否被策略引用 + * @param addrPoolIds + * @param request + * @param response + * @return + */ + @ResponseBody + @RequestMapping(value = {"/ajaxIsUsed"}) + public boolean ajaxIsUsed(String addrPoolIds, HttpServletRequest request, HttpServletResponse response){ + for (String addrPoolId : addrPoolIds.split(",")) { + List ipList = ipCfgService.checkAddrPoolIsUsed(addrPoolId); + if(ipList != null && ipList.size() > 0){ + return false; + } + } + return true; + + } } diff --git a/src/main/java/com/nis/web/dao/basics/PolicyGroupInfoDao.xml b/src/main/java/com/nis/web/dao/basics/PolicyGroupInfoDao.xml index 055946bec..145a2306d 100644 --- a/src/main/java/com/nis/web/dao/basics/PolicyGroupInfoDao.xml +++ b/src/main/java/com/nis/web/dao/basics/PolicyGroupInfoDao.xml @@ -42,6 +42,10 @@ AND r.group_type =#{groupType } + + AND r.group_type != 2 + AND r.group_type != 3 + AND r.asn_no =#{asnNo } diff --git a/src/main/java/com/nis/web/dao/configuration/IpCfgDao.java b/src/main/java/com/nis/web/dao/configuration/IpCfgDao.java index 26f16d559..b59e89366 100644 --- a/src/main/java/com/nis/web/dao/configuration/IpCfgDao.java +++ b/src/main/java/com/nis/web/dao/configuration/IpCfgDao.java @@ -47,4 +47,7 @@ public interface IpCfgDao extends CrudDao{ public void auditCfg(BaseCfg entity); public List getIpCfgList(CfgIndexInfo entity); + // 校验地址池是否被策略引用 + public List checkAddrPoolIsUsed(@Param("addrPoolId")String addrPoolId); + } diff --git a/src/main/java/com/nis/web/dao/configuration/IpCfgDao.xml b/src/main/java/com/nis/web/dao/configuration/IpCfgDao.xml index 87a0e4629..059e2252a 100644 --- a/src/main/java/com/nis/web/dao/configuration/IpCfgDao.xml +++ b/src/main/java/com/nis/web/dao/configuration/IpCfgDao.xml @@ -1142,4 +1142,15 @@ + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/service/configuration/IpCfgService.java b/src/main/java/com/nis/web/service/configuration/IpCfgService.java index e06fe9407..6c5386843 100644 --- a/src/main/java/com/nis/web/service/configuration/IpCfgService.java +++ b/src/main/java/com/nis/web/service/configuration/IpCfgService.java @@ -931,4 +931,13 @@ public class IpCfgService extends CrudService { page.setList(list); return page; } + + /** + * 校验地址池是否被策略引用 + * @param addrPoolId + * @return + */ + public List checkAddrPoolIsUsed(String addrPoolId) { + return ipCfgDao.checkAddrPoolIsUsed(addrPoolId); + } } diff --git a/src/main/resources/messages/message_en.properties b/src/main/resources/messages/message_en.properties index a7330c301..470b26175 100644 --- a/src/main/resources/messages/message_en.properties +++ b/src/main/resources/messages/message_en.properties @@ -1335,4 +1335,5 @@ address_pool=Address Pool ip_total=IP Total available_ip_total=Available IP Total address_pool_id=Address Pool ID -log_to_cfg=Config \ No newline at end of file +log_to_cfg=Config +address_pool_is_used=Address pool is used and cannot perform this operation! \ 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 0171d8d72..03de2c4cb 100644 --- a/src/main/resources/messages/message_ru.properties +++ b/src/main/resources/messages/message_ru.properties @@ -1335,4 +1335,5 @@ address_pool=Address Pool ip_total=IP Total available_ip_total=Available IP Total address_pool_id=Address Pool ID -log_to_cfg=\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F \ No newline at end of file +log_to_cfg=\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F +address_pool_is_used=Address pool is used and cannot perform this operation! \ 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 aeb8ca8b2..b8e9adb95 100644 --- a/src/main/resources/messages/message_zh_CN.properties +++ b/src/main/resources/messages/message_zh_CN.properties @@ -1333,4 +1333,5 @@ address_pool=\u5730\u5740\u6C60 ip_total=IP\u603B\u6570 available_ip_total=\u53EF\u7528IP\u6570 address_pool_id=\u5730\u5740\u6C60ID -log_to_cfg=\u914D\u7F6E \ No newline at end of file +log_to_cfg=\u914D\u7F6E +address_pool_is_used=\u5730\u5740\u6C60\u5DF2\u88AB\u4F7F\u7528\uFF0C\u65E0\u6CD5\u6267\u884C\u8BE5\u64CD\u4F5C\uFF01 \ No newline at end of file diff --git a/src/main/resources/sql/20181129/add_ip_reuse_addr_pool.sql b/src/main/resources/sql/20181129/add_ip_reuse_addr_pool.sql index 816c0566e..547d74364 100644 --- a/src/main/resources/sql/20181129/add_ip_reuse_addr_pool.sql +++ b/src/main/resources/sql/20181129/add_ip_reuse_addr_pool.sql @@ -6,8 +6,8 @@ CREATE TABLE `ip_reuse_addr_pool` ( `cfg_id` bigint(20) NOT NULL AUTO_INCREMENT, `addr_pool_id` int(11) NOT NULL COMMENT '地址池ID', `addr_pool_name` varchar(128) DEFAULT NULL COMMENT '地址池名称', - `ip_total` int(11) DEFAULT NULL COMMENT '地址池IP总数', - `available_ip_total` int(11) DEFAULT NULL COMMENT '地址池可用IP数', + `ip_total` int(11) NOT NULL DEFAULT 0 COMMENT '地址池IP总数', + `available_ip_total` int(11) NOT NULL DEFAULT 0 COMMENT '地址池可用IP数', `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删除\r\n1) 未审核时配置可删除\r\n2) 审核通过,此字段置1\r\n3) 取消审核通过,此字段置0', `is_audit` int(11) NOT NULL COMMENT '0未审核,1审核通过,2审核未通过,3取消审核通过\r\n1) 审核未通过,配置可修改\r\n2) 审核通过,配置不可删除,只能取消审核通过', diff --git a/src/main/webapp/WEB-INF/tags/sys/delRow.tag b/src/main/webapp/WEB-INF/tags/sys/delRow.tag index 018314742..a32b06f8c 100644 --- a/src/main/webapp/WEB-INF/tags/sys/delRow.tag +++ b/src/main/webapp/WEB-INF/tags/sys/delRow.tag @@ -51,6 +51,7 @@ function del(url){ top.$.jBox.tip("", ""); return; }else{ + var addrPoolIds = []; var serviceGroupIds=[],ids=[],canDel=true; $(checkboxes).filter(":checked").each(function(){ if($(this).attr("serviceGroupId")&&$(this).attr("isValid")){ @@ -59,6 +60,10 @@ function del(url){ } ids.push($(this).attr("id")); } + var addrPoolId = $(this).attr("addressPoolId"); + if(typeof addrPoolId != "undefined"){ + addrPoolIds.push(addrPoolId); + } }) if(serviceGroupIds.length>0){ $.ajax({ @@ -74,6 +79,23 @@ function del(url){ } }); } + + // 地址池管理 (只有未被策略引用的地址池可删除) + if(addrPoolIds.length > 0){ + $.ajax({ + type:'post', + url:'${ctx}/maintenance/ipMultiplexPoolCfg/ajaxIsUsed', + data:{"addrPoolIds":addrPoolIds.join(',')}, + async:false, + success:function(data){//处理返回结果 + if(data == false){ + top.$.jBox.tip(''); + canDel=data; + } + } + }); + } + if(canDel){ doAll(checkboxes,url); } diff --git a/src/main/webapp/WEB-INF/views/basics/policyGroupForm.jsp b/src/main/webapp/WEB-INF/views/basics/policyGroupForm.jsp index 9f275e19e..926967c4c 100644 --- a/src/main/webapp/WEB-INF/views/basics/policyGroupForm.jsp +++ b/src/main/webapp/WEB-INF/views/basics/policyGroupForm.jsp @@ -83,7 +83,9 @@ $(function(){
diff --git a/src/main/webapp/WEB-INF/views/basics/policyGroupList.jsp b/src/main/webapp/WEB-INF/views/basics/policyGroupList.jsp index e74e578bb..c3f252b37 100644 --- a/src/main/webapp/WEB-INF/views/basics/policyGroupList.jsp +++ b/src/main/webapp/WEB-INF/views/basics/policyGroupList.jsp @@ -119,13 +119,15 @@ diff --git a/src/main/webapp/WEB-INF/views/cfg/maintenance/ipMultiplexPool/snatlist2.jsp b/src/main/webapp/WEB-INF/views/cfg/maintenance/ipMultiplexPool/snatlist2.jsp index 425f8e27f..d1d335d30 100644 --- a/src/main/webapp/WEB-INF/views/cfg/maintenance/ipMultiplexPool/snatlist2.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/maintenance/ipMultiplexPool/snatlist2.jsp @@ -314,7 +314,7 @@ - + ${cfg.addrPoolId }