1.增加区域管控校验,不可重复 2.IP复用配置表单从group_area_info表中获取分组

This commit is contained in:
zhangwq
2018-11-02 12:51:27 +08:00
parent 1a01f78a08
commit 6ab181c329
10 changed files with 69 additions and 41 deletions

View File

@@ -54,7 +54,7 @@ public class IpMultiplexPoolCfgController extends BaseController {
}
//查询ip复用地址池配置的policyGroup列表
List<PolicyGroupInfo> policyGroups=policyGroupInfoService.findPolicyGroupInfosByType(3);
List<PolicyGroupInfo> policyGroups=policyGroupInfoService.getHasAreaPolicyGroups(3);
model.addAttribute("policyGroups", policyGroups);
model.addAttribute("_cfg", cfg);
return "/cfg/maintenance/ipMultiplexPool/form";
@@ -160,7 +160,7 @@ public class IpMultiplexPoolCfgController extends BaseController {
}
//查询ip复用地址池配置的policyGroup列表
List<PolicyGroupInfo> policyGroups=policyGroupInfoService.findPolicyGroupInfosByType(2);
List<PolicyGroupInfo> policyGroups=policyGroupInfoService.getHasAreaPolicyGroups(2);
model.addAttribute("policyGroups", policyGroups);
model.addAttribute("_cfg", cfg);
return "/cfg/maintenance/ipMultiplexPool/snatform";

View File

