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 d32e8d80f..88ce3a8e1 100644 --- a/src/main/java/com/nis/util/excel/thread/CheckIpFormatThread.java +++ b/src/main/java/com/nis/util/excel/thread/CheckIpFormatThread.java @@ -27,6 +27,7 @@ import com.nis.domain.configuration.template.IpRateLimitTemplate; //import com.nis.util.AsnCacheUtils; import com.nis.util.Constants; import com.nis.util.DictUtils; +import com.nis.util.StringUtil; public class CheckIpFormatThread implements Callable{ private Logger logger=Logger.getLogger(CheckIpFormatThread.class); @@ -259,11 +260,7 @@ public class CheckIpFormatThread implements Callable{ } if (regionDict.getFunctionId().equals(600)) {//asn String organization=baseIpCfg.getOrganization(); - if(StringUtils.isBlank(organization)) { - errInfo.append( - String.format(prop.getProperty("can_not_null"), prop.getProperty("organization","Organization")) - + ";"); - }else { + if(!StringUtils.isBlank(organization)) { if(organization.length() > 1024){ errInfo.append(prop.getProperty("asn_name")+prop.getProperty("length_error")+" "+String.format(prop.getProperty("max_length")+":1024") + ";"); }else { @@ -272,14 +269,9 @@ public class CheckIpFormatThread implements Callable{ } baseIpCfg.setOrganization(organization.trim().toUpperCase()); } - } String country=baseIpCfg.getCountry(); - if(StringUtils.isBlank(country)) { - errInfo.append( - String.format(prop.getProperty("can_not_null"), prop.getProperty("country")) - + ";"); - }else { + if(!StringUtils.isBlank(country)) { if(country.length() > 512){ errInfo.append(prop.getProperty("country_code")+prop.getProperty("length_error")+" "+String.format(prop.getProperty("max_length")+":512") + ";"); }else { @@ -287,11 +279,7 @@ public class CheckIpFormatThread implements Callable{ } } String detail=baseIpCfg.getDetail(); - if(StringUtils.isBlank(detail)) { - errInfo.append( - String.format(prop.getProperty("can_not_null"), prop.getProperty("detail")) - + ";"); - }else { + if(!StringUtils.isBlank(detail)) { if(detail.length() > 1024||detail.length()<4){ errInfo.append(prop.getProperty("details")+prop.getProperty("length_error")+" "+String.format(prop.getProperty("min_length")+":4,"+prop.getProperty("max_length")+":1024") + ";"); }else { @@ -303,7 +291,7 @@ public class CheckIpFormatThread implements Callable{ if(StringUtils.isBlank(userRegion1)) { errInfo.append( String.format(prop.getProperty("can_not_null"), prop.getProperty("asn_no")) - + ";"); + + ";org:"+baseIpCfg.getOrganization()+ ";asn:"+baseIpCfg.getOrganization()+ ";ip:"+baseIpCfg.getDestIpAddress()); }else { try { Long asnNo=Long.parseLong(userRegion1); @@ -312,17 +300,21 @@ public class CheckIpFormatThread implements Callable{ String.format(prop.getProperty("must_between"),"1","4294967295" ) + ";"); }else { + if(StringUtil.isEmpty(baseIpCfg.getOrganization())){ + baseIpCfg.setOrganization(asnNo.toString()); + baseIpCfg.setCfgDesc(asnNo.toString()); + } // ConfigGroupInfo configGroupInfo=asnIpCfgService.getConfigGroupInfoByAsnNo(asnNo); if(asnNos!=null) { AsnGroupInfo configGroupInfo=asnGroupInfos==null?null:asnGroupInfos.get(asnNo);//从缓存中取 //缓存中没有 if(configGroupInfo==null) { synchronized (Constants.IMPORT_LOCK) { - if(StringUtils.isNotBlank(baseIpCfg.getOrganization())&&StringUtils.isNotBlank(baseIpCfg.getCountry())) { + if(StringUtils.isNotBlank(baseIpCfg.getOrganization())) { AsnGroupInfo groupInfo=new AsnGroupInfo(); groupInfo.setOrganization(baseIpCfg.getOrganization().trim().toUpperCase()); - groupInfo.setCountry(baseIpCfg.getCountry().trim().toUpperCase()); - groupInfo.setDetail(baseIpCfg.getDetail().trim()); + groupInfo.setCountry(StringUtil.isEmpty(baseIpCfg.getCountry()) ? "":baseIpCfg.getCountry().trim().toUpperCase()); + groupInfo.setDetail(StringUtil.isEmpty(baseIpCfg.getDetail()) ? "":baseIpCfg.getDetail().trim()); groupInfo.setIsValid(0); groupInfo.setAsnId(asnNo); if(asnNos.get(0).containsKey(asnNo)) { @@ -353,12 +345,8 @@ public class CheckIpFormatThread implements Callable{ if(!configGroupInfo.getOrganization().equalsIgnoreCase(baseIpCfg.getOrganization().trim())) { errInfo.append(prop.getProperty("organization","Organization")+" "+prop.getProperty("mismatch","Mismatch")); } - if(!configGroupInfo.getCountry().equalsIgnoreCase(baseIpCfg.getCountry().trim())) { - errInfo.append(prop.getProperty("country","Country")+" "+prop.getProperty("mismatch","Mismatch")); - } - if(!configGroupInfo.getDetail().equalsIgnoreCase(baseIpCfg.getDetail().trim())) { - errInfo.append(prop.getProperty("detail","Detail")+" "+prop.getProperty("mismatch","Mismatch")); - } + configGroupInfo.setDetail(baseIpCfg.getDetail()); + configGroupInfo.setCountry(baseIpCfg.getCountry()); if(StringUtils.isBlank(errInfo.toString())) { asnNos.get(1).put(asnNo,configGroupInfo); } diff --git a/src/main/java/com/nis/web/controller/BaseController.java b/src/main/java/com/nis/web/controller/BaseController.java index b80465977..9979908d1 100644 --- a/src/main/java/com/nis/web/controller/BaseController.java +++ b/src/main/java/com/nis/web/controller/BaseController.java @@ -1650,9 +1650,17 @@ public class BaseController { } //全量下发,删除asnNo对应的已有的IP if(isImportAll.get(0).getItemCode().equals("1")) { + Integer ipType=null; + if((!ipPortCfgs.isEmpty())){ + BaseIpCfg baseIpCfg=ipPortCfgs.take(); + ipPortCfgs.put(baseIpCfg); + if(!StringUtil.isEmpty(baseIpCfg)){ + ipType=baseIpCfg.getIpType(); + } + } logger.warn("Delete and send ip reuse regions start"); long _start=System.currentTimeMillis(); - deleteIps(asnNoMaps.get(1)); + deleteIps(asnNoMaps.get(1),ipType); long _end=System.currentTimeMillis(); logger.warn("Delete and send ip reuse regions end,cost:"+(_end-_start)); } @@ -2383,7 +2391,7 @@ public class BaseController { logger.warn("import finish,cost:"+(end-start)); } - public void deleteIps(Map asnNoMap){ + public void deleteIps(Map asnNoMap,Integer ipType){ List toDelAndSendAsnIpCfgs=Lists.newArrayList(); List asnIds=Lists.newArrayList(asnNoMap.size()); for(Entry e:asnNoMap.entrySet()) { @@ -2399,7 +2407,7 @@ public class BaseController { } } if(asnIds.size()>0) { - asnIpCfgService.deleteByAsnNo(asnIds); + asnIpCfgService.deleteByAsnNo(asnIds,ipType); } if(toDelAndSendAsnIpCfgs.size()>0) { int pointsDataLimit = Constants.MAAT_JSON_SEND_SIZE;//限制条数 diff --git a/src/main/java/com/nis/web/dao/basics/AsnIpCfgDao.java b/src/main/java/com/nis/web/dao/basics/AsnIpCfgDao.java index 5deb373b7..9e85447a2 100644 --- a/src/main/java/com/nis/web/dao/basics/AsnIpCfgDao.java +++ b/src/main/java/com/nis/web/dao/basics/AsnIpCfgDao.java @@ -32,5 +32,6 @@ public interface AsnIpCfgDao extends CrudDao{ public int hasValidAsnIp(@Param("asnId")Long asnNo); public AsnIpCfg getOne(AsnIpCfg cfg); public void updateAsn(@Param("asnId")String asnNo,@Param("organization")String organization,@Param("country")String country,@Param("detail")String detail); - public List findAllAsnIpCfgList(); + public List findAllAsnIpCfgList(); + public int deleteByAsnIdAndIpType(@Param("asnId")String ids,@Param("ipType")Integer ipType); } diff --git a/src/main/java/com/nis/web/dao/basics/AsnIpCfgDao.xml b/src/main/java/com/nis/web/dao/basics/AsnIpCfgDao.xml index 1d2046e95..fdb188dd6 100644 --- a/src/main/java/com/nis/web/dao/basics/AsnIpCfgDao.xml +++ b/src/main/java/com/nis/web/dao/basics/AsnIpCfgDao.xml @@ -636,5 +636,14 @@ from asn_ip_cfg r where r.is_valid !=-1 - + + + delete from asn_ip_cfg + + and user_region1 in(${asnId}) + + and ip_type = #{ipType,jdbcType=INTEGER} + + + \ No newline at end of file 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 ede384dfd..833d9a4f2 100644 --- a/src/main/java/com/nis/web/service/basics/AsnIpCfgService.java +++ b/src/main/java/com/nis/web/service/basics/AsnIpCfgService.java @@ -377,7 +377,7 @@ public class AsnIpCfgService extends CrudService, AsnIpCfg> { return asnIpCfgDao.getByIds(ids); } @Transactional(readOnly=false,rollbackFor=RuntimeException.class) - public void deleteByAsnNo(List asnNoList) { + public void deleteByAsnNo(List asnNoList,Integer ipType) { // for(Long asnNo:asnNoList) { // int result=0; // do { @@ -397,7 +397,8 @@ public class AsnIpCfgService extends CrudService, AsnIpCfg> { } int result=0; do { - result=asnIpCfgDao.deleteByAsnId(asnNoStr.toString().substring(0,asnNoStr.toString().length()-1)); + //result=asnIpCfgDao.deleteByAsnId(asnNoStr.toString().substring(0,asnNoStr.toString().length()-1)); + result=asnIpCfgDao.deleteByAsnIdAndIpType(asnNoStr.toString().substring(0,asnNoStr.toString().length()-1),ipType); }while(result>0); //剔除 asnNoList.subList(0, pointsDataLimit).clear(); @@ -410,7 +411,7 @@ public class AsnIpCfgService extends CrudService, AsnIpCfg> { } int result=0; do { - result=asnIpCfgDao.deleteByAsnId(asnNoStr.toString().substring(0,asnNoStr.toString().length()-1)); + result=asnIpCfgDao.deleteByAsnIdAndIpType(asnNoStr.toString().substring(0,asnNoStr.toString().length()-1),ipType); }while(result>0); asnNoList.clear(); } @@ -422,7 +423,7 @@ public class AsnIpCfgService extends CrudService, AsnIpCfg> { } int result=0; do { - result=asnIpCfgDao.deleteByAsnId(asnNoStr.toString().substring(0,asnNoStr.toString().length()-1)); + result=asnIpCfgDao.deleteByAsnIdAndIpType(asnNoStr.toString().substring(0,asnNoStr.toString().length()-1),ipType); }while(result>0); asnNoList.clear(); }