asn 相关修改提交

(1)asn_ip_cfg增加四列
(2)新增asn_group_info表
(3)asn ip菜单移动到policy object下,新增审核审计菜单
(4)asn ip导入修改,适应新的需求放弃了使用AsnCache,直接从数据库查
(5)asn ip加入审核流程
(6)Packet IP选择asn时,改为选中一个组织,审核下发的配置为as号字符串域
(7)asn ip 新增业务新增function_service_dict字典,serviceId为400
This commit is contained in:
wangxin
2019-01-04 18:28:57 +06:00
parent 429b1841f1
commit 85507b5a55
44 changed files with 2596 additions and 767 deletions

View File

@@ -11,6 +11,7 @@ import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import org.apache.commons.lang3.StringEscapeUtils;
import org.apache.ibatis.session.ExecutorType;
@@ -41,6 +42,7 @@ import com.nis.domain.FunctionRegionDict;
import com.nis.domain.FunctionServiceDict;
import com.nis.domain.SysRole;
import com.nis.domain.SysUser;
import com.nis.domain.basics.AsnGroupInfo;
import com.nis.domain.basics.AsnIpCfg;
import com.nis.domain.callback.InlineIp;
import com.nis.domain.callback.NtcDnsResStrategy;
@@ -79,6 +81,7 @@ import com.nis.domain.maat.ToMaatBean;
import com.nis.domain.maat.ToMaatResult;
import com.nis.domain.specific.ConfigGroupInfo;
import com.nis.domain.specific.SpecificServiceCfg;
//import com.nis.util.AsnCacheUtils;
import com.nis.util.ConfigServiceUtil;
import com.nis.util.Configurations;
import com.nis.util.Constants;
@@ -87,6 +90,7 @@ import com.nis.util.IpUtil;
import com.nis.util.Reflections;
import com.nis.util.StringUtil;
import com.nis.util.StringUtils;
import com.nis.web.dao.basics.AsnGroupInfoDao;
import com.nis.web.dao.basics.AsnIpCfgDao;
import com.nis.web.dao.configuration.AppCfgDao;
import com.nis.web.dao.configuration.AppMultiFeatureCfgDao;
@@ -1600,6 +1604,7 @@ public abstract class BaseService {
List<? extends BaseCfg> list,List<CfgIndexInfo> cfgIndexInfos,
List<AppPolicyCfg> appPolicyCfgs,
List<AppFeatureIndex> appFeatureCfgs,
List<Map<Long,AsnGroupInfo>> asnNoMaps,
boolean send){
if(list!=null&&list.size()>0) {
String type=null;
@@ -1635,7 +1640,7 @@ public abstract class BaseService {
}
}else if("AsnIpCfg".equals(type)) {
List<AsnIpCfg> listPage = (List<AsnIpCfg>) list;
this.saveAsnIpBatch(listPage);
this.saveAsnIpBatch(listPage,asnNoMaps,send);
}else if("AppComplexFeature".equals(type)) {// APP Payload
List<AppComplexFeatureCfg> listPage = (List<AppComplexFeatureCfg>) list;
this.saveAppComplexFeatureBatch(regionDict,serviceDict,listPage,send);
@@ -1767,19 +1772,107 @@ public abstract class BaseService {
}
}
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void saveAsnIpBatch(List<AsnIpCfg> cfgs){
public void saveAsnIpBatch(List<AsnIpCfg> cfgs,List<Map<Long,AsnGroupInfo>> asnNoMaps,boolean send){
logger.warn("Start to save IP,size:"+cfgs.size());
long start=System.currentTimeMillis();
SqlSessionFactory sqlSessionFactory=SpringContextHolder.getBean(SqlSessionFactory.class);
SqlSession batchSqlSession = null;
//需要通过新增域接口新增的ip集合
List<AsnIpCfg> toAddRegionAsnIpCfgs=Lists.newArrayList();
Map<Long,List<AsnIpCfg>> toSendFirstAsnIpCfgs=Maps.newHashMap();
// AsnCacheUtils.init(true);
try{
batchSqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false);
for(AsnIpCfg cfg:cfgs) {
((AsnIpCfgDao) batchSqlSession.getMapper(AsnIpCfgDao.class)).insert(cfg);
if(Constants.VALID_YES==cfg.getIsValid().intValue()) {
toAddRegionAsnIpCfgs.add(cfg);
if(send) {
AsnGroupInfo group=asnNoMaps.get(0).get(Long.parseLong(cfg.getUserRegion1()));
if(group==null) {
group=asnNoMaps.get(1).get(Long.parseLong(cfg.getUserRegion1()));
}
//AsnGroupInfo group=AsnCacheUtils.get(Long.parseLong(cfg.getUserRegion1()));
if(group!=null&&group.getIsValid().intValue()==1) {
toAddRegionAsnIpCfgs.add(cfg);
}else if(group!=null) {
if(toSendFirstAsnIpCfgs.containsKey(group.getAsnId())) {
toSendFirstAsnIpCfgs.get(group.getAsnId()).add(cfg);
}else {
toSendFirstAsnIpCfgs.put(group.getAsnId(), Lists.newArrayList());
toSendFirstAsnIpCfgs.get(group.getAsnId()).add(cfg);
}
}
}
}
if(send) {
if(toAddRegionAsnIpCfgs.size()>0) {
asnIPRegionSendToMaat(toAddRegionAsnIpCfgs,Constants.VALID_YES);
}
if(toSendFirstAsnIpCfgs.size()>0) {
List<MaatCfg> configCompileList = new ArrayList();
ToMaatBean maatBean = new ToMaatBean();
for(Entry<Long, List<AsnIpCfg>> info:toSendFirstAsnIpCfgs.entrySet()) {
AsnGroupInfo group=asnNoMaps.get(0).get(info.getKey());
if(group==null) {
group=asnNoMaps.get(1).get(info.getKey());
}
//AsnGroupInfo group=AsnCacheUtils.get(info.getKey());
List<GroupCfg> groupRelationList = new ArrayList();
List<IpCfg> ipRegionList = new ArrayList();
List<StringCfg> strRegionList = new ArrayList();
List<NumBoundaryCfg> numRegionList = new ArrayList();
List<DigestCfg> digestRegionList = new ArrayList();
List<IpCfg> areaIpRegionList = new ArrayList();
MaatCfg maatCfg = new MaatCfg();
maatCfg.initDefaultValue();
//group
GroupCfg groupCfg=new GroupCfg();
groupCfg.setCompileId(group.getCompileId());
groupCfg.setGroupId(group.getGroupId());
groupCfg.setIsValid(Constants.VALID_YES);
groupCfg.setAuditTime(info.getValue().get(0).getAuditTime());
groupRelationList.add(groupCfg);
BeanUtils.copyProperties(info.getValue().get(0), maatCfg);
ipRegionList.addAll(groupReuseCfgAddRemoveConvert(info.getValue(),Constants.VALID_YES,group.getGroupId()));
maatCfg.setCompileId(group.getCompileId());
maatCfg.setAction(info.getValue().get(0).getAction());
maatCfg.setAuditTime(info.getValue().get(0).getAuditTime());
maatCfg.setIpRegionList(ipRegionList);
maatCfg.setStrRegionList(strRegionList);
maatCfg.setNumRegionList(numRegionList);
maatCfg.setDigestRegionList(digestRegionList);
maatCfg.setGroupRelationList(groupRelationList);
maatCfg.setGroupNum(groupRelationList.size());
maatCfg.setAreaIpRegionList(areaIpRegionList);
maatCfg.setIsValid(info.getValue().get(0).getIsValid());
// 设置自定义域
String userRegion = "ASN_ID=" + info.getKey();
maatCfg.setUserRegion(userRegion);
configCompileList.add(maatCfg);
group.setIsValid(1);
((AsnGroupInfoDao) batchSqlSession.getMapper(AsnGroupInfoDao.class)).updateValid(group);
}
maatBean.setConfigCompileList(configCompileList);
maatBean.setAuditTime(cfgs.get(0).getAuditTime());
maatBean.setCreatorName(cfgs.get(0).getCurrentUser().getName());
maatBean.setVersion(Constants.MAAT_VERSION);
maatBean.setOpAction(Constants.INSERT_ACTION);
// 调用服务接口下发配置数据
String json = gsonToJson(maatBean);
if(configCompileList.size()<=100) {
logger.info("asn IP配置下发配置参数" + json);
}else {
logger.info("asn IP配置下发配置数量" + configCompileList.size());
}
// 调用服务接口下发配置
ToMaatResult result = ConfigServiceUtil.postMaatCfg(json);
logger.info("asn IP配置下发响应信息" + result.getMsg());
}
}
batchSqlSession.commit();
@@ -1790,9 +1883,6 @@ public abstract class BaseService {
}
long end=System.currentTimeMillis();
logger.warn("Save IP finish,cost:"+(end-start));
if(toAddRegionAsnIpCfgs.size()>0) {
asnIPRegionSendToMaat(toAddRegionAsnIpCfgs,Constants.VALID_YES);
}
cfgs.clear();
toAddRegionAsnIpCfgs.clear();
cfgs=null;