S/DNAT复用策略配置修改.

This commit is contained in:
zhangwq
2018-10-23 12:57:49 +08:00
parent 5d10d711bf
commit a4ff9ae493
9 changed files with 103 additions and 29 deletions

View File

@@ -144,6 +144,8 @@ public class IpMultiplexController extends CommonController {
@RequestMapping(value = {"/saveOrUpdateSnat"}) @RequestMapping(value = {"/saveOrUpdateSnat"})
public String saveOrUpdateSnat(String cfgName,RedirectAttributes model, IpPortCfg cfg) { public String saveOrUpdateSnat(String cfgName,RedirectAttributes model, IpPortCfg cfg) {
// 设置生效区域信息
groupAreaService.setAreaEffective(cfg);
this._saveOrUpdateIp(cfgName,model, cfg); this._saveOrUpdateIp(cfgName,model, cfg);
return "redirect:" + adminPath +"/manipulation/ipmulitiplex/snatPolicyList?functionId="+cfg.getFunctionId(); return "redirect:" + adminPath +"/manipulation/ipmulitiplex/snatPolicyList?functionId="+cfg.getFunctionId();
} }
@@ -191,6 +193,8 @@ public class IpMultiplexController extends CommonController {
@RequestMapping(value = {"/saveOrUpdateDnat"}) @RequestMapping(value = {"/saveOrUpdateDnat"})
public String saveOrUpdateDnat(String cfgName,RedirectAttributes model, IpPortCfg cfg) { public String saveOrUpdateDnat(String cfgName,RedirectAttributes model, IpPortCfg cfg) {
// 设置生效区域信息
groupAreaService.setAreaCodeByGroupId(cfg);
this._saveOrUpdateIp(cfgName,model, cfg); this._saveOrUpdateIp(cfgName,model, cfg);
return "redirect:" + adminPath +"/manipulation/ipmulitiplex/dnatPolicyList?functionId="+cfg.getFunctionId(); return "redirect:" + adminPath +"/manipulation/ipmulitiplex/dnatPolicyList?functionId="+cfg.getFunctionId();
} }

View File

@@ -17,6 +17,6 @@ public interface IpMultiplexPoolCfgDao extends CrudDao<IpMultiplexPoolCfg> {
IpMultiplexPoolCfg getCfgInfo(IpMultiplexPoolCfg cfg); IpMultiplexPoolCfg getCfgInfo(IpMultiplexPoolCfg cfg);
String getIspByGroupId(Integer groupId); List<IpMultiplexPoolCfg> getIspByGroupId(Integer groupId);
} }

View File

@@ -328,13 +328,13 @@
</trim> </trim>
</select> </select>
<select id="getIspByGroupId" resultType="java.lang.String"> <select id="getIspByGroupId" resultMap="IpMultiplexPoolCfgMap">
SELECT SELECT
area_effective_ids <include refid="IpMultiplexPoolCfgColumns"/>
FROM FROM
ip_multiplex_pool_cfg ip_multiplex_pool_cfg r
WHERE WHERE
policy_group = #{groupId} AND is_valid != -1 r.POLICY_GROUP = #{groupId} AND r.IS_VALID != -1
</select> </select>
</mapper> </mapper>

View File

@@ -85,21 +85,49 @@ public class GroupAreaService extends BaseService{
return policyGroups; return policyGroups;
} }
// SNAT策略 组织生效区域信息 public void setAreaCodeByGroupId(IpPortCfg cfg){
Integer areaCode = groupAreaDao.getAreaCodeByGroupId(cfg.getDnsStrategyId());
cfg.setAreaEffectiveIds(areaCode+"");
}
// snat策略 设置生效区域信息
public void setAreaEffective(IpPortCfg cfg) { public void setAreaEffective(IpPortCfg cfg) {
String areaEffectiveIds = ""; String areaEffectiveIds = "";
if(cfg.getDnsStrategyId() != 0){// 已选择分组 if(cfg.getDnsStrategyId() != 0){// 已选择分组
// 1.获取该分组的省份信息 // 1.设置省份信息
Integer areaCode = groupAreaDao.getAreaCodeByGroupId(cfg.getDnsStrategyId()); this.setAreaCodeByGroupId(cfg);
areaEffectiveIds = cfg.getAreaEffectiveIds();
// 2.获取该分组下的IP复用地址池配置的ISP // 2.获取该分组下的IP复用地址池配置的ISP
IpMultiplexPoolCfgService poolCfgService = SpringContextHolder.getBean(IpMultiplexPoolCfgService.class); IpMultiplexPoolCfgService poolCfgService = SpringContextHolder.getBean(IpMultiplexPoolCfgService.class);
String ispInfo = poolCfgService.getIspByGroupId(cfg.getDnsStrategyId()); List<IpMultiplexPoolCfg> cfgsList = poolCfgService.getIspByGroupId(cfg.getDnsStrategyId());
if(ispInfo.indexOf(":") != -1){ String newAreaEffectiveIds = "";
ispInfo = ispInfo.substring(ispInfo.indexOf(":")); List<String> 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); cfg.setAreaEffectiveIds(areaEffectiveIds);
} }
// IP复用地址池 设置省份信息 // IP复用地址池 设置省份信息

View File

@@ -181,7 +181,7 @@ public class IpMultiplexPoolCfgService extends BaseService{
* @param groupId * @param groupId
* @return * @return
*/ */
public String getIspByGroupId(Integer groupId){ public List<IpMultiplexPoolCfg> getIspByGroupId(Integer groupId){
return ipMultiplexStrategyDao.getIspByGroupId(groupId); return ipMultiplexStrategyDao.getIspByGroupId(groupId);
}; };
} }

