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 }