策略分组添加asn号属性.

This commit is contained in:
zhangwq
2018-10-25 19:43:54 +08:00
parent 6855454715
commit 5b89e6cff5
10 changed files with 116 additions and 11 deletions

View File

@@ -22,6 +22,7 @@ public class PolicyGroupInfo extends BaseCfg<PolicyGroupInfo> implements Seriali
private Integer groupType; private Integer groupType;
private Integer serviceGroupId; private Integer serviceGroupId;
private String description; private String description;
private Integer asnNo;
public Integer getServiceGroupId() { public Integer getServiceGroupId() {
return serviceGroupId; return serviceGroupId;
@@ -65,4 +66,11 @@ public class PolicyGroupInfo extends BaseCfg<PolicyGroupInfo> implements Seriali
public void setDescription(String description) { public void setDescription(String description) {
this.description = description; this.description = description;
} }
public Integer getAsnNo() {
return asnNo;
}
public void setAsnNo(Integer asnNo) {
this.asnNo = asnNo;
}
} }

View File

@@ -1,9 +1,5 @@
package com.nis.web.controller.basics; package com.nis.web.controller.basics;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@@ -116,4 +112,25 @@ public class PolicyGroupController extends BaseController {
} }
return false; return false;
} }
/**
* 校验asn号是否已存在
*/
@ResponseBody
@RequestMapping(value = {"/checkAsnNo"})
public boolean checkIp(PolicyGroupInfo cfg, HttpServletRequest request, HttpServletResponse response){
if(cfg.getGroupId() != null){
PolicyGroupInfo policyGroup = policyGroupInfoService.getInfoByAsnNo(cfg);
if(policyGroup != null && policyGroup.getAsnNo().equals(cfg.getAsnNo()) ){
return true;
}
}
cfg.setGroupId(null);
PolicyGroupInfo policyGroup = policyGroupInfoService.getInfoByAsnNo(cfg);
if(policyGroup != null){
return false;
}
return true;
}
} }

View File

@@ -16,4 +16,6 @@ public interface PolicyGroupInfoDao extends CrudDao<PolicyGroupInfo> {
List<PolicyGroupInfo> findPolicyGroupInfosHasIpRegionByType(int groupType); List<PolicyGroupInfo> findPolicyGroupInfosHasIpRegionByType(int groupType);
PolicyGroupInfo getById(int id); PolicyGroupInfo getById(int id);
List<PolicyGroupInfo> findNatPolicyGroups(); List<PolicyGroupInfo> findNatPolicyGroups();
PolicyGroupInfo getInfoByAsnNo(PolicyGroupInfo policyGroupInfo);
} }

View File

@@ -12,11 +12,12 @@
<result column="creator_id" property="creatorId" jdbcType="INTEGER" /> <result column="creator_id" property="creatorId" jdbcType="INTEGER" />
<result column="editor_id" property="editorId" jdbcType="INTEGER" /> <result column="editor_id" property="editorId" jdbcType="INTEGER" />
<result column="service_group_id" property="serviceGroupId" jdbcType="INTEGER" /> <result column="service_group_id" property="serviceGroupId" jdbcType="INTEGER" />
<result column="asn_no" property="asnNo" jdbcType="INTEGER" />
<result column="description" property="description" jdbcType="VARCHAR" /> <result column="description" property="description" jdbcType="VARCHAR" />
</resultMap> </resultMap>
<sql id="PolicyGroupInfoColumns"> <sql id="PolicyGroupInfoColumns">
r.group_id,r.group_name,r.group_type,r.is_valid,r.create_time, r.group_id,r.group_name,r.group_type,r.is_valid,r.create_time,r.edit_time,
r.edit_time,r.creator_id,r.editor_id,r.service_group_id,r.description r.creator_id,r.editor_id,r.service_group_id,r.asn_no,r.description
</sql> </sql>
<!-- 查出所有 有效数据--> <!-- 查出所有 有效数据-->
@@ -41,6 +42,9 @@
<if test="groupType != null"> <if test="groupType != null">
AND r.group_type =#{groupType } AND r.group_type =#{groupType }
</if> </if>
<if test="asnNo != null">
AND r.asn_no =#{asnNo }
</if>
AND r.IS_VALID =1 AND r.IS_VALID =1
<if test="creatorName != null and creatorName != ''"> <if test="creatorName != null and creatorName != ''">
AND CREATOR_NAME like concat(concat('%',#{creatorName,jdbcType=VARCHAR}),'%') AND CREATOR_NAME like concat(concat('%',#{creatorName,jdbcType=VARCHAR}),'%')
@@ -97,6 +101,7 @@
GROUP_NAME, GROUP_NAME,
GROUP_TYPE, GROUP_TYPE,
SERVICE_GROUP_ID, SERVICE_GROUP_ID,
ASN_NO,
DESCRIPTION DESCRIPTION
)values ( )values (
1, 1,
@@ -105,6 +110,7 @@
#{groupName,jdbcType=VARCHAR}, #{groupName,jdbcType=VARCHAR},
#{groupType,jdbcType=INTEGER}, #{groupType,jdbcType=INTEGER},
#{serviceGroupId,jdbcType=INTEGER}, #{serviceGroupId,jdbcType=INTEGER},
#{asnNo,jdbcType=INTEGER},
#{description,jdbcType=VARCHAR} #{description,jdbcType=VARCHAR}
) )
</insert> </insert>
@@ -118,6 +124,9 @@
<if test="groupType != null" > <if test="groupType != null" >
group_type = #{groupType,jdbcType=INTEGER}, group_type = #{groupType,jdbcType=INTEGER},
</if> </if>
<if test="asnNo != null" >
asn_no = #{asnNo,jdbcType=INTEGER},
</if>
<if test="description != null" > <if test="description != null" >
description = #{description,jdbcType=VARCHAR}, description = #{description,jdbcType=VARCHAR},
</if> </if>
@@ -147,4 +156,24 @@
from policy_group_info r from policy_group_info r
where r.group_id =#{groupId} where r.group_id =#{groupId}
</select> </select>
<select id="getInfoByAsnNo" resultType="com.nis.domain.basics.PolicyGroupInfo">
SELECT
<include refid="PolicyGroupInfoColumns"/>
FROM
policy_group_info r
<trim prefix="WHERE" prefixOverrides="AND |OR ">
<if test="groupId != null" >
AND group_id = #{groupId,jdbcType=INTEGER}
</if>
<if test="asnNo != null" >
AND asn_no = #{asnNo,jdbcType=INTEGER}
</if>
<if test="isValid != null" >
AND is_valid = #{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null" >
AND is_valid != -1
</if>
</trim>
</select>
</mapper> </mapper>