View File

@@ -20,7 +20,7 @@ $(function(){
$(element).parents(".form-group").find("div[for='"+element.attr("name")+"']").append(error); $(element).parents(".form-group").find("div[for='"+element.attr("name")+"']").append(error);
}, },
submitHandler: function(form){ submitHandler: function(form){
//loading('<spring:message code="onloading"/>'); loading('<spring:message code="onloading"/>');
form.submit(); form.submit();
}, },
errorContainer: "#messageBox" errorContainer: "#messageBox"
@@ -51,7 +51,9 @@ $(function(){
<input type="hidden" name="cfgId" value="${_cfg.cfgId}"> <input type="hidden" name="cfgId" value="${_cfg.cfgId}">
<input type="hidden" name="compileId" value="${_cfg.compileId}"> <input type="hidden" name="compileId" value="${_cfg.compileId}">
<input type="hidden" name="functionId" value="${_cfg.functionId}"> <input type="hidden" name="functionId" value="${_cfg.functionId}">
<input type="hidden" name="isAreaEffective" value="0"> <input type="hidden" name="isAreaEffective" value="1">
<input type="hidden" name="areaType" value="1">
<c:if test="${fn:length(serviceList)==1}"> <c:if test="${fn:length(serviceList)==1}">
<c:forEach items="${serviceList}" var="service"> <c:forEach items="${serviceList}" var="service">
<input type="hidden" name="action" serviceId="${service.serviceId }" protocolId="${service.protocolId }" regionCode="${service.regionCode}" value="${service.action }"> <input type="hidden" name="action" serviceId="${service.serviceId }" protocolId="${service.protocolId }" regionCode="${service.regionCode}" value="${service.action }">
@@ -167,7 +169,7 @@ $(function(){
</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="ip"/></label> <label class="control-label col-md-3"><font color="red">*</font><spring:message code="server_ip"/></label>
<div class="col-md-6"> <div class="col-md-6">
<input class="form-control required ipCheck" type="text" name="destIpAddress" value="${_cfg.destIpAddress}"> <input class="form-control required ipCheck" type="text" name="destIpAddress" value="${_cfg.destIpAddress}">
</div> </div>
@@ -242,7 +244,7 @@ $(function(){
</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="port"/></label> <label class="control-label col-md-3"><font color="red">*</font><spring:message code="server_port"/></label>
<div class="col-md-6"> <div class="col-md-6">
<input class="form-control required portCheck" type="text" name="destPort" value="${_cfg.destPort}"> <input class="form-control required portCheck" type="text" name="destPort" value="${_cfg.destPort}">
</div> </div>

View File

@@ -274,8 +274,9 @@
<th class="sort-column a.compile_id" style="display: none"><spring:message code="cfg_id"/></th> <th class="sort-column a.compile_id" style="display: none"><spring:message code="cfg_id"/></th>
<th class="sort-column a.cfg_desc cfgDesc"><spring:message code="config_describe"/></th> <th class="sort-column a.cfg_desc cfgDesc"><spring:message code="config_describe"/></th>
<th class="sort-column a.action"><spring:message code="block_type"/></th> <th class="sort-column a.action"><spring:message code="block_type"/></th>
<th><spring:message code="ip"/></th> <th><spring:message code="group"/></th>
<th><spring:message code="port"/></th> <th><spring:message code="server_ip"/></th>
<th><spring:message code="server_port"/></th>
<th><spring:message code="protocol"/></th> <th><spring:message code="protocol"/></th>
<%-- <th><spring:message code="do_log"/></th> --%> <%-- <th><spring:message code="do_log"/></th> --%>
<%-- <th><spring:message code="whether_area_block"/></th> --%> <%-- <th><spring:message code="whether_area_block"/></th> --%>
@@ -309,6 +310,12 @@
</c:if> </c:if>
</c:forEach> </c:forEach>
</td> </td>
<td>
<a href="javascript:;" data-original-title="${indexCfg.groupName}"
class="tooltips" data-flag="false" data-html="true" data-placement="top">
${fns:abbr(indexCfg.groupName,20)}
</a>
</td>
<td>${indexCfg.destIpAddress }</td> <td>${indexCfg.destIpAddress }</td>
<td>${indexCfg.destPort }</td> <td>${indexCfg.destPort }</td>
<td> <td>

View File

@@ -11,16 +11,22 @@ $(function(){
$("#serviceId").val($(".action:checked").attr("serviceId")); $("#serviceId").val($(".action:checked").attr("serviceId"));
$("#protocolId").val($(".action:checked").attr("protocolId")); $("#protocolId").val($(".action:checked").attr("protocolId"));
} }
$(".action").on("change", function() { if($("#dnsStrategyId").val() == 0){
$("#serviceId").val($(this).attr("serviceId")); $("#areaEffectiveIds").parents(".form-group").removeClass("hidden");
$("#protocolId").val($(this).attr("protocolId")); }
$("#dnsStrategyId").on("change",function(){
if($(this).val() != 0){
$("#areaEffectiveIds").parents(".form-group").addClass("hidden");
}else{
$("#areaEffectiveIds").parents(".form-group").removeClass("hidden");
}
}); });
$("#ipCfgFrom").validate({ $("#ipCfgFrom").validate({
errorPlacement: function(error,element){ errorPlacement: function(error,element){
$(element).parents(".form-group").find("div[for='"+element.attr("name")+"']").append(error); $(element).parents(".form-group").find("div[for='"+element.attr("name")+"']").append(error);
}, },
submitHandler: function(form){ submitHandler: function(form){
//loading('<spring:message code="onloading"/>'); loading('<spring:message code="onloading"/>');
form.submit(); form.submit();
}, },
errorContainer: "#messageBox" errorContainer: "#messageBox"
@@ -51,7 +57,8 @@ $(function(){
<input type="hidden" name="cfgId" value="${_cfg.cfgId}"> <input type="hidden" name="cfgId" value="${_cfg.cfgId}">
<input type="hidden" name="compileId" value="${_cfg.compileId}"> <input type="hidden" name="compileId" value="${_cfg.compileId}">
<input type="hidden" name="functionId" value="${_cfg.functionId}"> <input type="hidden" name="functionId" value="${_cfg.functionId}">
<input type="hidden" name="isAreaEffective" value="0"> <input type="hidden" name="isAreaEffective" value="1">
<input type="hidden" name="areaType" value="1">
<c:if test="${fn:length(serviceList)==1}"> <c:if test="${fn:length(serviceList)==1}">
<c:forEach items="${serviceList}" var="service"> <c:forEach items="${serviceList}" var="service">
<input type="hidden" name="action" serviceId="${service.serviceId }" protocolId="${service.protocolId }" regionCode="${service.regionCode}" value="${service.action }"> <input type="hidden" name="action" serviceId="${service.serviceId }" protocolId="${service.protocolId }" regionCode="${service.regionCode}" value="${service.action }">
@@ -92,10 +99,10 @@ $(function(){
</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"/></label> <label class="control-label col-md-3"><spring:message code="group"/></label>
<div class="col-md-6"> <div class="col-md-6">
<select id="dnsStrategyId" name="dnsStrategyId" class="selectpicker show-tick form-control required"> <select id="dnsStrategyId" name="dnsStrategyId" class="selectpicker show-tick form-control">
<option value="" <c:if test="${empty _cfg.dnsStrategyId }">selected</c:if>><spring:message code="select"/></option> <option value="0" <c:if test="${empty _cfg.dnsStrategyId }">selected</c:if>><spring:message code="default_group"/></option>
<c:forEach items="${policyGroups }" var="policyGroup"> <c:forEach items="${policyGroups }" var="policyGroup">
<option value="${policyGroup.groupId}" <c:if test="${_cfg.dnsStrategyId==policyGroup.groupId }">selected</c:if>><spring:message code="${policyGroup.groupName}"/></option> <option value="${policyGroup.groupId}" <c:if test="${_cfg.dnsStrategyId==policyGroup.groupId }">selected</c:if>><spring:message code="${policyGroup.groupName}"/></option>
</c:forEach> </c:forEach>
@@ -158,7 +165,7 @@ $(function(){
</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="ip"/></label> <label class="control-label col-md-3"><font color="red">*</font><spring:message code="client_ip"/></label>
<div class="col-md-6"> <div class="col-md-6">
<input class="form-control required ipCheck" type="text" name="srcIpAddress" value="${_cfg.srcIpAddress}"> <input class="form-control required ipCheck" type="text" name="srcIpAddress" value="${_cfg.srcIpAddress}">
</div> </div>
@@ -264,6 +271,22 @@ $(function(){
<spring:message code="show_more" /> <spring:message code="show_more" />
</button> </button>
</div> --%> </div> --%>
<div class="row">
<div class="col-md-6">
<div class="form-group hidden">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="area"/></label>
<div class="col-md-6">
<select id="areaEffectiveIds" name="areaEffectiveIds" class="selectpicker show-tick form-control required" 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}" <c:if test="${_cfg.areaEffectiveIds == area.itemCode }">selected</c:if> >${area.itemValue}</option>
</c:forEach>
</select>
</div>
<div for="areaEffectiveIds"></div>
</div>
</div>
</div>
<br> <br>
</div> </div>
<div class="row ipmulitiplex"> <div class="row ipmulitiplex">

View File

@@ -274,7 +274,8 @@
<th class="sort-column a.compile_id" style="display: none"><spring:message code="cfg_id"/></th> <th class="sort-column a.compile_id" style="display: none"><spring:message code="cfg_id"/></th>
<th class="sort-column a.cfg_desc cfgDesc"><spring:message code="config_describe"/></th> <th class="sort-column a.cfg_desc cfgDesc"><spring:message code="config_describe"/></th>
<th class="sort-column a.action"><spring:message code="block_type"/></th> <th class="sort-column a.action"><spring:message code="block_type"/></th>
<th><spring:message code="ip"/></th> <th><spring:message code="group"/></th>
<th><spring:message code="client_ip"/></th>
<%-- <th><spring:message code="do_log"/></th> --%> <%-- <th><spring:message code="do_log"/></th> --%>
<%-- <th><spring:message code="whether_area_block"/></th> --%> <%-- <th><spring:message code="whether_area_block"/></th> --%>
<th><spring:message code="letter"/></th> <th><spring:message code="letter"/></th>
@@ -307,6 +308,15 @@
</c:if> </c:if>
</c:forEach> </c:forEach>
</td> </td>
<td>
<a href="javascript:;" data-original-title="${indexCfg.groupName}"
class="tooltips" data-flag="false" data-html="true" data-placement="top">
${fns:abbr(indexCfg.groupName,20)}
<c:if test="${empty indexCfg.groupName }">
<spring:message code="default_group"/>
</c:if>
</a>
</td>
<td>${indexCfg.srcIpAddress }</td> <td>${indexCfg.srcIpAddress }</td>
<%-- <td> <%-- <td>
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict"> <c:forEach items="${fns:getDictList('DO_LOG') }" var="dict">