diff --git a/src/main/java/com/nis/util/Constants.java b/src/main/java/com/nis/util/Constants.java index 695ce1c82..f30388a86 100644 --- a/src/main/java/com/nis/util/Constants.java +++ b/src/main/java/com/nis/util/Constants.java @@ -172,6 +172,14 @@ public final class Constants { * 功能配置域字典key */ public static final String CACHE_FUNCTION_REGION_DICT = "functionRegionDict"; + /** + * DNS 响应策略KEY + */ + public static final String CACHE_DNSRESSTRATEGY_DICT = "dnsResStrategyDict"; + /** + * DNS 策略组KEY + */ + public static final String CACHE_DNSGROUP_DICT = "dnsGroupDict"; /** * 词典数据分类 */ diff --git a/src/main/java/com/nis/util/DictUtils.java b/src/main/java/com/nis/util/DictUtils.java index 897601245..97babfe1e 100644 --- a/src/main/java/com/nis/util/DictUtils.java +++ b/src/main/java/com/nis/util/DictUtils.java @@ -12,11 +12,15 @@ import com.nis.domain.FunctionRegionDict; import com.nis.domain.FunctionServiceDict; import com.nis.domain.SysDataDictionaryItem; import com.nis.domain.SysDataDictionaryName; +import com.nis.domain.basics.PolicyGroupInfo; import com.nis.domain.basics.SysDictInfo; +import com.nis.domain.configuration.DnsResStrategy; import com.nis.web.dao.FunctionRegionDictDao; import com.nis.web.dao.FunctionServiceDictDao; import com.nis.web.dao.SysDictDao; +import com.nis.web.dao.basics.PolicyGroupInfoDao; import com.nis.web.dao.basics.SysDictInfoDao; +import com.nis.web.dao.configuration.DnsResStrategyDao; import com.nis.web.service.SpringContextHolder; @@ -34,6 +38,8 @@ public class DictUtils { private final static SysDictInfoDao sysDictInfoDao = SpringContextHolder.getBean(SysDictInfoDao.class); private final static FunctionRegionDictDao functionRegionDictDao = SpringContextHolder.getBean(FunctionRegionDictDao.class); private final static FunctionServiceDictDao functionServiceDictDao = SpringContextHolder.getBean(FunctionServiceDictDao.class); + private final static DnsResStrategyDao dnsResStrategyDao = SpringContextHolder.getBean(DnsResStrategyDao.class); + private final static PolicyGroupInfoDao policyGroupInfoDao = SpringContextHolder.getBean(PolicyGroupInfoDao.class); public static Map> getDictData() { @@ -320,4 +326,47 @@ public class DictUtils { return allDictList; } + public static List getDnsResStrategyList(){ + List allDictList = (List)CacheUtils.get(Constants.CACHE_DNSRESSTRATEGY_DICT); + if(StringUtil.isEmpty(allDictList)){ + allDictList = dnsResStrategyDao.findList(null, Constants.VALID_YES, Constants.AUDIT_YES); + CacheUtils.put(Constants.CACHE_DNSRESSTRATEGY_DICT, allDictList); + } + + return allDictList; + } + public static List getDnsResStrategyList(Long cfgId){ + List dnsResStrategies=Lists.newArrayList(); + List allDictList = getDnsResStrategyList(); + if(StringUtil.isEmpty(allDictList)){ + }else { + for(DnsResStrategy dnsResStrategy:allDictList) { + if(dnsResStrategy.getCfgId().longValue()==cfgId.longValue()) { + dnsResStrategies.add(dnsResStrategy); + } + } + } + return dnsResStrategies; + } + public static List getDnsGroups(){ + List allDictList = (List)CacheUtils.get(Constants.CACHE_DNSGROUP_DICT); + if(StringUtil.isEmpty(allDictList)){ + allDictList = policyGroupInfoDao.findPolicyGroupInfosByType(1); + CacheUtils.put(Constants.CACHE_DNSGROUP_DICT, allDictList); + } + + return allDictList; + } + public static PolicyGroupInfo getDnsGroups(int groupId){ + List allDictList = getDnsGroups(); + if(StringUtil.isEmpty(allDictList)){ + }else { + for(PolicyGroupInfo group:allDictList) { + if(group.getGroupId().intValue()==groupId) { + return group; + } + } + } + return null; + } } diff --git a/src/main/java/com/nis/util/excel/thread/CheckComplexStringFormatThread.java b/src/main/java/com/nis/util/excel/thread/CheckComplexStringFormatThread.java index aa3be95cb..d75be7b66 100644 --- a/src/main/java/com/nis/util/excel/thread/CheckComplexStringFormatThread.java +++ b/src/main/java/com/nis/util/excel/thread/CheckComplexStringFormatThread.java @@ -21,22 +21,23 @@ import com.nis.domain.FunctionServiceDict; import com.nis.domain.configuration.ComplexkeywordCfg; import com.nis.domain.configuration.DnsResStrategy; import com.nis.util.Constants; -import com.nis.web.service.configuration.DnsResStrategyService; +import com.nis.util.DictUtils; public class CheckComplexStringFormatThread implements Callable{ private Logger logger=Logger.getLogger(CheckComplexStringFormatThread.class); private BlockingQueue srcQueue; private BlockingQueue destQueue; private Properties prop; - private DnsResStrategyService dnsResStrategyService; private FunctionServiceDict serviceDict; private FunctionRegionDict regionDict; +// private DnsResStrategyDao dnsResStrategyDao; public CheckComplexStringFormatThread(FunctionServiceDict serviceDict,FunctionRegionDict regionDict,Properties prop,BlockingQueue srcQueue,BlockingQueue destQueue) { this.serviceDict=serviceDict; this.regionDict=regionDict; this.srcQueue=srcQueue; this.destQueue=destQueue; this.prop=prop; +// this.dnsResStrategyDao=SpringContextHolder.getBean(DnsResStrategyDao.class); } @Override public String call() throws Exception { @@ -90,8 +91,7 @@ public class CheckComplexStringFormatThread implements Callable{ if (regionDict.getFunctionId().equals(7)) { Long dnsStrategyId = baseStringCfg.getDnsStrategyId(); if (dnsStrategyId != null&&dnsStrategyId>0) { - List dnsStrategys = dnsResStrategyService.findDnsResStrategys(dnsStrategyId, - Constants.VALID_YES, Constants.AUDIT_YES); + List dnsStrategys = DictUtils.getDnsResStrategyList(dnsStrategyId); if (dnsStrategys == null || dnsStrategys.size() == 0) { errInfo.append(String.format(prop.getProperty("is_incorrect"), prop.getProperty("dns_res_strategy")) + ";"); @@ -309,10 +309,4 @@ public class CheckComplexStringFormatThread implements Callable{ logger.warn("validate complexString data finish,cost:"+(end-start)); return stringList; } - public DnsResStrategyService getDnsResStrategyService() { - return dnsResStrategyService; - } - public void setDnsResStrategyService(DnsResStrategyService dnsResStrategyService) { - this.dnsResStrategyService = dnsResStrategyService; - } } diff --git a/src/main/java/com/nis/util/excel/thread/CheckDnsResStrategyFormatThread.java b/src/main/java/com/nis/util/excel/thread/CheckDnsResStrategyFormatThread.java index d56b7ea10..c11a55c72 100644 --- a/src/main/java/com/nis/util/excel/thread/CheckDnsResStrategyFormatThread.java +++ b/src/main/java/com/nis/util/excel/thread/CheckDnsResStrategyFormatThread.java @@ -1,9 +1,7 @@ package com.nis.util.excel.thread; -import java.util.ArrayList; import java.util.List; import java.util.Properties; -import java.util.Set; import java.util.concurrent.BlockingQueue; import java.util.concurrent.Callable; import java.util.regex.Matcher; @@ -15,31 +13,30 @@ import org.jets3t.service.ServiceException; import org.springframework.beans.BeanUtils; import com.beust.jcommander.internal.Lists; -import com.beust.jcommander.internal.Sets; import com.nis.domain.FunctionRegionDict; import com.nis.domain.FunctionServiceDict; import com.nis.domain.basics.PolicyGroupInfo; -import com.nis.domain.configuration.ComplexkeywordCfg; import com.nis.domain.configuration.DnsResStrategy; import com.nis.util.Constants; -import com.nis.web.service.basics.PolicyGroupInfoService; -import com.nis.web.service.configuration.DnsResStrategyService; +import com.nis.util.DictUtils; public class CheckDnsResStrategyFormatThread implements Callable{ private Logger logger=Logger.getLogger(CheckDnsResStrategyFormatThread.class); private BlockingQueue srcQueue; private BlockingQueue destQueue; private Properties prop; - private DnsResStrategyService dnsResStrategyService; private FunctionServiceDict serviceDict; private FunctionRegionDict regionDict; - private PolicyGroupInfoService policyGroupInfoService; +// private PolicyGroupInfoDao policyGroupInfoDao; +// private DnsResStrategyDao dnsResStrategyDao; public CheckDnsResStrategyFormatThread(FunctionServiceDict serviceDict,FunctionRegionDict regionDict,Properties prop,BlockingQueue srcQueue,BlockingQueue destQueue) { this.serviceDict=serviceDict; this.regionDict=regionDict; this.srcQueue=srcQueue; this.destQueue=destQueue; this.prop=prop; +// this.dnsResStrategyDao=SpringContextHolder.getBean(DnsResStrategyDao.class); +// this.policyGroupInfoDao=SpringContextHolder.getBean(PolicyGroupInfoDao.class); } @Override public String call() throws Exception { @@ -79,7 +76,8 @@ public class CheckDnsResStrategyFormatThread implements Callable{ errInfo.append(String.format(prop.getProperty("can_not_null"), prop.getProperty("group")) + ";"); }else { - PolicyGroupInfo info=policyGroupInfoService.getById(resGroup1Id); + PolicyGroupInfo info=DictUtils.getDnsGroups(resGroup1Id); +// PolicyGroupInfo info=policyGroupInfoDao.getById(resGroup1Id); if(info==null) { errInfo.append(String.format(prop.getProperty("is_incorrect"), prop.getProperty("group")) + ";"); @@ -139,17 +137,5 @@ public class CheckDnsResStrategyFormatThread implements Callable{ } return dnsResStrategies; } - public DnsResStrategyService getDnsResStrategyService() { - return dnsResStrategyService; - } - public void setDnsResStrategyService(DnsResStrategyService dnsResStrategyService) { - this.dnsResStrategyService = dnsResStrategyService; - } - public PolicyGroupInfoService getPolicyGroupInfoService() { - return policyGroupInfoService; - } - public void setPolicyGroupInfoService(PolicyGroupInfoService policyGroupInfoService) { - this.policyGroupInfoService = policyGroupInfoService; - } } 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 6cfa4627b..b541b4e52 100644 --- a/src/main/java/com/nis/util/excel/thread/CheckIpFormatThread.java +++ b/src/main/java/com/nis/util/excel/thread/CheckIpFormatThread.java @@ -26,23 +26,24 @@ import com.nis.domain.specific.ConfigGroupInfo; import com.nis.util.AsnCacheUtils; import com.nis.util.Constants; import com.nis.util.DictUtils; -import com.nis.web.service.configuration.DnsResStrategyService; public class CheckIpFormatThread implements Callable{ private Logger logger=Logger.getLogger(CheckIpFormatThread.class); private BlockingQueue srcQueue; private BlockingQueue destQueue; private Properties prop; - private DnsResStrategyService dnsResStrategyService; +// private DnsResStrategyService dnsResStrategyService; private FunctionServiceDict serviceDict; private FunctionRegionDict regionDict; private List> asnNoMaps; +// private DnsResStrategyDao dnsResStrategyDao; public CheckIpFormatThread(FunctionServiceDict serviceDict,FunctionRegionDict regionDict,Properties prop,BlockingQueue srcQueue,BlockingQueue destQueue) { this.serviceDict=serviceDict; this.regionDict=regionDict; this.srcQueue=srcQueue; this.destQueue=destQueue; this.prop=prop; +// this.dnsResStrategyDao=SpringContextHolder.getBean(DnsResStrategyDao.class); } @Override public String call() throws Exception { @@ -170,8 +171,7 @@ public class CheckIpFormatThread implements Callable{ if (regionDict.getFunctionId().equals(7)) { Integer dnsStrategyId = baseIpCfg.getDnsStrategyId(); if (dnsStrategyId != null&&dnsStrategyId>0) { - List dnsStrategys = dnsResStrategyService - .findDnsResStrategys(Long.valueOf(dnsStrategyId), Constants.VALID_YES, Constants.AUDIT_YES); + List dnsStrategys = DictUtils.getDnsResStrategyList(Long.valueOf(dnsStrategyId)); if (dnsStrategys == null || dnsStrategys.size() == 0) { errInfo.append( String.format(prop.getProperty("is_incorrect"), prop.getProperty("dns_res_strategy")) @@ -184,8 +184,7 @@ public class CheckIpFormatThread implements Callable{ Integer dnsStrategyId = baseIpCfg.getDnsStrategyId(); if (dnsStrategyId != null) { if(dnsStrategyId>0) { - List dnsStrategys = dnsResStrategyService - .findDnsResStrategys(Long.valueOf(dnsStrategyId), Constants.VALID_YES, Constants.AUDIT_YES); + List dnsStrategys = DictUtils.getDnsResStrategyList(Long.valueOf(dnsStrategyId)); if (dnsStrategys == null || dnsStrategys.size() == 0) { errInfo.append( String.format(prop.getProperty("is_incorrect"), prop.getProperty("dns_res_strategy")) @@ -1032,12 +1031,6 @@ public class CheckIpFormatThread implements Callable{ return matchType; } - public DnsResStrategyService getDnsResStrategyService() { - return dnsResStrategyService; - } - public void setDnsResStrategyService(DnsResStrategyService dnsResStrategyService) { - this.dnsResStrategyService = dnsResStrategyService; - } public List> getAsnNoMaps() { return asnNoMaps; } diff --git a/src/main/java/com/nis/util/excel/thread/CheckStringFormatThread.java b/src/main/java/com/nis/util/excel/thread/CheckStringFormatThread.java index 61c22ba27..ff7e7d6e1 100644 --- a/src/main/java/com/nis/util/excel/thread/CheckStringFormatThread.java +++ b/src/main/java/com/nis/util/excel/thread/CheckStringFormatThread.java @@ -22,14 +22,13 @@ import com.nis.domain.SysDataDictionaryItem; import com.nis.domain.configuration.BaseStringCfg; import com.nis.util.Constants; import com.nis.util.DictUtils; -import com.nis.web.service.configuration.DnsResStrategyService; public class CheckStringFormatThread implements Callable{ private Logger logger=Logger.getLogger(CheckStringFormatThread.class); private BlockingQueue srcQueue; private BlockingQueue> destQueue; private Properties prop; - private DnsResStrategyService dnsResStrategyService; +// private DnsResStrategyDao dnsResStrategyDao; private FunctionServiceDict serviceDict; private FunctionRegionDict regionDict; public CheckStringFormatThread(FunctionServiceDict serviceDict,FunctionRegionDict regionDict,Properties prop,BlockingQueue srcQueue,BlockingQueue> destQueue) { @@ -38,6 +37,7 @@ public class CheckStringFormatThread implements Callable{ this.srcQueue=srcQueue; this.destQueue=destQueue; this.prop=prop; +// this.dnsResStrategyDao=SpringContextHolder.getBean(DnsResStrategyDao.class); } @Override public String call() throws Exception { @@ -320,11 +320,4 @@ public class CheckStringFormatThread implements Callable{ logger.warn("validate stringCfg data finish,cost:"+(end-start)); return stringList; } - - public DnsResStrategyService getDnsResStrategyService() { - return dnsResStrategyService; - } - public void setDnsResStrategyService(DnsResStrategyService dnsResStrategyService) { - this.dnsResStrategyService = dnsResStrategyService; - } } diff --git a/src/main/java/com/nis/web/controller/BaseController.java b/src/main/java/com/nis/web/controller/BaseController.java index 4f57523db..82715a163 100644 --- a/src/main/java/com/nis/web/controller/BaseController.java +++ b/src/main/java/com/nis/web/controller/BaseController.java @@ -869,7 +869,6 @@ public class BaseController { List> futures=new ArrayList<>(); for(int i=0;i> futures=new ArrayList<>(); for(int i=0;i> futures=new ArrayList<>(); for(int i=0;i> futures=new ArrayList<>(); for(int i=0;i cfgs) { + List dnsIpCfgs=Lists.newArrayList(cfgs.size()); for(BaseIpCfg cfg:cfgs) { DnsIpCfg _cfg=new DnsIpCfg(); BeanUtils.copyProperties(cfg, _cfg); - saveOrUpdate(_cfg); + dnsIpCfgs.add(_cfg); + } + SqlSessionFactory sqlSessionFactory=SpringContextHolder.getBean(SqlSessionFactory.class); + SqlSession batchSqlSession = null; + try{ + batchSqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false); + for(int index = 0; index < dnsIpCfgs.size();index++){ + DnsIpCfg dnsIpCfg = dnsIpCfgs.get(index); + //如果insert加入了select last_insert_id,会拖慢6~7倍以上的效率 + ((DnsIpCfgDao) batchSqlSession.getMapper(DnsIpCfgDao.class)).insert(dnsIpCfg); + } + batchSqlSession.commit(); + }finally { + if(batchSqlSession != null){ + batchSqlSession.close(); + } } } @Transactional(readOnly=false,rollbackFor=RuntimeException.class)