From 18bfc299e4bf88e5936d18fedd3ba5bdb25e4a8b Mon Sep 17 00:00:00 2001 From: wangxin Date: Mon, 27 Aug 2018 21:10:13 +0800 Subject: [PATCH] =?UTF-8?q?(1)=E7=AD=96=E7=95=A5=E5=88=86=E7=BB=84?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=8C=E5=A2=9E=E5=8A=A0=E5=88=86=E7=A7=9F?= =?UTF-8?q?asn,id=20=E4=B8=BA4=20(2)=E7=AD=96=E7=95=A5=E5=88=86=E7=BB=84?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=97=B6=E5=88=A4=E6=96=ADASN=E5=88=86?= =?UTF-8?q?=E7=BB=84=E6=98=AF=E5=90=A6=E5=B7=B2=E7=BB=8F=E4=B8=8B=E5=8F=91?= =?UTF-8?q?=E8=BF=87=EF=BC=8C=E5=A6=82=E6=9E=9C=E5=B7=B2=E7=BB=8F=E4=B8=8B?= =?UTF-8?q?=E5=8F=91=E8=BF=87=EF=BC=8C=E5=88=99=E4=B8=8D=E8=83=BD=E5=88=A0?= =?UTF-8?q?=E9=99=A4=20(3)=E9=85=8D=E7=BD=AE=E5=88=86=E7=BB=84=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E4=B8=8D=E8=83=BD=E6=9B=B4=E6=96=B0=E5=88=86=E7=BB=84?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nis/domain/basics/PolicyGroupInfo.java | 7 +++ .../basics/PolicyGroupController.java | 21 ++++--- .../nis/web/dao/basics/PolicyGroupInfoDao.xml | 12 +++- .../dao/specific/SpecificServiceCfgDao.java | 1 + .../dao/specific/SpecificServiceCfgDao.xml | 3 + .../basics/PolicyGroupInfoService.java | 40 +++++++++++- .../resources/messages/message_en.properties | 3 +- .../messages/message_zh_CN.properties | 1 + src/main/resources/sql/about_asn.sql | 61 +++++++++++++++++++ src/main/resources/sql/字典修改记录.txt | 2 +- .../WEB-INF/views/basics/policyGroupForm.jsp | 8 +++ .../WEB-INF/views/basics/policyGroupList.jsp | 27 +++++++- 12 files changed, 166 insertions(+), 20 deletions(-) create mode 100644 src/main/resources/sql/about_asn.sql diff --git a/src/main/java/com/nis/domain/basics/PolicyGroupInfo.java b/src/main/java/com/nis/domain/basics/PolicyGroupInfo.java index ac0069e82..54c8d8a65 100644 --- a/src/main/java/com/nis/domain/basics/PolicyGroupInfo.java +++ b/src/main/java/com/nis/domain/basics/PolicyGroupInfo.java @@ -20,7 +20,14 @@ public class PolicyGroupInfo extends BaseCfg implements Seriali private Integer groupId; private String groupName; private Integer groupType; + private Integer serviceGroupId; + public Integer getServiceGroupId() { + return serviceGroupId; + } + public void setServiceGroupId(Integer serviceGroupId) { + this.serviceGroupId = serviceGroupId; + } public Integer getGroupId() { return groupId; } diff --git a/src/main/java/com/nis/web/controller/basics/PolicyGroupController.java b/src/main/java/com/nis/web/controller/basics/PolicyGroupController.java index 1d6c1a083..5edca6004 100644 --- a/src/main/java/com/nis/web/controller/basics/PolicyGroupController.java +++ b/src/main/java/com/nis/web/controller/basics/PolicyGroupController.java @@ -1,30 +1,24 @@ package com.nis.web.controller.basics; -import java.util.Collections; +import java.util.ArrayList; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import org.apache.shiro.authz.annotation.Logical; -import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.mvc.support.RedirectAttributes; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; import com.nis.domain.Page; import com.nis.domain.basics.PolicyGroupInfo; -import com.nis.domain.basics.ServiceDictInfo; -import com.nis.util.ConfigDictUtils; -import com.nis.util.Configurations; import com.nis.util.StringUtil; -import com.nis.util.StringUtils; import com.nis.web.controller.BaseController; /** * 协议分组 @@ -106,5 +100,12 @@ public class PolicyGroupController extends BaseController { } return "redirect:" + adminPath + "/basics/policyGroup/policyGroupList"; } - + @RequestMapping(value="ajaxServiceIdState",method=RequestMethod.POST) + @ResponseBody + public boolean ajaxServiceIdState(Model model,@RequestParam(required=true,value="serviceGroupIds")String serviceGroupIds){ + if(StringUtils.isNotBlank(serviceGroupIds)) { + return policyGroupInfoService.checkIsIssued(serviceGroupIds); + } + return false; + } } diff --git a/src/main/java/com/nis/web/dao/basics/PolicyGroupInfoDao.xml b/src/main/java/com/nis/web/dao/basics/PolicyGroupInfoDao.xml index 8a358dd1a..39fcc5589 100644 --- a/src/main/java/com/nis/web/dao/basics/PolicyGroupInfoDao.xml +++ b/src/main/java/com/nis/web/dao/basics/PolicyGroupInfoDao.xml @@ -11,10 +11,11 @@ + r.group_id,r.group_name,r.group_type,r.is_valid, - r.create_time,r.edit_time,r.creator_id,r.editor_id + r.create_time,r.edit_time,r.creator_id,r.editor_id,r.service_group_id @@ -78,13 +79,15 @@ CREATOR_ID, CREATE_TIME, GROUP_NAME, - GROUP_TYPE + GROUP_TYPE, + SERVICE_GROUP_ID )values ( 1, #{creatorId,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, #{groupName,jdbcType=VARCHAR}, - #{groupType,jdbcType=INTEGER} + #{groupType,jdbcType=INTEGER}, + #{serviceGroupId,jdbcType=INTEGER} ) @@ -112,6 +115,9 @@ and group_id = #{groupId,jdbcType=INTEGER} + + and service_group_id = #{serviceGroupId,jdbcType=INTEGER} + diff --git a/src/main/java/com/nis/web/dao/specific/SpecificServiceCfgDao.java b/src/main/java/com/nis/web/dao/specific/SpecificServiceCfgDao.java index 44d828b53..f07c11f82 100644 --- a/src/main/java/com/nis/web/dao/specific/SpecificServiceCfgDao.java +++ b/src/main/java/com/nis/web/dao/specific/SpecificServiceCfgDao.java @@ -43,6 +43,7 @@ public interface SpecificServiceCfgDao extends CrudDao { List getChildrenById(Integer specServiceId); ConfigGroupInfo getConfigGroupInfoByGroupId(Integer groupId); + Integer getIssuedConfigGroupInfoByGroupIds(String groupIds); Integer insertConfigGroupInfo(ConfigGroupInfo entity); diff --git a/src/main/java/com/nis/web/dao/specific/SpecificServiceCfgDao.xml b/src/main/java/com/nis/web/dao/specific/SpecificServiceCfgDao.xml index 782502ca3..9f317de66 100644 --- a/src/main/java/com/nis/web/dao/specific/SpecificServiceCfgDao.xml +++ b/src/main/java/com/nis/web/dao/specific/SpecificServiceCfgDao.xml @@ -215,6 +215,9 @@ select id,group_id,group_name,is_issued,insert_time,update_time,group_type from config_group_info c where c.group_id= #{groupId} + diff --git a/src/main/java/com/nis/web/service/basics/PolicyGroupInfoService.java b/src/main/java/com/nis/web/service/basics/PolicyGroupInfoService.java index 4ae54f599..ccae13991 100644 --- a/src/main/java/com/nis/web/service/basics/PolicyGroupInfoService.java +++ b/src/main/java/com/nis/web/service/basics/PolicyGroupInfoService.java @@ -9,8 +9,12 @@ import org.springframework.transaction.annotation.Transactional; import com.nis.domain.Page; import com.nis.domain.basics.PolicyGroupInfo; +import com.nis.domain.specific.ConfigGroupInfo; +import com.nis.exceptions.MaatConvertException; +import com.nis.util.ConfigServiceUtil; import com.nis.util.StringUtil; import com.nis.web.dao.basics.PolicyGroupInfoDao; +import com.nis.web.dao.specific.SpecificServiceCfgDao; import com.nis.web.security.UserUtils; import com.nis.web.service.BaseService; @@ -18,7 +22,9 @@ import com.nis.web.service.BaseService; public class PolicyGroupInfoService extends BaseService{ @Autowired - private PolicyGroupInfoDao policyGroupInfoDao; + private PolicyGroupInfoDao policyGroupInfoDao; + @Autowired + private SpecificServiceCfgDao specificServiceCfgDao; /** * @param page @@ -47,13 +53,34 @@ public class PolicyGroupInfoService extends BaseService{ } @Transactional(readOnly=false,rollbackFor=RuntimeException.class) - public void saveOrUpdate(PolicyGroupInfo entity){ + public void saveOrUpdate(PolicyGroupInfo entity) throws MaatConvertException{ entity.setIsValid(1); //新增 if(entity.getGroupId()==null){ Date createTime=new Date(); entity.setCreatorId(UserUtils.getUser().getId()); entity.setCreateTime(createTime); + //asn类型从综合服务获取groupId + if(4==entity.getGroupType().intValue()) { + int serviceGroupId=0; + List groupIds= ConfigServiceUtil.getId(2,1); + if(groupIds.size()>0) { + serviceGroupId=groupIds.get(0).intValue(); + }else { + throw new MaatConvertException("Get asn group id failed"); + } + entity.setServiceGroupId(serviceGroupId); + //新增协议分组 + ConfigGroupInfo group = specificServiceCfgDao.getConfigGroupInfoByGroupId(serviceGroupId); + if(group==null){ + group = new ConfigGroupInfo(); + group.setGroupId(serviceGroupId); + group.setGroupName(entity.getGroupName()); + group.setIsIssued(0); + group.setGroupType(entity.getGroupType()); + specificServiceCfgDao.insertConfigGroupInfo(group); + } + } policyGroupInfoDao.insert(entity); //修改 }else{ @@ -79,5 +106,12 @@ public class PolicyGroupInfoService extends BaseService{ } } } - + public boolean checkIsIssued(String groupIds) { + for(String groupId:groupIds.split(",")) { + Integer.parseInt(groupId); + } + Integer count=specificServiceCfgDao.getIssuedConfigGroupInfoByGroupIds(groupIds); + if(count>0) return true; + return false; + } } diff --git a/src/main/resources/messages/message_en.properties b/src/main/resources/messages/message_en.properties index f7401cd13..a61667d64 100644 --- a/src/main/resources/messages/message_en.properties +++ b/src/main/resources/messages/message_en.properties @@ -1122,4 +1122,5 @@ not_After_Time=Certificate End Time certificate_validity=Certificate Validity Period end_entity=End-entity Certificate header=Header -layer=Layer \ No newline at end of file +layer=Layer +can_not_delete_issued_asn_group=Can not delete issued ASN group \ No newline at end of file diff --git a/src/main/resources/messages/message_zh_CN.properties b/src/main/resources/messages/message_zh_CN.properties index a6d4e1d24..d3d46de79 100644 --- a/src/main/resources/messages/message_zh_CN.properties +++ b/src/main/resources/messages/message_zh_CN.properties @@ -1120,3 +1120,4 @@ not_after_time=\u8BC1\u4E66\u7EC8\u6B62\u65F6\u95F4 certificate_validity=\u8BC1\u4E66\u6709\u6548\u671F header=\u5173\u952E\u5B57 layer=\u5339\u914D\u533A\u57DF +can_not_delete_issued_asn_group=\u4E0D\u80FD\u5220\u9664\u5DF2\u7ECF\u4E0B\u53D1\u8FC7\u7684ASN\u5206\u7EC4 \ No newline at end of file diff --git a/src/main/resources/sql/about_asn.sql b/src/main/resources/sql/about_asn.sql new file mode 100644 index 000000000..e40f801f1 --- /dev/null +++ b/src/main/resources/sql/about_asn.sql @@ -0,0 +1,61 @@ +/* +SQLyog Professional v12.08 (64 bit) +MySQL - 10.2.14-MariaDB-log +********************************************************************* +*/ +/*!40101 SET NAMES utf8 */; +DROP TABLE IF EXISTS `asn_ip_cfg`; +CREATE TABLE `asn_ip_cfg` ( + `cfg_id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主键,自增', + `cfg_desc` VARCHAR(128) DEFAULT NULL, + `ip_type` INT(11) NOT NULL COMMENT 'IPV4=4,IPV6=6', + `direction` INT(11) NOT NULL COMMENT '0双向,1单向,默认缺省为双向。', + `protocol` INT(11) NOT NULL COMMENT '6表示tcp,17表示udp,0表示任意', + `protocol_id` INT(11) NOT NULL COMMENT '非0时,maat规范需写入通用IP配置表与通用协议类型配置表 此表固定写0', + `action` INT(11) NOT NULL COMMENT '1:阻断,2:监测, 5: FD 白名单,6:监测白名单,7: FD 监测都白名单,应与业务ID所代表的逻辑相匹配,8-灰名单', + `is_valid` INT(11) NOT NULL COMMENT '0无效,1有效,-1删除;1) 未审核时配置可删除;2) 审核通过,此字段置1;3) 取消审核通过,此字段置0', + `is_audit` INT(11) NOT NULL COMMENT '0未审核,1审核通过,2审核未通过,3取消审核通过;1) 审核未通过,配置可修改;2) 审核通过,配置不可删除,只能取消审核通过', + `creator_id` INT(11) NOT NULL COMMENT '取自sys_user.id', + `create_time` DATETIME NOT NULL, + `editor_id` INT(11) DEFAULT NULL COMMENT '取自sys_user.id', + `edit_time` DATETIME DEFAULT NULL, + `auditor_id` INT(11) DEFAULT NULL COMMENT '取自sys_user.id', + `audit_time` DATETIME DEFAULT NULL, + `service_id` INT(11) NOT NULL COMMENT '参考系统业务类型管理表', + `request_id` INT(11) NOT NULL COMMENT '取自request_info.id', + `compile_id` INT(11) NOT NULL COMMENT '取自服务接口返回的maat配置的编译id,配置初始入库时获取。', + `is_area_effective` INT(11) NOT NULL COMMENT '0否,1是', + `classify` VARCHAR(128) DEFAULT NULL COMMENT '分类id,多个用英文逗号分隔', + `attribute` VARCHAR(128) DEFAULT NULL COMMENT '性质id,多个用英文逗号分隔', + `lable` VARCHAR(128) DEFAULT NULL COMMENT '标签id,多个用英文逗号分隔', + `area_effective_ids` VARCHAR(1024) DEFAULT NULL COMMENT '多个英文逗号分隔', + `function_id` INT(11) DEFAULT NULL, + `cfg_region_code` INT(11) DEFAULT NULL, + `cfg_type` VARCHAR(64) DEFAULT NULL, + `ip_pattern` INT(11) NOT NULL, + `src_ip_address` VARCHAR(128) NOT NULL, + `port_pattern` INT (11) NOT NULL, + `src_port` VARCHAR (16) NOT NULL, + `dest_ip_address` VARCHAR (128) DEFAULT NULL, + `dest_port` VARCHAR(16) DEFAULT NULL, + `ratelimit` VARCHAR(10) DEFAULT NULL, + `dns_strategy_id` INT(11) DEFAULT NULL, + `IR_TYPE` INT (11) DEFAULT NULL, + `user_region1` VARCHAR(1024) DEFAULT '' COMMENT '预留自定义域1', + `user_region2` VARCHAR(1024) DEFAULT '' COMMENT '预留自定义域2', + `user_region3` VARCHAR(1024) DEFAULT '' COMMENT '预留自定义域3', + `user_region4` VARCHAR(1024) DEFAULT '' COMMENT '预留自定义域4', + `user_region5` VARCHAR(1024) DEFAULT '' COMMENT '预留自定义域5', + PRIMARY KEY (`cfg_id`) +) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; + + +#修改config_group_info comment, 新增asn说明 +ALTER TABLE config_group_info MODIFY group_type INT(11) NULL COMMENT '1:协议,2:内容,3:区域 ,4 asn' +#修改policy_group_info comment, 新增asn说明,并新增一列 service_group_id用于存放从综合服务获取的组号 +ALTER TABLE policy_group_info MODIFY group_type INT(2) NULL COMMENT '1:dns 2:ip复用, 4 asn' +ALTER TABLE policy_group_info ADD service_group_id INT(11) NULL COMMENT '从综合服务获取的组号,用于存放asn的组号.由于group_id是自增的主键,从综合服务获取的组号会与之冲突' +#GROUP_TYPE字典更新,增加一列ASN +SELECT * FROM sys_data_dictionary_item WHERE dictionary_id=(SELECT ID FROM sys_data_dictionary_name WHERE mark='GROUP_TYPE') +INSERT INTO sys_data_dictionary_item (item_code,item_value,item_desc,item_sort,STATUS,TYPE,dictionary_id) +VALUE(4,'ASN','ANS号',0,1,1,83) diff --git a/src/main/resources/sql/字典修改记录.txt b/src/main/resources/sql/字典修改记录.txt index 16b320e35..2d267ecda 100644 --- a/src/main/resources/sql/字典修改记录.txt +++ b/src/main/resources/sql/字典修改记录.txt @@ -9,4 +9,4 @@ \u6807\u8BC6 \u503C describe \u662F\u5426\u53EF\u7528 \u662F\u5426\u53EF\u7EF4\u62A4 0 no_log \u4E0D\u8BB0\u5F55\u65E5\u5FD7 \u662F \u662F 1 all_log \u8BB0\u5F55\u6240\u6709\u65E5\u5FD7 \u662F \u662F -2 framework_log \u53EA\u8BB0\u5F55\u7ED3\u6784\u5316\u65E5\u5FD7 \ No newline at end of file +2 framework_log \u53EA\u8BB0\u5F55\u7ED3\u6784\u5316\u65E5\u5FD7 diff --git a/src/main/webapp/WEB-INF/views/basics/policyGroupForm.jsp b/src/main/webapp/WEB-INF/views/basics/policyGroupForm.jsp index ec9e5fa6f..947c17348 100644 --- a/src/main/webapp/WEB-INF/views/basics/policyGroupForm.jsp +++ b/src/main/webapp/WEB-INF/views/basics/policyGroupForm.jsp @@ -5,6 +5,14 @@ <spring:message code="${cfgName}"></spring:message> @@ -188,7 +211,7 @@ - +