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 e1e8c47e1..c58c6d596 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 @@ -165,6 +165,25 @@ public class IpAddrPoolController extends BaseController{ return true; } + /** + * 校验所有地址池配置IP不可重复 + * @param cfg + * @param request + * @param response + * @return + */ + @ResponseBody + @RequestMapping(value = {"/checkAddrPoolIp"}) + public boolean checkAddrPoolIp(String ips, HttpServletRequest request, HttpServletResponse response){ + for (String ip : ips.split(",")) { + Long cfgId = ipAddrPoolCfgService.checkAddrPoolIp(ip); + if(cfgId != null){ + return false; + } + } + return true; + } + @ResponseBody @RequestMapping(value = {"/getCGIInfo"}) public Map getUserInfo(Integer addrPoolId,String cmd,HttpServletRequest request,HttpServletResponse response){ diff --git a/src/main/java/com/nis/web/dao/configuration/IpAddrPoolCfgDao.java b/src/main/java/com/nis/web/dao/configuration/IpAddrPoolCfgDao.java index 68b46add8..39cda87a3 100644 --- a/src/main/java/com/nis/web/dao/configuration/IpAddrPoolCfgDao.java +++ b/src/main/java/com/nis/web/dao/configuration/IpAddrPoolCfgDao.java @@ -4,6 +4,7 @@ import java.util.List; import org.apache.ibatis.annotations.Param; +import com.nis.domain.basics.IpReuseIpCfg; import com.nis.domain.configuration.BaseIpCfg; import com.nis.domain.configuration.IpAddrPoolCfg; import com.nis.web.dao.CrudDao; @@ -34,6 +35,8 @@ public interface IpAddrPoolCfgDao extends CrudDao{ Long getAddrPoolIdByName(String addrPoolName); + Long checkAddrPoolIp(@Param("srcIpAddress")String ip); + } diff --git a/src/main/java/com/nis/web/dao/configuration/IpAddrPoolCfgDao.xml b/src/main/java/com/nis/web/dao/configuration/IpAddrPoolCfgDao.xml index 446703008..2b59b1426 100644 --- a/src/main/java/com/nis/web/dao/configuration/IpAddrPoolCfgDao.xml +++ b/src/main/java/com/nis/web/dao/configuration/IpAddrPoolCfgDao.xml @@ -477,4 +477,13 @@ WHERE r.addr_pool_name = #{addrPoolName} AND r.is_valid != -1 + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/service/configuration/IpAddrPoolCfgService.java b/src/main/java/com/nis/web/service/configuration/IpAddrPoolCfgService.java index eb85067a5..8ede5c520 100644 --- a/src/main/java/com/nis/web/service/configuration/IpAddrPoolCfgService.java +++ b/src/main/java/com/nis/web/service/configuration/IpAddrPoolCfgService.java @@ -16,6 +16,7 @@ import org.springframework.transaction.annotation.Transactional; import com.beust.jcommander.internal.Lists; import com.nis.domain.Page; +import com.nis.domain.basics.IpReuseIpCfg; import com.nis.domain.callback.IpAddrPool; import com.nis.domain.configuration.BaseIpCfg; import com.nis.domain.configuration.IpAddrPoolCfg; @@ -286,5 +287,9 @@ public class IpAddrPoolCfgService extends BaseService{ public List getEffectiveAddrPool() { return ipAddrPoolCfgDao.findAddrPoolCfg(); } + + public Long checkAddrPoolIp(String ip) { + return ipAddrPoolCfgDao.checkAddrPoolIp(ip); + } } diff --git a/src/main/webapp/WEB-INF/views/cfg/maintenance/ipMultiplexPool/snatform2.jsp b/src/main/webapp/WEB-INF/views/cfg/maintenance/ipMultiplexPool/snatform2.jsp index 10e37a4bb..32966a426 100644 --- a/src/main/webapp/WEB-INF/views/cfg/maintenance/ipMultiplexPool/snatform2.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/maintenance/ipMultiplexPool/snatform2.jsp @@ -246,7 +246,7 @@ var resetIndex = function(){
- +
@@ -393,7 +393,7 @@ var resetIndex = function(){
- +
diff --git a/src/main/webapp/static/global/plugins/jquery-validation/1.11.0/jquery.validate.method.js b/src/main/webapp/static/global/plugins/jquery-validation/1.11.0/jquery.validate.method.js index 34fd6d5a3..1275eba91 100644 --- a/src/main/webapp/static/global/plugins/jquery-validation/1.11.0/jquery.validate.method.js +++ b/src/main/webapp/static/global/plugins/jquery-validation/1.11.0/jquery.validate.method.js @@ -980,6 +980,7 @@ jQuery.validator.addMethod("areaUnique",function(value,element) { jQuery.validator.addMethod("ipMaskSole",function(value,element) { var flag = true; var ipArray = []; + var value2 = value; if(value.indexOf("/") == -1){ value = value+"/32"; } @@ -993,5 +994,27 @@ jQuery.validator.addMethod("ipMaskSole",function(value,element) { if($.inArray(value,ipArray) != -1){ flag = false; } + + var cfgId = $(element).attr("cfgId"); + if((flag == true) && (!cfgId)){ + ipArray = []; + ipArray.push(value2); + $(".ipMaskSole").each(function(){ + ipArray.push($(this).val()); + }); + + var ctx = $(element).attr("ctx"); + var url = ctx+"/maintenance/ipMultiplexPoolCfg/checkAddrPoolIp"; + $.ajax({ + type:'post', + async:false, + url: url, + data:{"ips":ipArray.join(',')}, + success:function(data){ + flag = data; + } + }); + } + return flag; }); \ No newline at end of file