diff --git a/src/main/java/com/nis/web/controller/BaseController.java b/src/main/java/com/nis/web/controller/BaseController.java index 5bc77301e..758f467e7 100644 --- a/src/main/java/com/nis/web/controller/BaseController.java +++ b/src/main/java/com/nis/web/controller/BaseController.java @@ -100,6 +100,7 @@ import com.nis.web.service.configuration.DnsIpCfgService; import com.nis.web.service.configuration.DnsResStrategyService; import com.nis.web.service.configuration.DomainService; import com.nis.web.service.configuration.FileTransferCfgService; +import com.nis.web.service.configuration.GroupAreaService; import com.nis.web.service.configuration.HttpRedirectCfgService; import com.nis.web.service.configuration.InterceptCfgService; import com.nis.web.service.configuration.IpCfgService; @@ -221,6 +222,8 @@ public class BaseController { protected AsnPolicyCfgService asnPolicyCfgService;// asn 策略 service @Autowired protected AppMultiFeatureCfgService appMultiFeatureCfgService; + @Autowired + protected GroupAreaService groupAreaService;// 分组区域管理 service /** * 管理基础路径 */ diff --git a/src/main/java/com/nis/web/controller/configuration/maintenance/IpMultiplexPoolCfgController.java b/src/main/java/com/nis/web/controller/configuration/maintenance/IpMultiplexPoolCfgController.java index 247052d35..7bc16fcc9 100644 --- a/src/main/java/com/nis/web/controller/configuration/maintenance/IpMultiplexPoolCfgController.java +++ b/src/main/java/com/nis/web/controller/configuration/maintenance/IpMultiplexPoolCfgController.java @@ -58,6 +58,8 @@ public class IpMultiplexPoolCfgController extends BaseController { public String saveOrUpdate(Model model,HttpServletRequest request,HttpServletResponse response,RedirectAttributes redirectAttributes, @ModelAttribute("cfg")IpMultiplexPoolCfg cfg){ try{ + // 设置省份信息 + groupAreaService.setAreaCodeByGroupId(cfg); ipMultiplexPoolCfgService.saveOrUpdate(cfg); @@ -145,7 +147,7 @@ public class IpMultiplexPoolCfgController extends BaseController { } if(!StringUtil.isEmpty(ids)){ cfg = ipMultiplexPoolCfgService.getIpMultiplexPoolCfg(Long.valueOf(ids),null); - initFormCondition(model, cfg); + initUpdateFormCondition(model, cfg); }else{ initFormCondition(model, cfg); } @@ -162,7 +164,10 @@ public class IpMultiplexPoolCfgController extends BaseController { public String snatsaveOrUpdate(Model model,HttpServletRequest request,HttpServletResponse response,RedirectAttributes redirectAttributes, @ModelAttribute("cfg")IpMultiplexPoolCfg cfg){ try{ - + // 设置省份信息 + if(!StringUtil.isEmpty(cfg.getPolicyGroup())){ + groupAreaService.setAreaCodeByGroupId(cfg); + } ipMultiplexPoolCfgService.saveOrUpdate(cfg); addMessage(redirectAttributes,"save_success"); @@ -208,4 +213,29 @@ public class IpMultiplexPoolCfgController extends BaseController { return "redirect:" + adminPath +"/maintenance/ipMultiplexPoolCfg/snatlist?functionId="+functionId; } + /** + * 校验IP是否已存在 + * @param cfg + * @param redirectAttributes + * @param request + * @param response + * @return + */ + @ResponseBody + @RequestMapping(value = {"/checkIp"}) + public boolean checkIp(IpMultiplexPoolCfg cfg, HttpServletRequest request, HttpServletResponse response){ + // 修改 + if(!StringUtil.isEmpty(cfg.getCfgId())){ + IpMultiplexPoolCfg poolCfg = ipMultiplexPoolCfgService.getCfgInfo(cfg); + if(poolCfg != null && poolCfg.getDestIpAddress().equals(cfg.getDestIpAddress())){ + return true; + } + } + cfg.setCfgId(null); + IpMultiplexPoolCfg poolCfg = ipMultiplexPoolCfgService.getCfgInfo(cfg); + if(poolCfg != null){ + return false; + } + return true; + } } diff --git a/src/main/java/com/nis/web/dao/configuration/GroupAreaDao.java b/src/main/java/com/nis/web/dao/configuration/GroupAreaDao.java index e25f22a4b..440ce4edc 100644 --- a/src/main/java/com/nis/web/dao/configuration/GroupAreaDao.java +++ b/src/main/java/com/nis/web/dao/configuration/GroupAreaDao.java @@ -11,7 +11,9 @@ public interface GroupAreaDao extends CrudDao{ List findGroupAreaInfoList(GroupAreaInfo entity); - GroupAreaInfo getInfoById(int groupId); + GroupAreaInfo getInfoById(int id); + + Integer getAreaCodeByGroupId(Integer groupId); } diff --git a/src/main/java/com/nis/web/dao/configuration/GroupAreaDao.xml b/src/main/java/com/nis/web/dao/configuration/GroupAreaDao.xml index 676feee74..1eac9c155 100644 --- a/src/main/java/com/nis/web/dao/configuration/GroupAreaDao.xml +++ b/src/main/java/com/nis/web/dao/configuration/GroupAreaDao.xml @@ -72,7 +72,7 @@ FROM group_area_info r WHERE - r.id = #{Id} + r.id = #{Id} AND is_valid = 1 @@ -124,4 +124,13 @@ + + \ No newline at end of file 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 ff4108742..4ca9687a0 100644 --- a/src/main/java/com/nis/web/dao/configuration/IpMultiplexPoolCfgDao.java +++ b/src/main/java/com/nis/web/dao/configuration/IpMultiplexPoolCfgDao.java @@ -15,4 +15,8 @@ public interface IpMultiplexPoolCfgDao extends CrudDao { ,@Param("isAudit")Integer isAudit ,@Param("isValid")Integer isValid); + IpMultiplexPoolCfg getCfgInfo(IpMultiplexPoolCfg cfg); + + String 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 3ac925b99..af7114c62 100644 --- a/src/main/java/com/nis/web/dao/configuration/IpMultiplexPoolCfgDao.xml +++ b/src/main/java/com/nis/web/dao/configuration/IpMultiplexPoolCfgDao.xml @@ -304,5 +304,37 @@ - + + + + \ 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 021b6d037..88f06d66e 100644 --- a/src/main/java/com/nis/web/service/configuration/GroupAreaService.java +++ b/src/main/java/com/nis/web/service/configuration/GroupAreaService.java @@ -1,5 +1,6 @@ package com.nis.web.service.configuration; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -8,11 +9,15 @@ import org.springframework.stereotype.Service; import com.nis.domain.Page; import com.nis.domain.basics.PolicyGroupInfo; +import com.nis.domain.configuration.AreaBean; import com.nis.domain.configuration.GroupAreaInfo; +import com.nis.domain.configuration.IpMultiplexPoolCfg; +import com.nis.domain.configuration.IpPortCfg; import com.nis.util.StringUtil; import com.nis.web.dao.configuration.GroupAreaDao; import com.nis.web.security.UserUtils; import com.nis.web.service.BaseService; +import com.nis.web.service.SpringContextHolder; @Service public class GroupAreaService extends BaseService{ @@ -28,8 +33,8 @@ public class GroupAreaService extends BaseService{ return page; } - public GroupAreaInfo getInfoById(int groupId) { - GroupAreaInfo GroupAreaInfo=groupAreaDao.getInfoById(groupId); + public GroupAreaInfo getInfoById(int id) { + GroupAreaInfo GroupAreaInfo=groupAreaDao.getInfoById(id); return GroupAreaInfo; } @@ -79,5 +84,40 @@ public class GroupAreaService extends BaseService{ } return policyGroups; } - + + // SNAT策略 组织生效区域信息 + public void setAreaEffective(IpPortCfg cfg) { + String areaEffectiveIds = ""; + if(cfg.getDnsStrategyId() != 0){// 已选择分组 + // 1.获取该分组的省份信息 + Integer areaCode = groupAreaDao.getAreaCodeByGroupId(cfg.getDnsStrategyId()); + // 2.获取该分组下的IP复用地址池配置的ISP + IpMultiplexPoolCfgService poolCfgService = SpringContextHolder.getBean(IpMultiplexPoolCfgService.class); + String ispInfo = poolCfgService.getIspByGroupId(cfg.getDnsStrategyId()); + if(ispInfo.indexOf(":") != -1){ + ispInfo = ispInfo.substring(ispInfo.indexOf(":")); + } + areaEffectiveIds = areaCode + ispInfo; + } + cfg.setAreaEffectiveIds(areaEffectiveIds); + } + + // IP复用地址池 设置省份信息 + public void setAreaCodeByGroupId(IpMultiplexPoolCfg cfg){ + Integer areaCode = groupAreaDao.getAreaCodeByGroupId(cfg.getPolicyGroup()); + if(!StringUtil.isEmpty(areaCode)){ + // 判断是否有ISP + if(StringUtil.isEmpty(cfg.getAreaIsp())){ + List areaIsp = new ArrayList<>(); + AreaBean areaBean = new AreaBean(); + areaBean.setArea(areaCode+""); + areaIsp.add(areaBean); + cfg.setAreaIsp(areaIsp); + }else{ + cfg.getAreaIsp().get(0).setArea(areaCode+""); + + } + } + } + } 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 146bc1e37..375551e5c 100644 --- a/src/main/java/com/nis/web/service/configuration/IpMultiplexPoolCfgService.java +++ b/src/main/java/com/nis/web/service/configuration/IpMultiplexPoolCfgService.java @@ -166,6 +166,24 @@ public class IpMultiplexPoolCfgService extends BaseService{ } } } + + /** + * 获取配置信息 + * @param cfg + * @return + */ + public IpMultiplexPoolCfg getCfgInfo(IpMultiplexPoolCfg cfg){ + return ipMultiplexStrategyDao.getCfgInfo(cfg); + } + + /** + * 获取该分组下的ISP信息 + * @param groupId + * @return + */ + public String getIspByGroupId(Integer groupId){ + return ipMultiplexStrategyDao.getIspByGroupId(groupId); + }; } \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/cfg/maintenance/ipMultiplexPool/form.jsp b/src/main/webapp/WEB-INF/views/cfg/maintenance/ipMultiplexPool/form.jsp index 4902775a4..eab2427f8 100644 --- a/src/main/webapp/WEB-INF/views/cfg/maintenance/ipMultiplexPool/form.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/maintenance/ipMultiplexPool/form.jsp @@ -52,7 +52,8 @@ $(function(){ - + + @@ -86,7 +87,7 @@ $(function(){
+ value="${_cfg.destIpAddress}" + ctx="${ctx}">
diff --git a/src/main/webapp/WEB-INF/views/cfg/maintenance/ipMultiplexPool/snatform.jsp b/src/main/webapp/WEB-INF/views/cfg/maintenance/ipMultiplexPool/snatform.jsp index dd870e5e8..c7f3c9e9f 100644 --- a/src/main/webapp/WEB-INF/views/cfg/maintenance/ipMultiplexPool/snatform.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/maintenance/ipMultiplexPool/snatform.jsp @@ -52,7 +52,8 @@ $(function(){ - + + @@ -83,10 +84,10 @@ $(function(){
- +
- + @@ -142,13 +143,45 @@ $(function(){
- + value="${_cfg.destIpAddress}" + ctx="${ctx}">
+ +
+
+ +
+ +
+
+
+
+