From a4ff9ae4930f7762baddad6ef79c0c6797c1b00e Mon Sep 17 00:00:00 2001 From: zhangwq Date: Tue, 23 Oct 2018 12:57:49 +0800 Subject: [PATCH] =?UTF-8?q?S/DNAT=E5=A4=8D=E7=94=A8=E7=AD=96=E7=95=A5?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E4=BF=AE=E6=94=B9.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manipulation/IpMultiplexController.java | 4 ++ .../configuration/IpMultiplexPoolCfgDao.java | 2 +- .../configuration/IpMultiplexPoolCfgDao.xml | 8 ++-- .../configuration/GroupAreaService.java | 42 +++++++++++++++---- .../IpMultiplexPoolCfgService.java | 2 +- .../ipmulitiplex/dnatPolicyForm.jsp | 10 +++-- .../ipmulitiplex/dnatPolicyList.jsp | 11 ++++- .../ipmulitiplex/snatPolicyForm.jsp | 41 ++++++++++++++---- .../ipmulitiplex/snatPolicyList.jsp | 12 +++++- 9 files changed, 103 insertions(+), 29 deletions(-) diff --git a/src/main/java/com/nis/web/controller/configuration/manipulation/IpMultiplexController.java b/src/main/java/com/nis/web/controller/configuration/manipulation/IpMultiplexController.java index ad8b5c716..0b6d37b88 100644 --- a/src/main/java/com/nis/web/controller/configuration/manipulation/IpMultiplexController.java +++ b/src/main/java/com/nis/web/controller/configuration/manipulation/IpMultiplexController.java @@ -144,6 +144,8 @@ public class IpMultiplexController extends CommonController { @RequestMapping(value = {"/saveOrUpdateSnat"}) public String saveOrUpdateSnat(String cfgName,RedirectAttributes model, IpPortCfg cfg) { + // 设置生效区域信息 + groupAreaService.setAreaEffective(cfg); this._saveOrUpdateIp(cfgName,model, cfg); return "redirect:" + adminPath +"/manipulation/ipmulitiplex/snatPolicyList?functionId="+cfg.getFunctionId(); } @@ -191,6 +193,8 @@ public class IpMultiplexController extends CommonController { @RequestMapping(value = {"/saveOrUpdateDnat"}) public String saveOrUpdateDnat(String cfgName,RedirectAttributes model, IpPortCfg cfg) { + // 设置生效区域信息 + groupAreaService.setAreaCodeByGroupId(cfg); this._saveOrUpdateIp(cfgName,model, cfg); return "redirect:" + adminPath +"/manipulation/ipmulitiplex/dnatPolicyList?functionId="+cfg.getFunctionId(); } diff --git a/src/main/java/com/nis/web/dao/configuration/IpMultiplexPoolCfgDao.java b/src/main/java/com/nis/web/dao/configuration/IpMultiplexPoolCfgDao.java index 4ca9687a0..d82bdf849 100644 --- a/src/main/java/com/nis/web/dao/configuration/IpMultiplexPoolCfgDao.java +++ b/src/main/java/com/nis/web/dao/configuration/IpMultiplexPoolCfgDao.java @@ -17,6 +17,6 @@ public interface IpMultiplexPoolCfgDao extends CrudDao { IpMultiplexPoolCfg getCfgInfo(IpMultiplexPoolCfg cfg); - String getIspByGroupId(Integer groupId); + List getIspByGroupId(Integer groupId); } \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/configuration/IpMultiplexPoolCfgDao.xml b/src/main/java/com/nis/web/dao/configuration/IpMultiplexPoolCfgDao.xml index af7114c62..49b47a412 100644 --- a/src/main/java/com/nis/web/dao/configuration/IpMultiplexPoolCfgDao.xml +++ b/src/main/java/com/nis/web/dao/configuration/IpMultiplexPoolCfgDao.xml @@ -328,13 +328,13 @@ - SELECT - area_effective_ids + FROM - ip_multiplex_pool_cfg + ip_multiplex_pool_cfg r WHERE - policy_group = #{groupId} AND is_valid != -1 + r.POLICY_GROUP = #{groupId} AND r.IS_VALID != -1 \ No newline at end of file diff --git a/src/main/java/com/nis/web/service/configuration/GroupAreaService.java b/src/main/java/com/nis/web/service/configuration/GroupAreaService.java index 88f06d66e..7a2f2b00a 100644 --- a/src/main/java/com/nis/web/service/configuration/GroupAreaService.java +++ b/src/main/java/com/nis/web/service/configuration/GroupAreaService.java @@ -85,21 +85,49 @@ public class GroupAreaService extends BaseService{ return policyGroups; } - // SNAT策略 组织生效区域信息 + public void setAreaCodeByGroupId(IpPortCfg cfg){ + Integer areaCode = groupAreaDao.getAreaCodeByGroupId(cfg.getDnsStrategyId()); + cfg.setAreaEffectiveIds(areaCode+""); + } + + // snat策略 设置生效区域信息 public void setAreaEffective(IpPortCfg cfg) { String areaEffectiveIds = ""; if(cfg.getDnsStrategyId() != 0){// 已选择分组 - // 1.获取该分组的省份信息 - Integer areaCode = groupAreaDao.getAreaCodeByGroupId(cfg.getDnsStrategyId()); + // 1.设置省份信息 + this.setAreaCodeByGroupId(cfg); + areaEffectiveIds = cfg.getAreaEffectiveIds(); + // 2.获取该分组下的IP复用地址池配置的ISP IpMultiplexPoolCfgService poolCfgService = SpringContextHolder.getBean(IpMultiplexPoolCfgService.class); - String ispInfo = poolCfgService.getIspByGroupId(cfg.getDnsStrategyId()); - if(ispInfo.indexOf(":") != -1){ - ispInfo = ispInfo.substring(ispInfo.indexOf(":")); + List cfgsList = poolCfgService.getIspByGroupId(cfg.getDnsStrategyId()); + String newAreaEffectiveIds = ""; + List ispList = new ArrayList<>(); + if(cfgsList.size() != 0){ + for (IpMultiplexPoolCfg poolCfg : cfgsList) { + String areaIsp = poolCfg.getAreaEffectiveIds(); + if(areaIsp.contains(":")){ + areaIsp = areaIsp.substring(areaIsp.indexOf(":")+1); + } + ispList.add(areaIsp); + } } - areaEffectiveIds = areaCode + ispInfo; + // 3.组织格式 + if(ispList.size() != 0){ + for (int i = 0; i < ispList.size(); i++) { + if(i < ispList.size()-1){ + newAreaEffectiveIds += cfg.getAreaEffectiveIds()+":"+ispList.get(i)+","; + }else{ + newAreaEffectiveIds += cfg.getAreaEffectiveIds()+":"+ispList.get(i); + } + } + areaEffectiveIds = newAreaEffectiveIds; + } + }else{ + areaEffectiveIds = cfg.getAreaEffectiveIds(); } cfg.setAreaEffectiveIds(areaEffectiveIds); + } // IP复用地址池 设置省份信息 diff --git a/src/main/java/com/nis/web/service/configuration/IpMultiplexPoolCfgService.java b/src/main/java/com/nis/web/service/configuration/IpMultiplexPoolCfgService.java index 375551e5c..86e944886 100644 --- a/src/main/java/com/nis/web/service/configuration/IpMultiplexPoolCfgService.java +++ b/src/main/java/com/nis/web/service/configuration/IpMultiplexPoolCfgService.java @@ -181,7 +181,7 @@ public class IpMultiplexPoolCfgService extends BaseService{ * @param groupId * @return */ - public String getIspByGroupId(Integer groupId){ + public List getIspByGroupId(Integer groupId){ return ipMultiplexStrategyDao.getIspByGroupId(groupId); }; } diff --git a/src/main/webapp/WEB-INF/views/cfg/manipulation/ipmulitiplex/dnatPolicyForm.jsp b/src/main/webapp/WEB-INF/views/cfg/manipulation/ipmulitiplex/dnatPolicyForm.jsp index c416b17ac..ec1f4c889 100644 --- a/src/main/webapp/WEB-INF/views/cfg/manipulation/ipmulitiplex/dnatPolicyForm.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/manipulation/ipmulitiplex/dnatPolicyForm.jsp @@ -20,7 +20,7 @@ $(function(){ $(element).parents(".form-group").find("div[for='"+element.attr("name")+"']").append(error); }, submitHandler: function(form){ - //loading(''); + loading(''); form.submit(); }, errorContainer: "#messageBox" @@ -51,7 +51,9 @@ $(function(){ - + + + @@ -167,7 +169,7 @@ $(function(){
- +
@@ -242,7 +244,7 @@ $(function(){
- +
diff --git a/src/main/webapp/WEB-INF/views/cfg/manipulation/ipmulitiplex/dnatPolicyList.jsp b/src/main/webapp/WEB-INF/views/cfg/manipulation/ipmulitiplex/dnatPolicyList.jsp index 7f2a22f5c..3dc05567c 100644 --- a/src/main/webapp/WEB-INF/views/cfg/manipulation/ipmulitiplex/dnatPolicyList.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/manipulation/ipmulitiplex/dnatPolicyList.jsp @@ -274,8 +274,9 @@ - - + + + <%-- --%> <%-- --%> @@ -309,6 +310,12 @@ + + + ${fns:abbr(indexCfg.groupName,20)} + + ${indexCfg.destIpAddress } ${indexCfg.destPort } diff --git a/src/main/webapp/WEB-INF/views/cfg/manipulation/ipmulitiplex/snatPolicyForm.jsp b/src/main/webapp/WEB-INF/views/cfg/manipulation/ipmulitiplex/snatPolicyForm.jsp index 6b7240b68..63d910de8 100644 --- a/src/main/webapp/WEB-INF/views/cfg/manipulation/ipmulitiplex/snatPolicyForm.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/manipulation/ipmulitiplex/snatPolicyForm.jsp @@ -11,16 +11,22 @@ $(function(){ $("#serviceId").val($(".action:checked").attr("serviceId")); $("#protocolId").val($(".action:checked").attr("protocolId")); } - $(".action").on("change", function() { - $("#serviceId").val($(this).attr("serviceId")); - $("#protocolId").val($(this).attr("protocolId")); + if($("#dnsStrategyId").val() == 0){ + $("#areaEffectiveIds").parents(".form-group").removeClass("hidden"); + } + $("#dnsStrategyId").on("change",function(){ + if($(this).val() != 0){ + $("#areaEffectiveIds").parents(".form-group").addClass("hidden"); + }else{ + $("#areaEffectiveIds").parents(".form-group").removeClass("hidden"); + } }); $("#ipCfgFrom").validate({ errorPlacement: function(error,element){ $(element).parents(".form-group").find("div[for='"+element.attr("name")+"']").append(error); }, submitHandler: function(form){ - //loading(''); + loading(''); form.submit(); }, errorContainer: "#messageBox" @@ -51,7 +57,8 @@ $(function(){ - + + @@ -92,10 +99,10 @@ $(function(){
- +
- + @@ -158,7 +165,7 @@ $(function(){
- +
@@ -264,6 +271,22 @@ $(function(){
--%> +
+
+ +
+

diff --git a/src/main/webapp/WEB-INF/views/cfg/manipulation/ipmulitiplex/snatPolicyList.jsp b/src/main/webapp/WEB-INF/views/cfg/manipulation/ipmulitiplex/snatPolicyList.jsp index 8c16193c9..477dde3d0 100644 --- a/src/main/webapp/WEB-INF/views/cfg/manipulation/ipmulitiplex/snatPolicyList.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/manipulation/ipmulitiplex/snatPolicyList.jsp @@ -274,7 +274,8 @@ - + + <%-- --%> <%-- --%> @@ -307,6 +308,15 @@ + + + ${fns:abbr(indexCfg.groupName,20)} + + + + + ${indexCfg.srcIpAddress } <%--