From b95e597b570b77b604a28721a92a221e62918dd9 Mon Sep 17 00:00:00 2001 From: duandongmei Date: Wed, 30 Jan 2019 11:07:22 +0600 Subject: [PATCH] =?UTF-8?q?ASN=E5=AF=BC=E5=85=A5=E5=85=A8=E9=87=8F?= =?UTF-8?q?=EF=BC=8C=E5=88=A0=E9=99=A4asnip=E9=80=BB=E8=BE=91=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=E5=9F=BA=E4=BA=8Easn=20no=E7=9A=84=E6=89=B9?= =?UTF-8?q?=E9=87=8F=E5=88=A0=E9=99=A4=E3=80=82=20=E6=AF=8F=E6=AC=A1?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=AE=9A=E9=87=8F=E7=9A=84asn=20ip=20cfg?= =?UTF-8?q?=E9=81=8D=E5=8E=86=EF=BC=8C=E5=9F=BA=E4=BA=8E=E6=9C=AC=E6=89=B9?= =?UTF-8?q?asn=20no=EF=BC=8Casn=20ip=E6=95=B0=E9=87=8F=E5=A4=A7=E4=BA=8Ema?= =?UTF-8?q?at=5Fsend=5Fsize=E5=8D=B3=E5=88=A0=E9=99=A4=E5=B9=B6=E5=85=A5?= =?UTF-8?q?=E5=BA=93=E6=9C=80=E6=96=B0asn=20ip=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/nis/util/Constants.java | 1 + .../excel/thread/CheckIpFormatThread.java | 27 +- .../nis/web/controller/BaseController.java | 249 ++++++++++++++++-- .../web/service/basics/AsnIpCfgService.java | 21 +- 4 files changed, 258 insertions(+), 40 deletions(-) diff --git a/src/main/java/com/nis/util/Constants.java b/src/main/java/com/nis/util/Constants.java index a9e58ef7a..0368d002a 100644 --- a/src/main/java/com/nis/util/Constants.java +++ b/src/main/java/com/nis/util/Constants.java @@ -13,6 +13,7 @@ public final class Constants { */ public static final int IMPORT_LIMIT=Configurations.getIntProperty("import_limit",10000); public static final Object IMPORT_LOCK=new Object(); + public static final Object IMPORT_ASN_LOCK=new Object(); public static final String ADD_COMMON_REGION=Configurations.getStringProperty("addRegionToCommonGroup",""); public static final String UPDATE_COMMON_REIGON=Configurations.getStringProperty("updateRegionToCommonGroup",""); public static final String DELETE_COMMON_REIGON=Configurations.getStringProperty("deleteRegionToCommonGroup",""); diff --git a/src/main/java/com/nis/util/excel/thread/CheckIpFormatThread.java b/src/main/java/com/nis/util/excel/thread/CheckIpFormatThread.java index 7aae6eac0..ee73c4362 100644 --- a/src/main/java/com/nis/util/excel/thread/CheckIpFormatThread.java +++ b/src/main/java/com/nis/util/excel/thread/CheckIpFormatThread.java @@ -20,6 +20,7 @@ import com.nis.domain.FunctionRegionDict; import com.nis.domain.FunctionServiceDict; import com.nis.domain.SysDataDictionaryItem; import com.nis.domain.basics.AsnGroupInfo; +import com.nis.domain.basics.AsnIpCfg; import com.nis.domain.basics.PolicyGroupInfo; import com.nis.domain.configuration.BaseIpCfg; import com.nis.domain.configuration.DnsResStrategy; @@ -43,7 +44,8 @@ public class CheckIpFormatThread implements Callable{ //【1】 旧的asn group info //【2】 所有的asn group info //【3】 所有已审核通过的asn group info - private List> asnNoMaps; + private List> asnNoMaps; + private Map> asnIpMap; //组织之间的关系 //【0】 新的组织信息 //【1】 旧的组织信息 @@ -66,7 +68,7 @@ public class CheckIpFormatThread implements Callable{ int size=srcQueue.drainTo(dataList,Constants.MAAT_JSON_SEND_SIZE); if(regionDict.getRegionType().intValue()==1) { try { - List ipcfgs=this.checkIpCfg(msg,asnNoMaps, dataList); + List ipcfgs=this.checkIpCfg(msg,asnNoMaps,asnIpMap, dataList); boolean success=destQueue.addAll(ipcfgs); }catch (Exception e) { logger.error("checkIpCfg error,",e); @@ -85,7 +87,7 @@ public class CheckIpFormatThread implements Callable{ return msg.toString(); } - public List checkIpCfg(StringBuffer msg,List> asnNos, List list) + public List checkIpCfg(StringBuffer msg,List> asnNos,Map> asnIpCfgs, List list) throws ServiceException { logger.warn("start to validate ip..."); long start=System.currentTimeMillis(); @@ -367,8 +369,6 @@ public class CheckIpFormatThread implements Callable{ asnNos.get(3).put(asnNo,asnGroupInfo); } asnNos.get(1).put(asnNo,asnGroupInfo); - asnGroupInfo.setIsValid(0); - asnGroupInfo.setIssuedIPs(0l); asnGroupInfo.setOrganization(organization); asnGroupInfo.setCountry(baseIpCfg.getCountry()); asnGroupInfo.setDetail(baseIpCfg.getDetail()); @@ -955,6 +955,16 @@ public class CheckIpFormatThread implements Callable{ errTip.append(errInfo); errTip.append("
"); }else { + synchronized (Constants.IMPORT_ASN_LOCK) { + //asn根据asn号分组存储asn ip信息 + if(StringUtil.isEmpty(asnIpCfgs.get(baseIpCfg.getUserRegion1()))){ + List asnIpList=new ArrayList<>(); + asnIpList.add(baseIpCfg); + asnIpCfgs.put(baseIpCfg.getUserRegion1(), asnIpList); + }else{ + asnIpCfgs.get(baseIpCfg.getUserRegion1()).add(baseIpCfg); + } + } ipList.add(baseIpCfg); } } @@ -1408,5 +1418,10 @@ public class CheckIpFormatThread implements Callable{ public void setAsnOrgList(List> asnOrgList) { this.asnOrgList = asnOrgList; } - + public Map> getAsnIpMap() { + return asnIpMap; + } + public void setAsnIpMap(Map> asnIpMap) { + this.asnIpMap = asnIpMap; + } } diff --git a/src/main/java/com/nis/web/controller/BaseController.java b/src/main/java/com/nis/web/controller/BaseController.java index 220a8b64f..fc15818cb 100644 --- a/src/main/java/com/nis/web/controller/BaseController.java +++ b/src/main/java/com/nis/web/controller/BaseController.java @@ -958,7 +958,7 @@ public class BaseController { * @throws InterruptedException * @throws ExecutionException */ - public BlockingQueue checkIpCfgMulity(StringBuffer _msg,FunctionServiceDict serviceDict, FunctionRegionDict regionDict,List> asnNos,List> asnOrgList, BlockingQueue list) throws ServiceException, InterruptedException, ExecutionException{ + public BlockingQueue checkIpCfgMulity(StringBuffer _msg,FunctionServiceDict serviceDict, FunctionRegionDict regionDict,List> asnNos,List> asnOrgList,Map> asnIpMap, BlockingQueue list) throws ServiceException, InterruptedException, ExecutionException{ logger.warn("start checkIpCfgMulity ,size "+list.size()); long start=System.currentTimeMillis(); BlockingQueue queue=new ArrayBlockingQueue<>(list.size()); @@ -970,6 +970,66 @@ public class BaseController { CheckIpFormatThread t=new CheckIpFormatThread(serviceDict,regionDict, props, list, queue); t.setAsnNoMaps(asnNos); t.setAsnOrgList(asnOrgList); + t.setAsnIpMap(asnIpMap); + futures.add(service.submit(t)); + } + service.shutdown(); + while(!service.isTerminated()) { + try { + Thread.sleep(10); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + boolean valideteError=false; + for(Future future:futures) { + String msg = future.get(); + if(StringUtils.isNotBlank(msg)) { + if(msg.equals("validate_error")) { + valideteError=true; + }else if(msg.endsWith("validate_error")) { + _msg.append(msg.substring(0, msg.length()-1-"validate_error".length())); + valideteError=true; + }else { + _msg.append(msg); + } + //throw new ServiceException(msg); + + } + } + if(valideteError) { + _msg.append(props.getProperty("validate_error", "Unexpected error occurred while validating")); + } + + long end=System.currentTimeMillis(); + logger.warn("checkIpCfgMulity finish,cost:"+(end-start)+",size:"+queue.size()); + return queue; + } + /** + * 多线程验证 + * @param serviceDict + * @param regionDict + * @param asnNos + * @param list + * @return + * @throws ServiceException + * @throws InterruptedException + * @throws ExecutionException + */ + public BlockingQueue checkAsnIpCfgMulity(StringBuffer _msg,FunctionServiceDict serviceDict, FunctionRegionDict regionDict,List> asnNos,List> asnOrgList,Map> asnIpMap, BlockingQueue list) throws ServiceException, InterruptedException, ExecutionException{ + logger.warn("start checkIpCfgMulity ,size "+list.size()); + long start=System.currentTimeMillis(); + BlockingQueue queue=new ArrayBlockingQueue<>(list.size()); + ExecutorService service=Executors.newFixedThreadPool(Constants.MULITY_THREAD_SIZE); + List> futures=new ArrayList<>(); + + Properties props=this.getMsgProp(); + for(int i=0;i oldOrgMap=Maps.newConcurrentMap(); asnOrgList.add(newOrgMap); //【0】 新的组织信息 asnOrgList.add(oldOrgMap);//【1】 旧的组织信息 + Map> asnIpMaps=Maps.newConcurrentMap(); FunctionRegionDict appRegion = null; FunctionRegionDict appFeatureRegion = null; if(serviceDict!=null) { @@ -1476,27 +1539,27 @@ public class BaseController { if (serviceDict!=null&&serviceDict.getAction().equals(64)) { BlockingQueue list = ei.getDataList(IpRateLimitTemplate.class ); - ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict,null,null, list); + ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict,null,null,null, list); } else if(serviceDict!=null&&serviceDict.getAction().equals(32)) { BlockingQueue list = ei.getDataList(IpAllNotDoLogTemplate.class ); - ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,null, list); + ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,null,null, list); } else { BlockingQueue list = ei.getDataList(IpAllTemplate.class ); - ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,null, list); + ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,null,null, list); } } else if (regionDict.getFunctionId().equals(7)&&serviceDict!=null&&serviceDict.getAction().intValue()==16) { BlockingQueue list = ei.getDataList(DnsIpTemplate.class ); - ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,null, list); + ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,null,null, list); }else if(regionDict.getFunctionId().equals(401)) { BlockingQueue list = ei.getDataList(DnsFakeIpTemplate.class ); - ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,null, list); + ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,null,null, list); }else if (regionDict.getFunctionId().equals(212)) { BlockingQueue list = ei.getDataList(IpPayloadTemplate.class ); - ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,null, list); + ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,null,null, list); } else if (regionDict.getFunctionId().equals(510) && "p2p_ip".equals(regionDict.getConfigServiceType())) { // P2p IP BlockingQueue list = ei.getDataList(P2pIpTemplate.class ); - ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,null, list); + ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,null,null, list); } else if (regionDict.getFunctionId().equals(600)) {// ASN IP ei.setHasImportLimit(false); //从数据库中读取 @@ -1506,44 +1569,44 @@ public class BaseController { //初始化所有数据库中的组织信息 Map oldOrgMapData=configGroupInfoService.getConfigGroupInfo(asnOrgList,4); BlockingQueue list = ei.getDataList(AsnIpTemplate.class ); - ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, asnNoMaps,asnOrgList, list); + ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, asnNoMaps,asnOrgList,asnIpMaps, list); }else if (regionDict.getFunctionId().equals(301)) {// DDOS IP BlockingQueue list = ei.getDataList(DdosIpTemplate.class ); - ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,null, list); + ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,null,null, list); }else if(regionDict.getFunctionId().equals(207)){// HTTP(s)阻断 BlockingQueue list = ei.getDataList(HttpsRejectIpTemplate.class ); - ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,null, list); + ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,null,null, list); }else if(regionDict.getFunctionId().equals(208)){// HTTP(s)重定向 BlockingQueue list = ei.getDataList(HttpsRedirectIpTemplate.class ); - ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,null, list); + ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,null,null, list); }else if(regionDict.getFunctionId().equals(209)){// HTTP(s)替换 BlockingQueue list = ei.getDataList(HttpsReplaceIpTemplate.class ); - ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,null, list); + ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,null,null, list); }else if(regionDict.getFunctionId().equals(211)){// HTTP(s)白名单 BlockingQueue list = ei.getDataList(IpAllNotDoLogTemplate.class ); - ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,null, list); + ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,null,null, list); }else if(regionDict.getFunctionId().equals(200)) {// 拦截策略 if(serviceDict.getAction().equals(64)) { BlockingQueue list = ei.getDataList(IpRateLimitTemplate.class ); - ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict,null,null, list); + ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict,null,null,null, list); }else { BlockingQueue list = ei.getDataList(IpAllNotDoLogTemplate.class ); - ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict,null,null, list); + ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict,null,null,null, list); } }else if(regionDict.getFunctionId().equals(3)) { // IP白名单 BlockingQueue list = ei.getDataList(IpWhitelistTemplate.class ); - ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict,null,null, list); + ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict,null,null,null, list); }else if(regionDict.getFunctionId().equals(214)) { // IpSpoofing BlockingQueue list = ei.getDataList(IpSpoofingTemplate.class ); - ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict,null,null, list); + ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict,null,null,null, list); }else if(regionDict.getFunctionId().equals(405) || regionDict.getFunctionId().equals(563) || regionDict.getFunctionId().equals(565) || regionDict.getFunctionId().equals(566)) { // APP Feature IP BlockingQueue list = ei.getDataList(IpAllNotDoLogTemplate.class ); - ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict,null,null, list); + ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict,null,null,null, list); }else { BlockingQueue list = ei.getDataList(IpAllTemplate.class ); - ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,null, list); + ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,null,null, list); } } else if (regionDict.getRegionType().equals(2)) {// 字符串类 if (regionDict.getFunctionId().equals(510) @@ -1653,10 +1716,148 @@ public class BaseController { } if (regionDict.getRegionType().equals(1)) {// IP if(regionDict.getFunctionId().intValue()==600) {//ans ip - //是否全量下发所有的asn info信息 List isImportAll=DictUtils.getDictList("IS_ASN_IP_IMPORT_ALL"); //处理config_group_info和asn_group_info asnIpCfgService.processGroup(serviceDict,asnNoMaps,asnOrgList,isSend,isImportAll.get(0).getItemCode()); + if(!asnIpMaps.isEmpty()){ + int index=0; + List asnIpCfgs=Lists.newArrayList(); + String asnIds=""; + List regionIds=Lists.newArrayList(); + try { + regionIds = ConfigServiceUtil.getId(3,ipPortCfgs.size()); + } catch (Exception e1) { + e1.printStackTrace(); + logger.info("获取域ID出错"); + throw new MaatConvertException(":"+e1.getMessage()); + } + for (Entry> e:asnIpMaps.entrySet()) { + for (BaseIpCfg cfg : e.getValue()) { + if(cfg != null){ + AsnIpCfg asnIpCfg=new AsnIpCfg(); + BeanUtils.copyProperties(cfg, asnIpCfg,new String[] {"cfgId"}); + asnIpCfg.setTableName(AsnIpCfg.getTablename()); + asnIpCfg.setAction(serviceDict==null?0:serviceDict.getAction()); + asnIpCfg.setCfgRegionCode(regionDict.getConfigRegionCode()); + asnIpCfg.setCfgType(regionDict.getConfigRegionValue()); + asnIpCfg.setCreateTime(date); + asnIpCfg.setCreatorId(UserUtils.getUser().getId()); + asnIpCfg.setDoLog(2); + asnIpCfg.setFunctionId(regionDict.getFunctionId()); + if(isSend.equals("1")) { + asnIpCfg.setIsAudit(Constants.AUDIT_YES); + asnIpCfg.setIsValid(Constants.VALID_YES); + asnIpCfg.setAuditorId(UserUtils.getUser().getId()); + asnIpCfg.setAuditTime(date); + + }else { + asnIpCfg.setIsAudit(Constants.AUDIT_NOT_YET); + asnIpCfg.setIsValid(Constants.VALID_NO); + } + asnIpCfg.setIsAreaEffective(0); + asnIpCfg.setLable("0"); + asnIpCfg.setRequestId(StringUtil.isEmpty(requestId) ? 0 : requestId); + asnIpCfg.setAttribute(attribute); + asnIpCfg.setClassify(classify); + asnIpCfg.setServiceId(serviceDict==null?0:serviceDict.getServiceId()); + asnIpCfg.setRegionId(regionIds.get(index)); + //设置group id,compileId + asnIpCfg.setAsnIpGroup(asnNoMaps.get(2).get(Long.parseLong(asnIpCfg.getUserRegion1())).getGroupId()); + asnIpCfg.setCompileId(asnNoMaps.get(2).get(Long.parseLong(asnIpCfg.getUserRegion1())).getCompileId()); + if(isSend.equals("1")) { + /*//已下发 + if(asnNoMaps.get(3).keySet().contains(Long.valueOf(asnIpCfg.getUserRegion1()))){ + //groupId已经在了 + if(oldAsnIpMap.keySet().contains(Long.valueOf(asnIpCfg.getAsnIpGroup()))){ + oldAsnIpMap.get(Long.valueOf(asnIpCfg.getAsnIpGroup())).add(asnIpCfg); + oldAsnIpIndex++; + }else{ + List list=new ArrayList<>(); + list.add(asnIpCfg); + oldAsnIpMap.put(Long.valueOf(asnIpCfg.getAsnIpGroup()), list); + oldAsnIpIndex++; + } + }else{//未下发 + //groupId已经在了 + if(newAsnIpMap.keySet().contains(Long.valueOf(asnIpCfg.getAsnIpGroup()))){ + newAsnIpMap.get(Long.valueOf(asnIpCfg.getAsnIpGroup())).add(asnIpCfg); + newAsnIpIndex++; + }else{ + List list=new ArrayList<>(); + list.add(asnIpCfg); + newAsnIpMap.put(Long.valueOf(asnIpCfg.getAsnIpGroup()), list); + newAsnIpIndex++; + } + } + *//**********************新的asn ip达到最大量后发送一次***********************//* + //未下发过的asnGroup + if(newAsnIpIndex==Constants.MAAT_JSON_SEND_SIZE){ + asnIpCfgService.auditAsnIp(newAsnIpMap,asnNoMaps,"maat",newAsnIpIndex); + newAsnIpMap.clear(); + newAsnIpIndex=0; + } + *//**********************新的asn ip达到最大量后发送一次***********************//* + //已下发过的asnGroup + if(oldAsnIpIndex==Constants.MAAT_JSON_SEND_SIZE){ + asnIpCfgService.auditAsnIp(oldAsnIpMap,asnNoMaps,"common",oldAsnIpIndex); + oldAsnIpMap.clear(); + oldAsnIpIndex=0; + }*/ + + }else{ + asnIpCfgs.add(asnIpCfg); + } + index++; + if(!((","+asnIds).indexOf(","+e.getKey()+",")>-1)){ + asnIds+=e.getKey()+","; + } + ipIndex++; + }else{ + isNullIndex++; + } + } + // + if(!StringUtil.isEmpty(asnIpCfgs) && asnIpCfgs.size()>Constants.MAAT_JSON_SEND_SIZE ){ + if(!StringUtil.isEmpty(asnIds)){ + asnIds=asnIds.substring(0,asnIds.length()-1); + } + asnIpCfgService.saveAsnIp(asnIpCfgs,asnIds); + asnIds=""; + asnIpCfgs.clear(); + } + /*if(isSend.equals("1")) { + //未下发过的asnGroup + if(!newAsnIpMap.isEmpty()){ + asnIpCfgService.auditAsnIp(newAsnIpMap,asnNoMaps,"maat",newAsnIpIndex); + newAsnIpMap.clear(); + newAsnIpIndex=0; + } + //已下发过的asnGroup + if(!oldAsnIpMap.isEmpty()){ + asnIpCfgService.auditAsnIp(oldAsnIpMap,asnNoMaps,"common",oldAsnIpIndex); + oldAsnIpMap.clear(); + oldAsnIpIndex=0; + } + } + //仅仅需要保存的数 + if(!StringUtil.isEmpty(asnIpCfgs)){ + asnIpCfgService.saveAsnIp(asnIpCfgs); + asnIpCfgs.clear(); + } + _ipPortCfgs.clear(); + logger.error("ASN NO:"+e.getKey()+" :value"+e.getValue().size());*/ + } + if(!StringUtil.isEmpty(asnIpCfgs) ){ + if(!StringUtil.isEmpty(asnIds)){ + asnIds=asnIds.substring(0,asnIds.length()-1); + } + asnIpCfgService.saveAsnIp(asnIpCfgs,asnIds); + asnIpCfgs.clear(); + asnIds=""; + } + } + //是否全量下发所有的asn info信息 + /* //每次批量之后需要更新已下发的组 if(isImportAll.get(0).getItemCode().equals("1")){ asnNoMaps.get(3).clear(); @@ -1738,14 +1939,14 @@ public class BaseController { newAsnIpIndex++; } } - /**********************新的asn ip达到最大量后发送一次***********************/ + *//**********************新的asn ip达到最大量后发送一次***********************//* //未下发过的asnGroup if(newAsnIpIndex==Constants.MAAT_JSON_SEND_SIZE){ asnIpCfgService.auditAsnIp(newAsnIpMap,asnNoMaps,"maat",newAsnIpIndex); newAsnIpMap.clear(); newAsnIpIndex=0; } - /**********************新的asn ip达到最大量后发送一次***********************/ + *//**********************新的asn ip达到最大量后发送一次***********************//* //已下发过的asnGroup if(oldAsnIpIndex==Constants.MAAT_JSON_SEND_SIZE){ asnIpCfgService.auditAsnIp(oldAsnIpMap,asnNoMaps,"common",oldAsnIpIndex); @@ -1784,7 +1985,7 @@ public class BaseController { asnIpCfgs.clear(); } _ipPortCfgs.clear(); - } + }*/ }else if(regionDict.getFunctionId().intValue()==214) { // IpSpoofing List _ipPortCfgs=Lists.newArrayList(Constants.MAAT_JSON_SEND_SIZE); while(!ipPortCfgs.isEmpty()) { diff --git a/src/main/java/com/nis/web/service/basics/AsnIpCfgService.java b/src/main/java/com/nis/web/service/basics/AsnIpCfgService.java index 05a0e1b79..7ff5be0ec 100644 --- a/src/main/java/com/nis/web/service/basics/AsnIpCfgService.java +++ b/src/main/java/com/nis/web/service/basics/AsnIpCfgService.java @@ -173,13 +173,14 @@ public class AsnIpCfgService extends CrudService, AsnIpCfg> { }*/ } @Transactional(readOnly=false,rollbackFor=RuntimeException.class) - public void saveAsnIp(List asnIpCfgs){ + public void saveAsnIp(List asnIpCfgs,String asnIds){ logger.warn("Start to only save asn ip size:"+asnIpCfgs.size()); long start=System.currentTimeMillis(); SqlSessionFactory sqlSessionFactory=SpringContextHolder.getBean(SqlSessionFactory.class); SqlSession batchSqlSession = null; try{ if(!StringUtil.isEmpty(asnIpCfgs)){ + asnIpCfgDao.deleteByAsnId(asnIds); batchSqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false); for (AsnIpCfg cfg : asnIpCfgs) { ((AsnIpCfgDao) batchSqlSession.getMapper(AsnIpCfgDao.class)).insert(cfg); @@ -331,11 +332,11 @@ public class AsnIpCfgService extends CrudService, AsnIpCfg> { Integer serviceId=service.getServiceId(); try{ //1、删除所有asn ip - asnIpCfgDao.deleteAll(); + //asnIpCfgDao.deleteAll(); //2、删除所有的asn_group_info - asnGroupInfoDao.deleteAll(); + //asnGroupInfoDao.deleteAll(); //3、删除所有的组织信息 - configGroupInfoDao.deleteAllAsnGroup(); + //configGroupInfoDao.deleteAllAsnGroup(); batchSqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false); //4、遍历保存所有的config_group_info if(!StringUtil.isEmpty(asnOrgList)){ @@ -343,7 +344,7 @@ public class AsnIpCfgService extends CrudService, AsnIpCfg> { Map oldOrgMap=asnOrgList.get(1);//【1】 旧的config group info //入库旧的asn组织信息 - if(!StringUtil.isEmpty(oldOrgMap)){ + /*if(!StringUtil.isEmpty(oldOrgMap)){ index=0; for(Entry e:oldOrgMap.entrySet()) { ConfigGroupInfo configGroupInfo=e.getValue(); @@ -355,7 +356,7 @@ public class AsnIpCfgService extends CrudService, AsnIpCfg> { index++; } batchSqlSession.commit(); - } + }*/ //入库新的asn组织信息 if(!StringUtil.isEmpty(newOrgMap)){ @@ -415,7 +416,7 @@ public class AsnIpCfgService extends CrudService, AsnIpCfg> { batchSqlSession.commit(); } //保存旧的asn信息 - if(!oldAsnGroup.isEmpty()){ + /*if(!oldAsnGroup.isEmpty()){ index=0; for(Entry e:oldAsnGroup.entrySet()) { AsnGroupInfo asnGroupInfo=e.getValue(); @@ -428,7 +429,7 @@ public class AsnIpCfgService extends CrudService, AsnIpCfg> { index++; } batchSqlSession.commit(); - } + }*/ } @@ -438,7 +439,7 @@ public class AsnIpCfgService extends CrudService, AsnIpCfg> { } } //6、配置取消所有编译[编译取消,编译下的所有group和region都会取消(已和服务端确认)] - if(!StringUtil.isEmpty(deleteAsnCompile)){ + /*if(!StringUtil.isEmpty(deleteAsnCompile)){ long startAudit=System.currentTimeMillis(); ToMaatBean maatBean = new ToMaatBean(); MaatCfg maatCfg = new MaatCfg(); @@ -470,7 +471,7 @@ public class AsnIpCfgService extends CrudService, AsnIpCfg> { logger.info("ASN IP所有编译取消返回结果:"+result.getMsg()); long resultEnd=System.currentTimeMillis(); logger.warn("Cancle all ASN compile finish,cost:"+(resultEnd-auditEnd)); - } + }*/ long end=System.currentTimeMillis(); logger.warn("Save group finish,cost:"+(end-start));