(1)asn导入加入组织国家,asn号验证,组织国家不能为空,asn号不能为两个组织所有

(2)新增asn_keyword_cfg表,用于保存并下发有效且含审核通过asn ip的 asn号
(3)asn 导入去除条数限制
(4)页面asn select选项还是会影响加载页面速度,现在改为input
(5)asn_group_info 修改org_group_id为issued_ips,用于保存审核通过的asn ip
(6)分组复用url配置文件补全v1
This commit is contained in:
wangxin
2019-01-06 11:24:49 +08:00
parent 9979bb26b2
commit f56a0fe09a
37 changed files with 968 additions and 374 deletions

View File

@@ -102,6 +102,7 @@ import com.nis.web.dao.configuration.StringCfgDao;
import com.nis.web.dao.specific.ConfigGroupInfoDao;
import com.nis.web.dao.specific.SpecificServiceCfgDao;
import com.nis.web.security.UserUtils;
import com.nis.web.service.basics.AsnGroupInfoService;
import com.nis.web.service.basics.SysDictInfoService;
/**
@@ -1780,7 +1781,7 @@ public abstract class BaseService {
//需要通过新增域接口新增的ip集合
List<AsnIpCfg> toAddRegionAsnIpCfgs=Lists.newArrayList();
Map<Long,List<AsnIpCfg>> toSendFirstAsnIpCfgs=Maps.newHashMap();
Map<Long,Integer> asnGroupAddRegions=Maps.newHashMap();
// AsnCacheUtils.init(true);
try{
batchSqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false);
@@ -1793,6 +1794,12 @@ public abstract class BaseService {
}
//AsnGroupInfo group=AsnCacheUtils.get(Long.parseLong(cfg.getUserRegion1()));
if(group!=null&&group.getIsValid().intValue()==1) {
if(asnGroupAddRegions.containsKey(group.getAsnId())) {
int count=asnGroupAddRegions.get(group.getAsnId());
asnGroupAddRegions.put(group.getAsnId(), count+1);
}else {
asnGroupAddRegions.put(group.getAsnId(), 1);
}
toAddRegionAsnIpCfgs.add(cfg);
}else if(group!=null) {
if(toSendFirstAsnIpCfgs.containsKey(group.getAsnId())) {
@@ -1809,12 +1816,17 @@ public abstract class BaseService {
}
if(send) {
if(toAddRegionAsnIpCfgs.size()>0) {
for(Entry<Long,Integer> asnGroupAddRegion:asnGroupAddRegions.entrySet()) {
AsnGroupInfo group=new AsnGroupInfo();
group.setAsnId(asnGroupAddRegion.getKey());
group.setIssuedIPs(asnGroupAddRegion.getValue()+0l);
((AsnGroupInfoDao) batchSqlSession.getMapper(AsnGroupInfoDao.class)).modifyIssuedIp(group);;
}
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) {
@@ -1855,6 +1867,7 @@ public abstract class BaseService {
configCompileList.add(maatCfg);
group.setIsValid(1);
group.setIssuedIPs(info.getValue().size()+0L);
((AsnGroupInfoDao) batchSqlSession.getMapper(AsnGroupInfoDao.class)).updateValid(group);
}
maatBean.setConfigCompileList(configCompileList);

View File

@@ -1,5 +1,6 @@
package com.nis.web.service.basics;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@@ -9,14 +10,21 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.nis.domain.FunctionServiceDict;
import com.nis.domain.Page;
import com.nis.domain.basics.AsnGroupInfo;
import com.nis.domain.maat.MaatCfg;
import com.nis.domain.maat.ToMaatBean;
import com.nis.domain.maat.ToMaatResult;
import com.nis.domain.specific.ConfigGroupInfo;
import com.nis.exceptions.MaatConvertException;
import com.nis.util.ConfigServiceUtil;
import com.nis.util.Constants;
import com.nis.util.DictUtils;
import com.nis.util.StringUtil;
import com.nis.web.dao.basics.AsnGroupInfoDao;
import com.nis.web.dao.basics.AsnIpCfgDao;
import com.nis.web.dao.configuration.StringCfgDao;
import com.nis.web.dao.specific.ConfigGroupInfoDao;
import com.nis.web.security.UserUtils;
import com.nis.web.service.BaseService;
@@ -58,8 +66,10 @@ public class AsnGroupInfoService extends BaseService{
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void saveOrUpdate(AsnGroupInfo entity) throws MaatConvertException{
//asn类型从综合服务获取groupId
String org=entity.getOrganization().trim();
String country=entity.getCountry().trim();
String org=entity.getOrganization().trim().toUpperCase();
String country=entity.getCountry().trim().toUpperCase();
entity.setOrganization(org);
entity.setCountry(country);
int groupId=0;
//获取组织
ConfigGroupInfo configGroupInfo=configGroupInfoDao.getAsnGroupByName(org);
@@ -72,7 +82,7 @@ public class AsnGroupInfoService extends BaseService{
throw new MaatConvertException("Get asn group id failed");
}
configGroupInfo=new ConfigGroupInfo();
configGroupInfo.setGroupName(org);
configGroupInfo.setGroupName(org.toUpperCase());
configGroupInfo.setIsIssued(0);
configGroupInfo.setGroupType(4);
configGroupInfo.setGroupId(groupIds.get(1));
@@ -103,33 +113,79 @@ public class AsnGroupInfoService extends BaseService{
asnGroupInfoDao.insert(entity);
//修改
}else{
long id=entity.getId();
AsnGroupInfo group=asnGroupInfoDao.getById(id);
int count=asnGroupInfoDao.getCountGroupInfoByName(group.getOrganization());
if(count==1&&!group.getOrganization().equalsIgnoreCase(entity.getOrganization())) {
configGroupInfoDao.delAsnGroup(group.getOrganization());
}
ConfigGroupInfo configGroupInfo1=configGroupInfoDao.getAsnGroupByName(entity.getOrganization());
if(configGroupInfo1==null) {
List<Integer> groupIds= ConfigServiceUtil.getId(2,2);
if(groupIds.size()>0) {
groupId=groupIds.get(0).intValue();
}else {
throw new MaatConvertException("Get asn group id failed");
}
configGroupInfo1=new ConfigGroupInfo();
configGroupInfo1.setGroupName(entity.getOrganization().toUpperCase());
configGroupInfo1.setIsIssued(0);
configGroupInfo1.setGroupType(4);
configGroupInfo1.setGroupId(groupIds.get(1));
configGroupInfo1.setInsertTime(new Date());
configGroupInfoDao.insertConfigGroupInfo(configGroupInfo1);
}
Date editTime=new Date();
entity.setEditorId(UserUtils.getUser().getId());
entity.setEditTime(editTime);
entity.setGroupId(groupId);
asnGroupInfoDao.update(entity);
asnIpCfgDao.updateAsn(String.valueOf(entity.getAsnId()),entity.getOrganization(),entity.getCountry(),entity.getDetail());
}
}
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void delete(String ids,String asnIds){
if(!StringUtil.isEmpty(ids)){
List<FunctionServiceDict> dicts=DictUtils.getFunctionServiceDictList(600);
int result=0;
do {
result=asnIpCfgDao.deleteByAsnId(asnIds);
}while(result>0);
for (String id : ids.split(",")) {
if(!StringUtil.isEmpty(id)){
AsnGroupInfo entity=asnGroupInfoDao.getById(Integer.parseInt(id));
int valid=entity.getIsValid();
entity.setIsValid(-1);
entity.setId(Long.parseLong(id));
asnGroupInfoDao.updateValid(entity);
if(asnGroupInfoDao.getCountGroupInfoByName(entity.getOrganization())==0) {
configGroupInfoDao.delAsnGroup(entity.getOrganization());
}
//取消下发过的编译
if(valid==1) {
ToMaatBean maatBean = new ToMaatBean();
MaatCfg maatCfg = new MaatCfg();
List<MaatCfg> configCompileList = new ArrayList();
maatCfg.setCompileId(entity.getCompileId());
maatCfg.setServiceId(dicts.get(0).getServiceId());
maatCfg.setIsValid(0);//无效
configCompileList.add(maatCfg);
maatBean.setConfigCompileList(configCompileList);
maatBean.setAuditTime(entity.getAuditTime());
maatBean.setCreatorName(entity.getCurrentUser().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());
}
}
}
int result=0;
do {
result=asnIpCfgDao.deleteByAsnId(asnIds);
}while(result>0);
}
}
@@ -143,6 +199,18 @@ public class AsnGroupInfoService extends BaseService{
}
return false;
}
public boolean checkIpAddrs(String groupIds) {
StringBuffer buffer=new StringBuffer();
for(String groupId:groupIds.split(",")) {
Integer.parseInt(groupId);
buffer.append("'AS"+groupId+"',");
}
List<Integer> hasIpList=asnIpCfgDao.hasASNIpAddrs(buffer.substring(0, buffer.toString().length()-1));
if(hasIpList!=null&&hasIpList.size()>0) {
return true;
}
return false;
}
public AsnGroupInfo getInfoByAsnNo(AsnGroupInfo AsnGroupInfo){
return asnGroupInfoDao.getInfoByAsnNo(AsnGroupInfo);

View File

@@ -17,6 +17,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.beust.jcommander.internal.Lists;
import com.google.common.collect.Maps;
import com.nis.domain.Page;
import com.nis.domain.basics.AsnGroupInfo;
import com.nis.domain.basics.AsnIpCfg;
@@ -102,9 +103,13 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
Date editTime=new Date();
entity.setEditTime(editTime);
entity.setEditorId(entity.getCurrentUser().getId());
String org=entity.getOrganization().trim();
String country=entity.getCountry().trim();
String detail=entity.getDetail().trim();
String userRegion1=entity.getUserRegion1();
AsnGroupInfo groupInfo=new AsnGroupInfo();
groupInfo.setAsnId(Long.parseLong(userRegion1));
groupInfo=asnGroupInfoDao.getInfoByAsnNo(groupInfo);
String org=groupInfo.getOrganization().trim();
String country=groupInfo.getCountry().trim();
String detail=groupInfo.getDetail().trim();
entity.setOrganization(org);
entity.setCountry(country);
entity.setDetail(detail);
@@ -230,9 +235,23 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void delAndSend(List<AsnIpCfg> entities) {
StringBuilder sb=new StringBuilder();
Map<Long,Integer> asnDelCounts=Maps.newHashMap();
for(AsnIpCfg ip:entities) {
sb.append(ip.getCfgId());
sb.append(",");
if(asnDelCounts.containsKey(Long.parseLong(ip.getUserRegion1()))) {
int count=asnDelCounts.get(Long.parseLong(ip.getUserRegion1()))+1;
asnDelCounts.put(Long.parseLong(ip.getUserRegion1()), count);
}else {
asnDelCounts.put(Long.parseLong(ip.getUserRegion1()), 1);
}
}
//跟新asn组的审核通过IP数量
for(Entry<Long,Integer> asnDelCount: asnDelCounts.entrySet()) {
AsnGroupInfo info=new AsnGroupInfo();
info.setAsnId(asnDelCount.getKey());
info.setIssuedIPs(0l-asnDelCount.getValue());
asnGroupInfoDao.modifyIssuedIp(info);
}
sb.deleteCharAt(sb.toString().lastIndexOf(","));
asnIpCfgDao.delete(sb.toString());
@@ -242,12 +261,16 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void saveAsnIpCfg(CfgIndexInfo entity) {
Date createTime=new Date();
//asn号
String userRegion1=entity.getUserRegion1();
AsnGroupInfo asnGroupInfo=new AsnGroupInfo();
asnGroupInfo.setAsnId(Long.parseLong(userRegion1));
asnGroupInfo=asnGroupInfoDao.getInfoByAsnNo(asnGroupInfo);
//组织去除首尾空格
entity.setOrganization(entity.getOrganization().trim());
entity.setCountry(entity.getCountry().trim());
entity.setDetail(entity.getDetail().trim());
entity.setOrganization(asnGroupInfo.getOrganization().trim());
entity.setCountry(asnGroupInfo.getCountry().trim());
entity.setDetail(asnGroupInfo.getDetail().trim());
ConfigGroupInfo configGroupInfo=configGroupInfoDao.getAsnGroupByName(entity.getOrganization());
AsnGroupInfo asnGroupInfo=asnGroupInfoDao.getGroupIdByNameAndASNId(entity.getOrganization(), entity.getCountry(), Long.parseLong(entity.getUserRegion1()));
Integer orgGroup=0;
Integer compileId=0;
Integer asnIdGroup=0;
@@ -257,42 +280,12 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
configGroupInfo.setGroupType(4);
configGroupInfo.setInsertTime(new Date());
configGroupInfo.setIsIssued(0);
if(asnGroupInfo==null) {
List<Integer> groupIdList=ConfigServiceUtil.getId(2, 2);
orgGroup=groupIdList.get(0);
asnIdGroup=groupIdList.get(1);
}else {
List<Integer> groupIdList=ConfigServiceUtil.getId(2, 1);
orgGroup=groupIdList.get(0);
configGroupInfo.setGroupId(orgGroup);
asnIdGroup=asnGroupInfo.getGroupId();
}
List<Integer> groupIdList=ConfigServiceUtil.getId(2, 2);
orgGroup=groupIdList.get(0);
configGroupInfo.setGroupId(orgGroup);
configGroupInfoDao.insertConfigGroupInfo(configGroupInfo);
}else {
orgGroup=configGroupInfo.getGroupId();
if(asnGroupInfo==null) {
List<Integer> groupIdList=ConfigServiceUtil.getId(2, 1);
asnIdGroup=groupIdList.get(0);
}else {
asnIdGroup=asnGroupInfo.getGroupId();
}
}
if(asnGroupInfo==null) {
asnGroupInfo=new AsnGroupInfo();
asnGroupInfo.setOrganization(entity.getOrganization());
asnGroupInfo.setCountry(entity.getCountry());
asnGroupInfo.setDetail(entity.getDetail());
asnGroupInfo.setIsValid(0);
asnGroupInfo.setCreateTime(new Date());
asnGroupInfo.setCreatorId(entity.getCurrentUser().getId());
asnGroupInfo.setAsnId(Long.parseLong(entity.getUserRegion1()));
asnGroupInfo.setGroupId(asnIdGroup);
List<Integer> compileIds=ConfigServiceUtil.getId(1, 1);
asnGroupInfo.setCompileId(compileIds.get(0));
asnGroupInfoDao.insert(asnGroupInfo);
}
asnIdGroup=asnGroupInfo.getGroupId();
entity.setAsnIpGroup(asnIdGroup);
entity.setCompileId(asnGroupInfo.getCompileId());
List<Integer> idList=ConfigServiceUtil.getId(3, entity.getAsnIpCfgs().size());
@@ -384,6 +377,12 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
}
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void deleteByAsnNo(List<Long> asnNoList) {
// for(Long asnNo:asnNoList) {
// int result=0;
// do {
// result=asnIpCfgDao.deleteByAsnId(String.valueOf(asnNo));
// }while(result>0);
// }
int pointsDataLimit = 1000;//限制条数
Integer size = asnNoList.size();
if(pointsDataLimit<size){
@@ -427,9 +426,9 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
asnNoList.clear();
}
}
public void ajaxDeleteAsnIp(String ids) {
/*public void ajaxDeleteAsnIp(String ids) {
asnIpCfgDao.ajaxDeleteAsnIp(ids);
}
}*/
/**
*
* auditIpBatch(非IP类配置用审核区域IP)
@@ -448,6 +447,7 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
//data.entrySet().stream().forEach( enrty->{
Long asn=enrty.getKey();//ans group 的group id
List<AsnIpCfg> asnIpCfgs=enrty.getValue();
int issuedNum=asnIpCfgs.size();
for(int index = 0; index < asnIpCfgs.size();index++){
AsnIpCfg t = asnIpCfgs.get(index);
BaseIpCfg ipCfg=new BaseIpCfg();
@@ -474,6 +474,7 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
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();
@@ -513,11 +514,15 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
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);
}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<>();
@@ -546,6 +551,7 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
// asnGroupInfo.setEditTime(new Date());
// asnGroupInfoDao.updateValid(asnGroupInfo);
//}
}else {
throw new RuntimeException("isValid value is "+isValid);
}
@@ -557,4 +563,9 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
}
}
}
public AsnIpCfg getOne(AsnIpCfg cfg) {
// TODO Auto-generated method stub
return asnIpCfgDao.getOne(cfg);
}
}

View File

@@ -18,7 +18,9 @@ import com.nis.domain.Page;
import com.nis.domain.basics.AsnGroupInfo;
import com.nis.domain.callback.InlineIp;
import com.nis.domain.configuration.AreaIpCfg;
import com.nis.domain.configuration.AsnKeywordCfg;
import com.nis.domain.configuration.BaseIpCfg;
import com.nis.domain.configuration.BaseStringCfg;
import com.nis.domain.configuration.CfgIndexInfo;
import com.nis.domain.configuration.IpPortCfg;
import com.nis.domain.configuration.NtcSubscribeIdCfg;
@@ -153,7 +155,38 @@ public class IpCfgService extends CrudService<IpCfgDao,BaseIpCfg> {
areaIpCfgDao.saveAreaIpCfg(cfg);
}
}
//保存asn组织信息 字符串域信息
if(StringUtils.isNotBlank(entity.getUserRegion4())){
List<FunctionRegionDict> functionRegionDicts=DictUtils.getFunctionRegionDictList(entity.getFunctionId());
FunctionRegionDict regionDict=null;
for(FunctionRegionDict dict:functionRegionDicts) {
if("asn".equals(dict.getConfigServiceType())) {
regionDict=dict;
}
}
if(regionDict!=null) {
String org=entity.getUserRegion4();
List<AsnGroupInfo> asnGroupInfos=asnGroupInfoDao.getValidConfigGroupInfoByName(org);
for(AsnGroupInfo info:asnGroupInfos) {
BaseStringCfg<AsnKeywordCfg> asnKeywordCfg=new AsnKeywordCfg();
BeanUtils.copyProperties(entity, asnKeywordCfg,new String[]{"cfgId","cfgDesc","cfgRegionCode","cfgType","userRegion1","userRegion2","userRegion3"});
asnKeywordCfg.setTableName(AsnKeywordCfg.getTablename());
asnKeywordCfg.setCfgKeywords("AS"+info.getAsnId());
asnKeywordCfg.setExprType(0);
asnKeywordCfg.setMatchMethod(3);
asnKeywordCfg.setExType("0");
asnKeywordCfg.setIsHexbin(0);
asnKeywordCfg.setCfgRegionCode(regionDict.getConfigRegionCode());
asnKeywordCfg.setCfgType(regionDict.getConfigRegionValue());
asnKeywordCfg.setCreateTime(entity.getCreateTime());
asnKeywordCfg.setCreatorId(UserUtils.getUser().getId());
asnKeywordCfg.setFunctionId(regionDict.getFunctionId());
asnKeywordCfg.setCompileId(compileId);
stringCfgDao.saveStringCfgBatch(asnKeywordCfg);
}
}
}
}else{
entity.setEditTime(new Date());
entity.setEditorId(entity.getCurrentUser().getId());
@@ -189,6 +222,42 @@ public class IpCfgService extends CrudService<IpCfgDao,BaseIpCfg> {
areaIpCfgDao.saveAreaIpCfg(cfg);
}
}
//保存asn组织信息 字符串域信息
if(StringUtils.isNotBlank(entity.getUserRegion4())){
List<FunctionRegionDict> functionRegionDicts=DictUtils.getFunctionRegionDictList(entity.getFunctionId());
FunctionRegionDict regionDict=null;
for(FunctionRegionDict dict:functionRegionDicts) {
if("asn".equals(dict.getConfigServiceType())) {
regionDict=dict;
}
}
if(regionDict!=null) {
//先删除asn keyword
String org=entity.getUserRegion4();
stringCfgDao.deleteAsnKeyword(entity);
List<AsnGroupInfo> asnGroupInfos=asnGroupInfoDao.getValidConfigGroupInfoByName(org);
for(AsnGroupInfo info:asnGroupInfos) {
BaseStringCfg<AsnKeywordCfg> asnKeywordCfg=new AsnKeywordCfg();
BeanUtils.copyProperties(entity, asnKeywordCfg,new String[]{"cfgId","cfgDesc","cfgRegionCode","cfgType","userRegion1","userRegion2","userRegion3"});
asnKeywordCfg.setTableName(AsnKeywordCfg.getTablename());
asnKeywordCfg.setCfgKeywords("AS"+info.getAsnId());
asnKeywordCfg.setExprType(0);
asnKeywordCfg.setMatchMethod(3);
asnKeywordCfg.setExType("0");
asnKeywordCfg.setIsHexbin(0);
asnKeywordCfg.setCfgRegionCode(regionDict.getConfigRegionCode());
asnKeywordCfg.setCfgType(regionDict.getConfigRegionValue());
asnKeywordCfg.setCreateTime(entity.getCreateTime());
asnKeywordCfg.setCreatorId(UserUtils.getUser().getId());
asnKeywordCfg.setFunctionId(regionDict.getFunctionId());
asnKeywordCfg.setEditorId(entity.getEditorId());
asnKeywordCfg.setEditTime(entity.getEditTime());
asnKeywordCfg.setCompileId(entity.getCompileId());
stringCfgDao.saveStringCfgBatch(asnKeywordCfg);
}
}
}
}
}
public void updateIpCfgValid(Integer isValid,String ids,Integer functionId){
@@ -217,6 +286,13 @@ public class IpCfgService extends CrudService<IpCfgDao,BaseIpCfg> {
cfg.setTableName(NtcSubscribeIdCfg.getTablename());
ipCfgDao.updateCfgValid(cfg);
}
if(entity.getAsnKeywords()!=null && entity.getAsnKeywords().size()>0)
{
AsnKeywordCfg cfg = new AsnKeywordCfg();
BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"});
cfg.setTableName(AsnKeywordCfg.getTablename());
ipCfgDao.updateCfgValid(cfg);
}
//保存区域IP信息
if(entity.getAreaCfg()!=null && entity.getAreaCfg().size()>0){
AreaIpCfg cfg = new AreaIpCfg();
@@ -507,6 +583,26 @@ public class IpCfgService extends CrudService<IpCfgDao,BaseIpCfg> {
strRegionList=map.get("dstList");
}
}
if(entity.getAsnKeywords()!=null && entity.getAsnKeywords().size()>0){
String regionValue=entity.getAsnKeywords().get(0).getCfgType();
if(regionValue!=null) {
for(FunctionRegionDict region:dictList) {
if(regionValue.equals(region.getConfigRegionValue())) {
maatType=region.getIsMaat();
break;
}
}
}
AsnKeywordCfg cfg = new AsnKeywordCfg();
BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"});
cfg.setTableName(AsnKeywordCfg.getTablename());
ipCfgDao.auditCfg(cfg);
if(isAudit==1&&maatType==Constants.MAAT_TYPE){
Map<String,List> map = cfgConvert(strRegionList,entity.getAsnKeywords(),2,entity,groupRelationList);
groupRelationList=map.get("groupList");
strRegionList=map.get("dstList");
}
}
//保存区域IP信息
List<AreaIpCfg> areaIpCfgList=areaIpCfgDao.getByCompileId(entity.getCompileId());
if(!StringUtil.isEmpty(areaIpCfgList)){
@@ -638,56 +734,73 @@ public class IpCfgService extends CrudService<IpCfgDao,BaseIpCfg> {
* @param ids cfgId
* @param functionId
*/
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void auditAsnCfg(CfgIndexInfo entity,Integer isAudit){
entity.setTableName(CfgIndexInfo.getTablename());
entity.setIsAudit(isAudit);
ipCfgDao.auditCfg(entity);
ToMaatBean maatBean = new ToMaatBean();
List<MaatCfg> configCompileList = new ArrayList<>();
if(isAudit==Constants.AUDIT_YES) {
AsnGroupInfo asnGroupInfo=new AsnGroupInfo();
asnGroupInfo.setOrganization(entity.getUserRegion4());
asnGroupInfo.setIsValid(1);
List<AsnGroupInfo> groups=asnGroupInfoDao.findAsnGroupInfoList(asnGroupInfo);
if(groups!=null&&groups.size()>0) {
// if(configGroupInfo.getIsIssued()==1) {//复用,只下编译跟分组
// for(AsnGroupInfo group:groups) {
// MaatCfg maatCfg = new MaatCfg();
// 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.initDefaultValue();
// BeanUtils.copyProperties(entity, maatCfg);
// maatCfg.setAction(entity.getAction());
// maatCfg.setAuditTime(entity.getAuditTime());
// maatCfg.setIpRegionList(ipRegionList);
// maatCfg.setStrRegionList(strRegionList);
// maatCfg.setNumRegionList(numRegionList);
// maatCfg.setDigestRegionList(digestRegionList);
// maatCfg.setGroupRelationList(groupRelationList);
// maatCfg.setAreaIpRegionList(areaIpRegionList);
// maatCfg.setIsValid(entity.getIsValid());
// //group
// GroupCfg groupCfg=new GroupCfg();
// groupCfg.setCompileId(entity.getCompileId());
// groupCfg.setGroupId(Integer.parseInt(entity.getUserRegion4()));
// groupCfg.setIsValid(Constants.VALID_YES);
// groupCfg.setAuditTime(entity.getAuditTime());
// groupRelationList.add(groupCfg);
// maatCfg.setGroupNum(groupRelationList.size());
// if(group.getAsnId()!=null) {
// maatCfg.setUserRegion("ASN_ID="+group.getAsnId());
// @Transactional(readOnly=false,rollbackFor=RuntimeException.class)
// @Deprecated
// public void auditAsnCfg(CfgIndexInfo entity,Integer isAudit){
// entity.setTableName(CfgIndexInfo.getTablename());
// entity.setIsAudit(isAudit);
// ipCfgDao.auditCfg(entity);
// ToMaatBean maatBean = new ToMaatBean();
//
// List<MaatCfg> configCompileList = new ArrayList<>();
//
// if(isAudit==Constants.AUDIT_YES) {
// List<AsnKeywordCfg> asnKeywordCfgs=stringCfgDao.findAsnKeywordCfgList(entity);
// if(asnKeywordCfgs!=null&&asnKeywordCfgs.size()>0) {
// MaatCfg maatCfg = new MaatCfg();
// 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.initDefaultValue();
// BeanUtils.copyProperties(entity, maatCfg);
// maatCfg.setAction(entity.getAction());
// maatCfg.setAuditTime(entity.getAuditTime());
//
// maatCfg.setNumRegionList(numRegionList);
// maatCfg.setDigestRegionList(digestRegionList);
// maatCfg.setGroupRelationList(groupRelationList);
// maatCfg.setAreaIpRegionList(areaIpRegionList);
// maatCfg.setIsValid(entity.getIsValid());
// //group
// List<Integer> groupIds=ConfigServiceUtil.getId(2, 1);
// GroupCfg groupCfg=new GroupCfg();
// groupCfg.setCompileId(entity.getCompileId());
// //groupCfg.setGroupId(Integer.parseInt(entity.getUserRegion4()));
// groupCfg.setGroupId(groupIds.get(0));
// groupCfg.setIsValid(Constants.VALID_YES);
// groupCfg.setAuditTime(entity.getAuditTime());
// groupRelationList.add(groupCfg);
// maatCfg.setGroupNum(groupRelationList.size());
// maatCfg.setIpRegionList(ipRegionList);
// List<Integer> regions=ConfigServiceUtil.getId(3, asnKeywordCfgs.size());
// int index=0;
// List<FunctionRegionDict> functionRegionDicts=DictUtils.getFunctionRegionDictList(entity.getFunctionId());
// String cfgType=null;
// for(FunctionRegionDict dict:functionRegionDicts) {
// if("asn".equals(dict.getConfigServiceType())) {
// cfgType=dict.getCfgType();
// }
// configCompileList.add(maatCfg);
// }
//
//
// for(AsnKeywordCfg keyword:asnKeywordCfgs) {
// StringCfg cfg=new StringCfg();
// BeanUtils.copyProperties(keyword, cfg);
// cfg.setRegionId(index);
// //需要根据文档
// //cfg.setCfgType(StringUtils.isBlank(cfgType)?"NTC_ASN_NUMBER":cfgType);
// cfg.setGroupId(groupIds.get(0));
// cfg.setAuditTime(entity.getAuditTime());
// cfg.setIsValid(entity.getIsValid());
// cfg.setRegionId(regions.get(index));
// //cfg.setGroupId(Integer.parseInt(entity.getUserRegion4()));
// strRegionList.add(cfg);
// index++;
// }
// maatCfg.setStrRegionList(strRegionList);
// configCompileList.add(maatCfg);
// maatBean.setConfigCompileList(configCompileList);
// maatBean.setAuditTime(entity.getAuditTime());
// maatBean.setCreatorName(entity.getCurrentUser().getName());
@@ -696,104 +809,35 @@ public class IpCfgService extends CrudService<IpCfgDao,BaseIpCfg> {
//
// //调用服务接口下发配置数据
// String json=gsonToJson(maatBean);
// logger.info("ipaddr asn组复用配置下发配置参数:"+json);
// logger.info("ipaddr asn配置下发配置参数"+json);
// //调用服务接口下发配置
// ToMaatResult result = ConfigServiceUtil.postMaatCfg(json);
// logger.info("ipaddr asn组复用配置下发响应信息:"+result.getMsg());
// }else {//首次下发
MaatCfg maatCfg = new MaatCfg();
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.initDefaultValue();
BeanUtils.copyProperties(entity, maatCfg);
maatCfg.setAction(entity.getAction());
maatCfg.setAuditTime(entity.getAuditTime());
maatCfg.setNumRegionList(numRegionList);
maatCfg.setDigestRegionList(digestRegionList);
maatCfg.setGroupRelationList(groupRelationList);
maatCfg.setAreaIpRegionList(areaIpRegionList);
maatCfg.setIsValid(entity.getIsValid());
//group
List<Integer> groupIds=ConfigServiceUtil.getId(2, 1);
GroupCfg groupCfg=new GroupCfg();
groupCfg.setCompileId(entity.getCompileId());
//groupCfg.setGroupId(Integer.parseInt(entity.getUserRegion4()));
groupCfg.setGroupId(groupIds.get(0));
groupCfg.setIsValid(Constants.VALID_YES);
groupCfg.setAuditTime(entity.getAuditTime());
groupRelationList.add(groupCfg);
maatCfg.setGroupNum(groupRelationList.size());
maatCfg.setIpRegionList(ipRegionList);
List<Integer> regions=ConfigServiceUtil.getId(3, groups.size());
int index=0;
List<FunctionRegionDict> functionRegionDicts=DictUtils.getFunctionRegionDictList(entity.getFunctionId());
String cfgType=null;
for(FunctionRegionDict dict:functionRegionDicts) {
if("asn".equals(dict.getConfigServiceType())) {
cfgType=dict.getCfgType();
}
}
for(AsnGroupInfo group:groups) {
StringCfg cfg=new StringCfg();
cfg.setRegionId(index);
cfg.setCfgKeywords("AS"+group.getAsnId());
cfg.setExprType(0);
cfg.setIsHexbin(0);
cfg.setMatchMethod(3);
//需要根据文档
cfg.setCfgType(StringUtils.isBlank(cfgType)?"NTC_ASN_NUMBER":cfgType);
cfg.setGroupId(groupIds.get(0));
cfg.setAuditTime(entity.getAuditTime());
cfg.setIsValid(entity.getIsValid());
cfg.setRegionId(regions.get(index));
//cfg.setGroupId(Integer.parseInt(entity.getUserRegion4()));
strRegionList.add(cfg);
index++;
}
maatCfg.setStrRegionList(strRegionList);
configCompileList.add(maatCfg);
maatBean.setConfigCompileList(configCompileList);
maatBean.setAuditTime(entity.getAuditTime());
maatBean.setCreatorName(entity.getCurrentUser().getName());
maatBean.setVersion(Constants.MAAT_VERSION);
maatBean.setOpAction(Constants.INSERT_ACTION);
//调用服务接口下发配置数据
String json=gsonToJson(maatBean);
logger.info("ipaddr asn配置下发配置参数"+json);
//调用服务接口下发配置
ToMaatResult result = ConfigServiceUtil.postMaatCfg(json);
logger.info("ipaddr asn配置下发响应信息"+result.getMsg());
// }
}
}else if(isAudit==Constants.AUDIT_NOT_YES) {//取消审核通过
MaatCfg maatCfg = new MaatCfg();
maatCfg.setCompileId(entity.getCompileId());
maatCfg.setServiceId(entity.getServiceId());
maatCfg.setIsValid(0);//无效
configCompileList.add(maatCfg);
maatBean.setConfigCompileList(configCompileList);
maatBean.setAuditTime(entity.getAuditTime());
maatBean.setCreatorName(entity.getCurrentUser().getName());
maatBean.setVersion(Constants.MAAT_VERSION);
maatBean.setOpAction(Constants.UPDATE_ACTION);
//调用服务接口取消配置
String json=gsonToJson(maatBean);
logger.info("ipaddr asn取消下发配置参数"+json);
//调用服务接口下发配置
ToMaatResult result = ConfigServiceUtil.put(json,1);
logger.info("ipaddr asn取消配置响应信息"+result.getMsg());
}else {
throw new RuntimeException("unknown isAudit value "+isAudit);
}
}
// logger.info("ipaddr asn配置下发响应信息"+result.getMsg());
//// }
// }
//
// }else if(isAudit==Constants.AUDIT_NOT_YES) {//取消审核通过
// MaatCfg maatCfg = new MaatCfg();
// maatCfg.setCompileId(entity.getCompileId());
// maatCfg.setServiceId(entity.getServiceId());
// maatCfg.setIsValid(0);//无效
// configCompileList.add(maatCfg);
// maatBean.setConfigCompileList(configCompileList);
// maatBean.setAuditTime(entity.getAuditTime());
// maatBean.setCreatorName(entity.getCurrentUser().getName());
// maatBean.setVersion(Constants.MAAT_VERSION);
// maatBean.setOpAction(Constants.UPDATE_ACTION);
// //调用服务接口取消配置
// String json=gsonToJson(maatBean);
// logger.info("ipaddr asn取消下发配置参数"+json);
// //调用服务接口下发配置
// ToMaatResult result = ConfigServiceUtil.put(json,1);
// logger.info("ipaddr asn取消配置响应信息"+result.getMsg());
// }else {
// throw new RuntimeException("unknown isAudit value "+isAudit);
// }
//
// }
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void deleteIp(String ids,String compileIds,int functionId){
if(StringUtils.isNotBlank(compileIds)){
@@ -862,8 +906,8 @@ public class IpCfgService extends CrudService<IpCfgDao,BaseIpCfg> {
entity.setIpPortList(ipPortList);
entity.setNtcSubscribeIdCfgList(subscribeIdList);
if(StringUtils.isNotBlank(entity.getUserRegion4())) {
List<AsnGroupInfo> infos=asnGroupInfoDao.getValidConfigGroupInfoByName((entity.getUserRegion4().trim()));
entity.setAsnGroups(infos);
List<AsnKeywordCfg> asnKeywordCfgs=stringCfgDao.findAsnKeywordCfgList(entity);
entity.setAsnKeywords(asnKeywordCfgs);
}
return entity;
}
@@ -871,8 +915,8 @@ public class IpCfgService extends CrudService<IpCfgDao,BaseIpCfg> {
List<IpPortCfg> ipPortList = ipCfgDao.getIpPortList(entity);
entity.setIpPortList(ipPortList);
if(StringUtils.isNotBlank(entity.getUserRegion4())) {
List<AsnGroupInfo> infos=asnGroupInfoDao.getValidConfigGroupInfoByName(entity.getUserRegion4().trim());
entity.setAsnGroups(infos);
List<AsnKeywordCfg> asnKeywordCfgs=stringCfgDao.findAsnKeywordCfgList(entity);
entity.setAsnKeywords(asnKeywordCfgs);
}
return entity;
}

View File

@@ -27,13 +27,16 @@ public class ConfigGroupInfoService extends BaseService{
public ConfigGroupInfo getConfigGroupInfoByGroupId(Integer groupId) {
return configGroupInfoDao.getConfigGroupInfoByGroupId(groupId);
}
public ConfigGroupInfo getInfoByAsnNo(Long asnNo) {
/*public ConfigGroupInfo getInfoByAsnNo(Long asnNo) {
return configGroupInfoDao.getInfoByAsnNo(asnNo);
}
}*/
public Integer getIssuedConfigGroupInfoByGroupIds(String groupIds) {
return configGroupInfoDao.getIssuedConfigGroupInfoByGroupIds(groupIds);
}
public List<ConfigGroupInfo> findAllList(ConfigGroupInfo entity){
return configGroupInfoDao.findAllListByGroupInfo(entity);
}
public ConfigGroupInfo getAsnOrganization(String groupName){
return configGroupInfoDao.getAsnGroupByName(groupName);
}
}