View File

@@ -93,6 +93,7 @@ public class PolicyGroupInfoService extends BaseService{
group.setGroupName(entity.getGroupName()); group.setGroupName(entity.getGroupName());
group.setIsIssued(0); group.setIsIssued(0);
group.setGroupType(entity.getGroupType()); group.setGroupType(entity.getGroupType());
group.setAsnId(entity.getAsnNo());
specificServiceCfgDao.insertConfigGroupInfo(group); specificServiceCfgDao.insertConfigGroupInfo(group);
} }
} }
@@ -139,6 +140,11 @@ public class PolicyGroupInfoService extends BaseService{
} }
return false; return false;
} }
public PolicyGroupInfo getInfoByAsnNo(PolicyGroupInfo policyGroupInfo){
return policyGroupInfoDao.getInfoByAsnNo(policyGroupInfo);
}
public void getByIds(String ids) { public void getByIds(String ids) {
// TODO Auto-generated method stub // TODO Auto-generated method stub

View File

@@ -13,8 +13,19 @@ $(function(){
}); });
$("[name=groupType]").selectpicker("refresh"); $("[name=groupType]").selectpicker("refresh");
} }
$(".action").on("change", function() { /* $(".action").on("change", function() {
$("#serviceId").val($(this).attr("serviceId")); $("#serviceId").val($(this).attr("serviceId"));
}); */
if($("#groupType").val() == 4){
$("#asnNo").parents(".form-group").removeClass("hidden");
}
$("#groupType").on("change",function(){
if($(this).val() != 4){
$("#asnNo").parents(".form-group").addClass("hidden");
}else{
$("#asnNo").parents(".form-group").removeClass("hidden");
}
}); });
$("#cfgFrom").validate({ $("#cfgFrom").validate({
errorPlacement: function(error,element){ errorPlacement: function(error,element){
@@ -63,13 +74,14 @@ $(function(){
<div class="col-md-6"> <div class="col-md-6">
<input class="form-control required" type="text" name="groupName" value="${_cfg.groupName}"> <input class="form-control required" type="text" name="groupName" value="${_cfg.groupName}">
</div> </div>
<div for="groupName"></div>
</div> </div>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<div class="form-group"> <div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="group_type"/></label> <label class="control-label col-md-3"><font color="red">*</font><spring:message code="group_type"/></label>
<div class="col-md-6"> <div class="col-md-6">
<select name="groupType" class="selectpicker select2 form-control required" > <select id="groupType" name="groupType" class="selectpicker select2 form-control required" >
<c:forEach items="${fns:getDictList('GROUP_TYPE')}" var="groupTypeC"> <c:forEach items="${fns:getDictList('GROUP_TYPE')}" var="groupTypeC">
<option value="${groupTypeC.itemCode}" <c:if test="${_cfg.groupType==groupTypeC.itemCode || (_cfg.groupType==null && groupTypeC.itemCode==1)}">selected</c:if>><spring:message code="${groupTypeC.itemValue}"/></option> <option value="${groupTypeC.itemCode}" <c:if test="${_cfg.groupType==groupTypeC.itemCode || (_cfg.groupType==null && groupTypeC.itemCode==1)}">selected</c:if>><spring:message code="${groupTypeC.itemValue}"/></option>
</c:forEach> </c:forEach>
@@ -88,6 +100,15 @@ $(function(){
</div> </div>
</div> </div>
</div> </div>
<div class="col-md-6">
<div class="form-group hidden">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="asn_no"/></label>
<div class="col-md-6">
<input id="asnNo" class="form-control required asnNoUnique" type="text" name="asnNo" value="${_cfg.asnNo}" autocomplete="off" maxlength="20" ctx="${ctx }">
</div>
<div for="asnNo"></div>
</div>
</div>
</div> </div>
</div> </div>
<div class="form-actions"> <div class="form-actions">

View File

@@ -137,6 +137,7 @@
<form:select path="seltype" class="selectpicker select2 input-small" > <form:select path="seltype" class="selectpicker select2 input-small" >
<form:option value="groupName"><spring:message code="group_name"></spring:message></form:option> <form:option value="groupName"><spring:message code="group_name"></spring:message></form:option>
<form:option value="asnNo"><spring:message code="asn_no"></spring:message></form:option>
</form:select> </form:select>
</div> </div>
@@ -216,6 +217,7 @@
<th><input type="checkbox" class="i-checks" id="checkAll"></th> <th><input type="checkbox" class="i-checks" id="checkAll"></th>
<th><spring:message code="group_name"/></th> <th><spring:message code="group_name"/></th>
<th><spring:message code="group_type"/></th> <th><spring:message code="group_type"/></th>
<th><spring:message code="asn_no"/></th>
<th><spring:message code="desc"/></th> <th><spring:message code="desc"/></th>
<th><spring:message code="creator"/></th> <th><spring:message code="creator"/></th>
<th class="sort-column r.create_time"><spring:message code="config_time"/></th> <th class="sort-column r.create_time"><spring:message code="config_time"/></th>
@@ -239,6 +241,7 @@
<c:if test="${cfg.groupType==groupTypeC.itemCode }"><spring:message code="${groupTypeC.itemValue}"/></c:if> <c:if test="${cfg.groupType==groupTypeC.itemCode }"><spring:message code="${groupTypeC.itemValue}"/></c:if>
</c:forEach> </c:forEach>
</td> </td>
<td>${cfg.asnNo}</td>
<td title="${cfg.description }">${fns:abbr(cfg.description,20)}</td> <td title="${cfg.description }">${fns:abbr(cfg.description,20)}</td>
<td>${cfg.creatorName }</td> <td>${cfg.creatorName }</td>
<td><fmt:formatDate value="${cfg.createTime }" pattern="yyyy-MM-dd HH:mm:ss"/></td> <td><fmt:formatDate value="${cfg.createTime }" pattern="yyyy-MM-dd HH:mm:ss"/></td>

View File

@@ -924,7 +924,7 @@ var fillIp=function (ip){
} }
return ip; return ip;
} }
// snat复用地址池ip唯一
jQuery.validator.addMethod("ipUnique",function(value, element) { jQuery.validator.addMethod("ipUnique",function(value, element) {
var ctx=$(element).attr("ctx"); var ctx=$(element).attr("ctx");
var cfgId= $("[name='cfgId']").val(); var cfgId= $("[name='cfgId']").val();
@@ -941,4 +941,21 @@ jQuery.validator.addMethod("ipUnique",function(value, element) {
} }
}); });
return result; return result;
});
// 策略分组管理asn号唯一
jQuery.validator.addMethod("asnNoUnique",function(value, element) {
var ctx=$(element).attr("ctx");
var groupId= $("[name='groupId']").val();
var url = ctx+"/basics/policyGroup/checkAsnNo";
var result = true;
$.ajax({
type:'post',
async:false,
url: url,
data:{"groupId":groupId,"asnNo":value},
success:function(data){
result = data;
}
});
return result;
}); });

View File

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

View File

@@ -76,6 +76,7 @@
protocolPort:"端口大于0时必须选择TCP协议或者UDP协议", protocolPort:"端口大于0时必须选择TCP协议或者UDP协议",
protocolPort1:"只有tcp,udp协议端口号可以不为0,全部协议无限制", protocolPort1:"只有tcp,udp协议端口号可以不为0,全部协议无限制",
netAddress:"C类IP地址网络位必须相同", netAddress:"C类IP地址网络位必须相同",
ipUnique:"IP已存在" ipUnique:"IP已存在",
asnNoUnique:"ASN号已存在",
}); });
}(jQuery)); }(jQuery));