优化asn ip导入,减少循环次数,减少调用综合服务接口次数

This commit is contained in:
wangxin
2018-11-05 19:03:15 +08:00
parent 0607a68a38
commit b64d26e7f6
3 changed files with 20 additions and 17 deletions

View File

@@ -3352,6 +3352,7 @@ public class BaseController {
if (regionDict.getRegionType().equals(1)) {// IP if (regionDict.getRegionType().equals(1)) {// IP
if(regionDict.getFunctionId().intValue()==600) {//ans ip if(regionDict.getFunctionId().intValue()==600) {//ans ip
Map<String,List<AsnIpCfg>> asnIpCfgs=new HashMap<>(); Map<String,List<AsnIpCfg>> asnIpCfgs=new HashMap<>();
int total=ipPortCfgs.size();
for (BaseIpCfg cfg : ipPortCfgs) { for (BaseIpCfg cfg : ipPortCfgs) {
AsnIpCfg _cfg=new AsnIpCfg(); AsnIpCfg _cfg=new AsnIpCfg();
BeanUtils.copyProperties(cfg, _cfg); BeanUtils.copyProperties(cfg, _cfg);
@@ -3381,7 +3382,7 @@ public class BaseController {
} }
} }
ipPortCfgs.clear(); ipPortCfgs.clear();
asnIpCfgService.saveAsnIpBatch(asnIpCfgs); asnIpCfgService.saveAsnIpBatch(asnIpCfgs,total);
}else { }else {
List<Integer> compileIds=Lists.newArrayList(); List<Integer> compileIds=Lists.newArrayList();
List<Integer> regionIds=Lists.newArrayList(); List<Integer> regionIds=Lists.newArrayList();

View File

@@ -60,15 +60,6 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
} }
@Transactional(readOnly=false,rollbackFor=RuntimeException.class) @Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void save(List<AsnIpCfg> entitys){ public void save(List<AsnIpCfg> entitys){
Date createTime=new Date();
List<Integer> idList=ConfigServiceUtil.getId(3, entitys.size());
int index=0;
for(AsnIpCfg entity:entitys) {
entity.setCreateTime(createTime);
entity.setCreatorId(entity.getCurrentUser().getId());
entity.setRegionId(idList.get(index));
index++;
}
this.saveBatch(entitys, AsnIpCfgDao.class); this.saveBatch(entitys, AsnIpCfgDao.class);
} }
@Transactional(readOnly=false,rollbackFor=RuntimeException.class) @Transactional(readOnly=false,rollbackFor=RuntimeException.class)
@@ -88,10 +79,12 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
} }
@Transactional(readOnly=false,rollbackFor=RuntimeException.class) @Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void saveAsnIpBatch(Map<String,List<AsnIpCfg>> cfgs) { public void saveAsnIpBatch(Map<String,List<AsnIpCfg>> cfgs,int total) {
List<AsnIpCfg> toDelAsnIpCfgs=Lists.newArrayList(); List<AsnIpCfg> toDelAsnIpCfgs=Lists.newArrayList();
List<AsnIpCfg> toSaveAsnIpCfgs=Lists.newArrayList(); List<AsnIpCfg> toSaveAsnIpCfgs=Lists.newArrayList();
List<SysDataDictionaryItem> isImportAll=DictUtils.getDictList("IS_ASN_IP_IMPORT_ALL"); List<SysDataDictionaryItem> isImportAll=DictUtils.getDictList("IS_ASN_IP_IMPORT_ALL");
List<Integer> idList=ConfigServiceUtil.getId(3, total);
int ind=0;
for(Entry<String,List<AsnIpCfg>> entry:cfgs.entrySet()) { for(Entry<String,List<AsnIpCfg>> entry:cfgs.entrySet()) {
Long asnNo=Long.parseLong(entry.getKey()); Long asnNo=Long.parseLong(entry.getKey());
ConfigGroupInfo configGroupInfo=this.getConfigGroupInfoByAsnNo(asnNo); ConfigGroupInfo configGroupInfo=this.getConfigGroupInfoByAsnNo(asnNo);
@@ -101,16 +94,18 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
info.setDescription("Create by import excel"); info.setDescription("Create by import excel");
info.setGroupName("Import"+asnNo); info.setGroupName("Import"+asnNo);
info.setGroupType(4); info.setGroupType(4);
this.saveAsnGroup(info); configGroupInfo=this.saveAsnGroup(info);
configGroupInfo=this.getConfigGroupInfoByAsnNo(asnNo);
} }
for(AsnIpCfg cfg:entry.getValue()) { for(AsnIpCfg cfg:entry.getValue()) {
cfg.setAsnIpGroup(configGroupInfo.getGroupId()); cfg.setAsnIpGroup(configGroupInfo.getGroupId());
cfg.setRegionId(idList.get(ind));
if(configGroupInfo.getIsIssued()==0) if(configGroupInfo.getIsIssued()==0)
cfg.setIsValid(Constants.VALID_NO); cfg.setIsValid(Constants.VALID_NO);
else else {
cfg.setIsValid(Constants.VALID_YES); cfg.setIsValid(Constants.VALID_YES);
} }
ind++;
}
if(isImportAll.get(0).getItemCode().equals("1")) {//全量下发,删除已有的 if(isImportAll.get(0).getItemCode().equals("1")) {//全量下发,删除已有的
if(configGroupInfo.getIsIssued()==1) {//已下发 if(configGroupInfo.getIsIssued()==1) {//已下发
List<AsnIpCfg> _toDelAsnIpCfgs=this.getByAsnGroup(configGroupInfo.getGroupId(), configGroupInfo.getAsnId()); List<AsnIpCfg> _toDelAsnIpCfgs=this.getByAsnGroup(configGroupInfo.getGroupId(), configGroupInfo.getAsnId());
@@ -166,8 +161,9 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
} }
} }
@Transactional(readOnly=false,rollbackFor=RuntimeException.class) @Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void saveAsnGroup(PolicyGroupInfo entity) throws MaatConvertException{ public ConfigGroupInfo saveAsnGroup(PolicyGroupInfo entity) throws MaatConvertException{
entity.setIsValid(1); entity.setIsValid(1);
ConfigGroupInfo group=new ConfigGroupInfo();
//新增 //新增
Date createTime=new Date(); Date createTime=new Date();
entity.setCreatorId(UserUtils.getUser().getId()); entity.setCreatorId(UserUtils.getUser().getId());
@@ -183,7 +179,6 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
} }
entity.setServiceGroupId(serviceGroupId); entity.setServiceGroupId(serviceGroupId);
//新增协议分组 //新增协议分组
ConfigGroupInfo group = new ConfigGroupInfo();
group.setGroupId(serviceGroupId); group.setGroupId(serviceGroupId);
group.setGroupName(entity.getGroupName()); group.setGroupName(entity.getGroupName());
group.setIsIssued(0); group.setIsIssued(0);
@@ -192,7 +187,7 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
specificServiceCfgDao.insertConfigGroupInfo(group); specificServiceCfgDao.insertConfigGroupInfo(group);
policyGroupInfoDao.insert(entity); policyGroupInfoDao.insert(entity);
} }
return group;
} }
@Transactional(readOnly=false,rollbackFor=RuntimeException.class) @Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void saveAsnIpCfg(CfgIndexInfo entity) { public void saveAsnIpCfg(CfgIndexInfo entity) {
@@ -201,6 +196,8 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
if(groupInfo==null) { if(groupInfo==null) {
throw new RuntimeException("ConfigGroupInfo is null!"); throw new RuntimeException("ConfigGroupInfo is null!");
} }
List<Integer> idList=ConfigServiceUtil.getId(3, entity.getAsnIpCfgs().size());
int index=0;
if(groupInfo.getIsIssued()==1) {//如果已经下发,则需要下到综合服务中 if(groupInfo.getIsIssued()==1) {//如果已经下发,则需要下到综合服务中
if(entity.getAsnIpCfgs()!=null) { if(entity.getAsnIpCfgs()!=null) {
for(AsnIpCfg cfg:entity.getAsnIpCfgs()) { for(AsnIpCfg cfg:entity.getAsnIpCfgs()) {
@@ -214,6 +211,8 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
cfg.setCreatorId(entity.getCurrentUser().getId()); cfg.setCreatorId(entity.getCurrentUser().getId());
cfg.setAsnIpGroup(entity.getAsnIpGroup()); cfg.setAsnIpGroup(entity.getAsnIpGroup());
cfg.setIsValid(Constants.VALID_YES); cfg.setIsValid(Constants.VALID_YES);
cfg.setRegionId(idList.get(index));
index++;
} }
} }
this.save(entity.getAsnIpCfgs()); this.save(entity.getAsnIpCfgs());
@@ -226,6 +225,8 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
cfg.setCreatorId(entity.getCurrentUser().getId()); cfg.setCreatorId(entity.getCurrentUser().getId());
cfg.setAsnIpGroup(entity.getAsnIpGroup().intValue()); cfg.setAsnIpGroup(entity.getAsnIpGroup().intValue());
cfg.setIsValid(Constants.VALID_NO); cfg.setIsValid(Constants.VALID_NO);
cfg.setRegionId(idList.get(index));
index++;
} }
} }
this.save(entity.getAsnIpCfgs()); this.save(entity.getAsnIpCfgs());

View File

@@ -543,4 +543,5 @@ cert_validate_success_info=Successful
#ipv4 range\u65b0\u683c\u5f0f0.0.0.1-2 #ipv4 range\u65b0\u683c\u5f0f0.0.0.1-2
ipv4_ip_range_regexp_new=^(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)-(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)$ ipv4_ip_range_regexp_new=^(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)-(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)$
ipv4_ip_subnet_regexp_original=^(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)/(3[0-2]|1[0-9]|2[0-9]|[0-9])$ ipv4_ip_subnet_regexp_original=^(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)/(3[0-2]|1[0-9]|2[0-9]|[0-9])$
#域名验证正则
domain_regexp=^(?=^.{3,255}$)[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$ domain_regexp=^(?=^.{3,255}$)[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$