into develop

Conflicts:
	src/main/java/com/nis/web/service/BaseService.java
	asn group中修改组织变更和asn no变更,不重新获取groupId逻辑
	ip addr 的asn 修改为手动输入,后台check
	app ip和asn ip配置取消,取消分组中最后一条配置时,失效整个compile,并且修改groupId的状态为为无效。
	无效的asn group删除时,删除其下的所有asn ip
This commit is contained in:
duandongmei
2019-01-18 11:14:05 +06:00
70 changed files with 871 additions and 3911 deletions

View File

@@ -510,114 +510,138 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
List<AsnGroupInfo> auditAsnGroupList=new ArrayList<>();
SqlSessionFactory sqlSessionFactory=SpringContextHolder.getBean(SqlSessionFactory.class);
final SqlSession batchSqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false);
Integer serviceId=0;
try{
int issuedNum=asnIpCfgs.size();
for(int index = 0; index < asnIpCfgs.size();index++){
AsnIpCfg t = asnIpCfgs.get(index);
BaseIpCfg ipCfg=new BaseIpCfg();
BeanUtils.copyProperties(t, ipCfg);
ipCfg.setTableName(AsnIpCfg.getTablename());
((IpCfgDao) batchSqlSession.getMapper(IpCfgDao.class)).audit(ipCfg);
}
batchSqlSession.commit();
AsnGroupInfo asnGroupInfo=new AsnGroupInfo();
asnGroupInfo.setAsnId(asn);
asnGroupInfo=asnGroupInfoDao.getInfoByAsnNo(asnGroupInfo);
Integer groupId=asnGroupInfo.getGroupId();
MaatCfg maatCfg = new MaatCfg();
List<MaatCfg> configCompileList = new ArrayList();
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();
if(isValid==Constants.VALID_YES) {//审核通过
if(asnGroupInfo.getIsValid()==0) {//ans组未下发过下发编译配置
asnGroupInfo.setIsValid(1);
asnGroupInfo.setEditorId(UserUtils.getUser().getId());
asnGroupInfo.setEditTime(new Date());
asnGroupInfo.setIssuedIPs(issuedNum+0L);
asnGroupInfoDao.updateValid(asnGroupInfo);
maatCfg.initDefaultValue();
ToMaatBean maatBean = new ToMaatBean();
//group
GroupCfg groupCfg=new GroupCfg();
groupCfg.setCompileId(asnGroupInfo.getCompileId());
groupCfg.setGroupId(groupId);
groupCfg.setIsValid(Constants.VALID_YES);
//asnGroupId标记为公共组
groupCfg.setIsCommonGroup(1);
groupCfg.setAuditTime(asnIpCfgs.get(0).getAuditTime());
groupRelationList.add(groupCfg);
BeanUtils.copyProperties(asnIpCfgs.get(0), maatCfg);
ipRegionList.addAll(groupReuseCfgAddRemoveConvert(asnIpCfgs,Constants.VALID_YES,groupId));
maatCfg.setCompileId(asnGroupInfo.getCompileId());
maatCfg.setAction(asnIpCfgs.get(0).getAction());
maatCfg.setAuditTime(asnIpCfgs.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(isValid);
// 设置ASN自定义域
String userRegion = "ASN_ID=" + asnIpCfgs.get(0).getUserRegion1();
maatCfg.setUserRegion(userRegion);
configCompileList.add(maatCfg);
maatBean.setConfigCompileList(configCompileList);
maatBean.setAuditTime(asnIpCfgs.get(0).getAuditTime());
maatBean.setCreatorName(asnIpCfgs.get(0).getCurrentUser().getName());
maatBean.setVersion(Constants.MAAT_VERSION);
maatBean.setOpAction(Constants.INSERT_ACTION);
// 调用服务接口下发配置数据
String json = gsonToJson(maatBean);
logger.info("ASN IP配置下发配置参数" + json);
// 调用服务接口下发配置
ToMaatResult result = ConfigServiceUtil.postMaatCfg(json);
logger.info("ASN IP配置下发响应信息" + result.getMsg());
}else if(asnGroupInfo.getIsValid()==1){//已经下发过,走分组复用
asnGroupInfo.setIssuedIPs(issuedNum+0l);
asnGroupInfoDao.update(asnGroupInfo);
asnIPRegionSendToMaat(asnIpCfgs,isValid,Constants.OPACTION_POST);
}else {
throw new RuntimeException("asnGroupInfo isValid value is "+asnGroupInfo.getIsValid());
}
}else if(isValid==Constants.VALID_NO) {//取消审核通过
asnGroupInfo.setIssuedIPs(0L-issuedNum);
asnGroupInfoDao.update(asnGroupInfo);
//已经下发过的,调用分组复用配置删除接口
GroupReuseAddBean maatBean = new GroupReuseAddBean();
List<GroupReuseCfg> groupReuseList=new ArrayList<>();
GroupReuseCfg groupReuseCfg=new GroupReuseCfg();
ipRegionList.addAll(groupReuseCfgAddRemoveConvert(asnIpCfgs,Constants.VALID_NO,groupId));
groupReuseCfg.setIpRegionList(ipRegionList);
groupReuseCfg.setStrRegionList(strRegionList);
groupReuseCfg.setNumRegionList(numRegionList);
groupReuseList.add(groupReuseCfg);
maatBean.setGroupReuseCfgList(groupReuseList);
maatBean.setAuditTime(asnIpCfgs.get(0).getAuditTime());
maatBean.setCreatorName(asnIpCfgs.get(0).getCurrentUser().getName());
maatBean.setVersion(Constants.MAAT_VERSION);
maatBean.setOpAction(Constants.UPDATE_ACTION);
//调用服务接口下发配置数据
String json=gsonToJson(maatBean);
logger.info("ASN IP域删除配置下发配置参数"+json);
//调用服务接口下发配置
ToMaatResult result = ConfigServiceUtil.auditCommonGroupRegionSources(json,3);
logger.info("ASN IP域删除配置响应信息"+result.getMsg());
//如果一个asn组下没有IP了修改有效状态
if(hasValidAsnIp(asn)) {
asnGroupInfo.setIsValid(0);
asnGroupInfo.setEditorId(UserUtils.getUser().getId());
asnGroupInfo.setEditTime(new Date());
asnGroupInfoDao.updateValid(asnGroupInfo);
if(!StringUtil.isEmpty(asnIpCfgs)){
serviceId=asnIpCfgs.get(0).getServiceId();
int issuedNum=asnIpCfgs.size();
for(int index = 0; index < asnIpCfgs.size();index++){
AsnIpCfg t = asnIpCfgs.get(index);
BaseIpCfg ipCfg=new BaseIpCfg();
BeanUtils.copyProperties(t, ipCfg);
ipCfg.setTableName(AsnIpCfg.getTablename());
((IpCfgDao) batchSqlSession.getMapper(IpCfgDao.class)).audit(ipCfg);
}
batchSqlSession.commit();
AsnGroupInfo asnGroupInfo=new AsnGroupInfo();
asnGroupInfo.setAsnId(asn);
asnGroupInfo=asnGroupInfoDao.getInfoByAsnNo(asnGroupInfo);
Integer groupId=asnGroupInfo.getGroupId();
MaatCfg maatCfg = new MaatCfg();
List<MaatCfg> configCompileList = new ArrayList();
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();
if(isValid==Constants.VALID_YES) {//审核通过
if(asnGroupInfo.getIsValid()==0) {//ans组未下发过下发编译配置
asnGroupInfo.setIsValid(1);
asnGroupInfo.setEditorId(UserUtils.getUser().getId());
asnGroupInfo.setEditTime(new Date());
asnGroupInfo.setIssuedIPs(issuedNum+0L);
asnGroupInfoDao.updateValid(asnGroupInfo);
maatCfg.initDefaultValue();
ToMaatBean maatBean = new ToMaatBean();
//group
GroupCfg groupCfg=new GroupCfg();
groupCfg.setCompileId(asnGroupInfo.getCompileId());
groupCfg.setGroupId(groupId);
groupCfg.setIsValid(Constants.VALID_YES);
//asnGroupId标记为公共组
groupCfg.setIsCommonGroup(1);
groupCfg.setAuditTime(asnIpCfgs.get(0).getAuditTime());
groupRelationList.add(groupCfg);
BeanUtils.copyProperties(asnIpCfgs.get(0), maatCfg);
ipRegionList.addAll(groupReuseCfgAddRemoveConvert(asnIpCfgs,Constants.VALID_YES,groupId));
maatCfg.setCompileId(asnGroupInfo.getCompileId());
maatCfg.setAction(asnIpCfgs.get(0).getAction());
maatCfg.setAuditTime(asnIpCfgs.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(isValid);
// 设置ASN自定义域
String userRegion = "ASN_ID=" + asnIpCfgs.get(0).getUserRegion1();
maatCfg.setUserRegion(userRegion);
configCompileList.add(maatCfg);
maatBean.setConfigCompileList(configCompileList);
maatBean.setAuditTime(asnIpCfgs.get(0).getAuditTime());
maatBean.setCreatorName(asnIpCfgs.get(0).getCurrentUser().getName());
maatBean.setVersion(Constants.MAAT_VERSION);
maatBean.setOpAction(Constants.INSERT_ACTION);
// 调用服务接口下发配置数据
String json = gsonToJson(maatBean);
logger.info("ASN IP配置下发配置参数" + json);
// 调用服务接口下发配置
ToMaatResult result = ConfigServiceUtil.postMaatCfg(json);
logger.info("ASN IP配置下发响应信息" + result.getMsg());
}else if(asnGroupInfo.getIsValid()==1){//已经下发过,走分组复用
asnGroupInfo.setIssuedIPs(issuedNum+0l);
asnGroupInfoDao.update(asnGroupInfo);
asnIPRegionSendToMaat(asnIpCfgs,isValid,Constants.OPACTION_POST);
}else {
throw new RuntimeException("asnGroupInfo isValid value is "+asnGroupInfo.getIsValid());
}
}else if(isValid==Constants.VALID_NO) {//取消审核通过
asnGroupInfo.setIssuedIPs(0L-issuedNum);
asnGroupInfoDao.update(asnGroupInfo);
//如果一个asn组下没有IP了修改有效状态,并且删除
if(hasValidAsnIp(asn)) {
//已经下发过的,调用分组复用配置删除接口
GroupReuseAddBean maatBean = new GroupReuseAddBean();
List<GroupReuseCfg> groupReuseList=new ArrayList<>();
GroupReuseCfg groupReuseCfg=new GroupReuseCfg();
ipRegionList.addAll(groupReuseCfgAddRemoveConvert(asnIpCfgs,Constants.VALID_NO,groupId));
groupReuseCfg.setIpRegionList(ipRegionList);
groupReuseCfg.setStrRegionList(strRegionList);
groupReuseCfg.setNumRegionList(numRegionList);
groupReuseList.add(groupReuseCfg);
maatBean.setGroupReuseCfgList(groupReuseList);
maatBean.setAuditTime(asnIpCfgs.get(0).getAuditTime());
maatBean.setCreatorName(asnIpCfgs.get(0).getCurrentUser().getName());
maatBean.setVersion(Constants.MAAT_VERSION);
maatBean.setOpAction(Constants.UPDATE_ACTION);
//调用服务接口下发配置数据
String json=gsonToJson(maatBean);
logger.info("ASN IP域删除配置下发配置参数"+json);
//调用服务接口下发配置
ToMaatResult result = ConfigServiceUtil.auditCommonGroupRegionSources(json,3);
logger.info("ASN IP域删除配置响应信息"+result.getMsg());
}else{
asnGroupInfo.setIsValid(0);
asnGroupInfo.setEditorId(UserUtils.getUser().getId());
asnGroupInfo.setEditTime(new Date());
asnGroupInfoDao.updateValid(asnGroupInfo);
//asn group下没有asn ip之后需要失效整个compileId并且不保留公共组信息
ToMaatBean maatBean = new ToMaatBean();
maatCfg.setCompileId(asnGroupInfo.getCompileId());
maatCfg.setServiceId(serviceId);
maatCfg.setIsValid(0);//无效
//configCompileList.add(addKeepGroupList(maatCfg,entity));
configCompileList.add(maatCfg);
maatBean.setConfigCompileList(configCompileList);
maatBean.setAuditTime(new Date());
maatBean.setCreatorName(UserUtils.getUser().getName());
maatBean.setVersion(Constants.MAAT_VERSION);
maatBean.setOpAction(Constants.UPDATE_ACTION);
//调用服务接口取消配置
String json=gsonToJson(maatBean);
logger.info("asn ip配置下发配置参数"+json);
//调用服务接口下发配置
ToMaatResult result = ConfigServiceUtil.put(json,1);
logger.info("asn ip配置取消配置响应信息"+result.getMsg());
}
}
}
}finally {
if(batchSqlSession != null){