@@ -133,19 +133,9 @@ public class IpMultiplexController extends CommonController {
@RequiresPermissions(value={"snat_policy:config"})
public String snatPolicyForm(String cfgName,Model model,String ids,Integer functionId,BaseIpCfg entity) {
this._ipForm(cfgName,model, ids, functionId, entity);
SysDataDictionaryItem dict=null;
List<SysDataDictionaryItem> dictList= DictUtils.getDictList("GROUP_TYPE");
for(SysDataDictionaryItem di:dictList){
if("2".equals(di.getItemCode())){
dict=di;
break;
}
}
if(dict!=null){
List<PolicyGroupInfo> policyGroups=policyGroupInfoService.findPolicyGroupInfosByType(Integer.parseInt(dict.getItemCode()));
model.addAttribute("policyGroups", policyGroups);
}
// 获取拥有区域信息的策略分组
List<PolicyGroupInfo> policyGroups = policyGroupInfoService.getHasAreaPolicyGroups(2);
model.addAttribute("policyGroups", policyGroups);
model.addAttribute("urlPrefix","/manipulation/ipmulitiplex");
return "/cfg/manipulation/ipmulitiplex/snatPolicyForm";
}
@@ -182,19 +172,9 @@ public class IpMultiplexController extends CommonController {
@RequiresPermissions(value={"dnat_policy:config"})
public String dnatPolicyForm(String cfgName,Model model,String ids,Integer functionId,BaseIpCfg entity) {
this._ipForm(cfgName,model, ids, functionId, entity);
SysDataDictionaryItem dict=null;
List<SysDataDictionaryItem> dictList= DictUtils.getDictList("GROUP_TYPE");
for(SysDataDictionaryItem di:dictList){
if("3".equals(di.getItemCode())){
dict=di;
break;
}
}
if(dict!=null){
List<PolicyGroupInfo> policyGroups=policyGroupInfoService.findPolicyGroupInfosByType(Integer.parseInt(dict.getItemCode()));
model.addAttribute("policyGroups", policyGroups);
}
// 获取拥有区域信息的策略分组
List<PolicyGroupInfo> policyGroups=policyGroupInfoService.getHasAreaPolicyGroups(3);
model.addAttribute("policyGroups", policyGroups);
model.addAttribute("urlPrefix","/manipulation/ipmulitiplex");
return "/cfg/manipulation/ipmulitiplex/dnatPolicyForm";
}

View File

@@ -18,4 +18,5 @@ public interface PolicyGroupInfoDao extends CrudDao<PolicyGroupInfo> {
List<PolicyGroupInfo> findNatPolicyGroups();
PolicyGroupInfo getInfoByAsnNo(PolicyGroupInfo policyGroupInfo);
List<PolicyGroupInfo> getHasAreaPolicyGroups(int groupType);
}

View File

@@ -176,4 +176,17 @@
</if>
</trim>
</select>
<select id="getHasAreaPolicyGroups" resultType="com.nis.domain.basics.PolicyGroupInfo">
SELECT
<include refid="PolicyGroupInfoColumns"/>
FROM
policy_group_info r
WHERE
r.is_valid = 1 AND
r.group_type = #{groupType,jdbcType=INTEGER} AND
r.group_id IN (
SELECT ga.group_id FROM group_area_info ga WHERE ga.is_valid != -1
)
</select>
</mapper>

View File

@@ -145,8 +145,12 @@ public class PolicyGroupInfoService extends BaseService{
return policyGroupInfoDao.getInfoByAsnNo(policyGroupInfo);
}
public void getByIds(String ids) {
// TODO Auto-generated method stub
/**
* IP复用配置表单-获取拥有区域信息的策略分组
* @param groupType
* @return
*/
public List<PolicyGroupInfo> getHasAreaPolicyGroups(int groupType) {
return policyGroupInfoDao.getHasAreaPolicyGroups(groupType);
}
}

View File

@@ -2,9 +2,18 @@
<%@ include file="/WEB-INF/include/taglib.jsp"%>
<script type="text/javascript">
$(function(){
setSelectIndex();
$("#addAreaIsp").on("click",function(){
setSelectIndex();
});
});
var setSelectIndex = function(){
$("select[areaIsp='area']").each(function(index,item){
var name = this.name;
var index = name.substring(name.indexOf("[")+1,name.indexOf("]"));
$(this).attr("index",index);
});
}
</script>
<p class="border-top border-top-blue-sharp"></p>
<h3 class="form-section"><spring:message code="effect_range"/></h3>
@@ -44,7 +53,7 @@ $(function(){
</div>
</div>
<div class="hidden" id="areaIsp">
<h4 class="form-section"><spring:message code="area"/> <%-- <spring:message code="isp"/> --%><small><span class="glyphicon glyphicon-plus" title="add"></span></small></h4>
<h4 id="addAreaIsp" class="form-section"><spring:message code="area"/> <%-- <spring:message code="isp"/> --%><small><span class="glyphicon glyphicon-plus" title="add"></span></small></h4>
<div class="container-fluid hidden row">
<div class="row">
<div class="pull-right">
@@ -54,9 +63,9 @@ $(function(){
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><spring:message code="area"/></label>
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="area"/></label>
<div class="col-md-6">
<select name="areaCode" class="form-control required" data-live-search="true" data-live-search-placeholder="search" >
<select name="areaCode" areaIsp="area" class="form-control required areaUnique" data-live-search="true" data-live-search-placeholder="search" >
<option value="" ><spring:message code="select"/></option>
<c:forEach items="${areas}" var="area">
<option value="${area.itemCode}">${area.itemValue}</option>
@@ -77,6 +86,7 @@ $(function(){
</c:forEach>
</select>
</div>
<div for="ispCode"></div>
</div>
</div>
</div>
@@ -91,9 +101,9 @@ $(function(){
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><spring:message code="area"/></label>
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="area"/></label>
<div class="col-md-6">
<select name="areaIsp[${status.index}].area" class="selectpicker form-control required" data-live-search="true" data-live-search-placeholder="search" >
<select name="areaIsp[${status.index}].area" areaIsp="area" class="selectpicker form-control required areaUnique" data-live-search="true" data-live-search-placeholder="search" >
<option value="" ><spring:message code="select"/></option>
<c:forEach items="${areas}" var="area">
<option value="${area.itemCode}"
@@ -123,7 +133,8 @@ $(function(){
</div>
</div>
</c:forEach>
<!-- <div for="ispArea" ><label class="error">Area already exists.</label></div> -->
<%--<span id="rangeError" style="display:none"><spring:message code="area_existed"/></span> --%>
</div>
<%-- <div class="hidden" id="areaIp">
<h4 class="form-section"><spring:message code="area"/> ip<small><span class="glyphicon glyphicon-plus" title="add"></span></small></h4>

View File

@@ -958,4 +958,20 @@ jQuery.validator.addMethod("asnNoUnique",function(value, element) {
}
});
return result;
});
jQuery.validator.addMethod("areaUnique",function(value,element) {
var flag = true;
var array = new Array();
var index = $(element).attr("index");
$("select[areaIsp='area']").each(function(){
var code = $(this).val();
if($(this).attr("index") < index){
array.push(code);
}
});
if($.inArray(value,array) != -1){
flag = false;
}
return flag;
});

View File

@@ -77,6 +77,7 @@
protocolPort1:"Only when TCP protocol or UDP protocol is chosen can port greater than 0",
netAddress:"The class C type of IP addresses must has the same network number bit field",
ipUnique:"IP already exists.",
asnNoUnique:"ASN already exists."
asnNoUnique:"ASN already exists.",
areaUnique:"Area already exists."
});
}(jQuery));

View File

@@ -77,6 +77,7 @@
protocolPort1:"Only when TCP protocol or UDP protocol is chosen can port greater than 0",
netAddress:"C类IP地址网络位必须相同",
ipUnique:"IP already exists.",
asnNoUnique:"ASN already exists."
asnNoUnique:"ASN already exists.",
areaUnique:"Area already exists."
});
}(jQuery));

View File

@@ -78,5 +78,6 @@
netAddress:"C类IP地址网络位必须相同",
ipUnique:"IP已存在",
asnNoUnique:"ASN号已存在",
areaUnique:"该区域已存在"
});
}(jQuery));