(1)将excel相关的线程类划分到thread包下
(2)Ddos验证时如果协议为空,设置协议值为空字符串 (3)Ddos ip导入改为批量导入
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
package com.nis.util.excel;
|
package com.nis.util.excel.thread;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.nis.util.excel;
|
package com.nis.util.excel.thread;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.nis.util.excel;
|
package com.nis.util.excel.thread;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -278,6 +278,8 @@ public class CheckIpFormatThread implements Callable<String>{
|
|||||||
String.format(prop.getProperty("can_not_null"), prop.getProperty("pps_threadshold"))
|
String.format(prop.getProperty("can_not_null"), prop.getProperty("pps_threadshold"))
|
||||||
+ ";");
|
+ ";");
|
||||||
}
|
}
|
||||||
|
}else {
|
||||||
|
baseIpCfg.setAntiddosProtocol("");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (regionDict.getRegionType().equals(1)) {
|
if (regionDict.getRegionType().equals(1)) {
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.nis.util.excel;
|
package com.nis.util.excel.thread;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -85,12 +85,12 @@ import com.nis.util.DateUtils;
|
|||||||
import com.nis.util.DictUtils;
|
import com.nis.util.DictUtils;
|
||||||
import com.nis.util.JsonMapper;
|
import com.nis.util.JsonMapper;
|
||||||
import com.nis.util.StringUtil;
|
import com.nis.util.StringUtil;
|
||||||
import com.nis.util.excel.CheckComplexStringFormatThread;
|
|
||||||
import com.nis.util.excel.CheckDnsResStrategyFormatThread;
|
|
||||||
import com.nis.util.excel.CheckIpFormatThread;
|
|
||||||
import com.nis.util.excel.CheckStringFormatThread;
|
|
||||||
import com.nis.util.excel.ExportExcel;
|
import com.nis.util.excel.ExportExcel;
|
||||||
import com.nis.util.excel.ImportBigExcel;
|
import com.nis.util.excel.ImportBigExcel;
|
||||||
|
import com.nis.util.excel.thread.CheckComplexStringFormatThread;
|
||||||
|
import com.nis.util.excel.thread.CheckDnsResStrategyFormatThread;
|
||||||
|
import com.nis.util.excel.thread.CheckIpFormatThread;
|
||||||
|
import com.nis.util.excel.thread.CheckStringFormatThread;
|
||||||
import com.nis.web.dao.configuration.IpCfgDao;
|
import com.nis.web.dao.configuration.IpCfgDao;
|
||||||
import com.nis.web.dao.configuration.WebsiteCfgDao;
|
import com.nis.web.dao.configuration.WebsiteCfgDao;
|
||||||
import com.nis.web.security.UserUtils;
|
import com.nis.web.security.UserUtils;
|
||||||
@@ -1183,42 +1183,33 @@ public class BaseController {
|
|||||||
BlockingQueue<IpRateLimitTemplate> list = ei.getDataList(IpRateLimitTemplate.class
|
BlockingQueue<IpRateLimitTemplate> list = ei.getDataList(IpRateLimitTemplate.class
|
||||||
);
|
);
|
||||||
ipPortCfgs=this.checkIpCfgMulity(serviceDict, regionDict, null, list);
|
ipPortCfgs=this.checkIpCfgMulity(serviceDict, regionDict, null, list);
|
||||||
// ipPortCfgs = this.checkIpCfg(serviceDict, regionDict,null, list);
|
|
||||||
} else {
|
} else {
|
||||||
BlockingQueue<IpAllTemplate> list = ei.getDataList(IpAllTemplate.class );
|
BlockingQueue<IpAllTemplate> list = ei.getDataList(IpAllTemplate.class );
|
||||||
// ipPortCfgs = this.checkIpCfg(serviceDict, regionDict,null, list);
|
|
||||||
ipPortCfgs=this.checkIpCfgMulity(serviceDict, regionDict, null, list);
|
ipPortCfgs=this.checkIpCfgMulity(serviceDict, regionDict, null, list);
|
||||||
}
|
}
|
||||||
} else if (regionDict.getFunctionId().equals(7)&&serviceDict!=null&&serviceDict.getAction().intValue()==16) {
|
} else if (regionDict.getFunctionId().equals(7)&&serviceDict!=null&&serviceDict.getAction().intValue()==16) {
|
||||||
BlockingQueue<DnsIpTemplate> list = ei.getDataList(DnsIpTemplate.class );
|
BlockingQueue<DnsIpTemplate> list = ei.getDataList(DnsIpTemplate.class );
|
||||||
// ipPortCfgs = this.checkIpCfg(serviceDict, regionDict,null, list);
|
|
||||||
ipPortCfgs=this.checkIpCfgMulity(serviceDict, regionDict, null, list);
|
ipPortCfgs=this.checkIpCfgMulity(serviceDict, regionDict, null, list);
|
||||||
}else if(regionDict.getFunctionId().equals(401)) {
|
}else if(regionDict.getFunctionId().equals(401)) {
|
||||||
BlockingQueue<DnsIpTemplate> list = ei.getDataList(DnsIpTemplate.class );
|
BlockingQueue<DnsIpTemplate> list = ei.getDataList(DnsIpTemplate.class );
|
||||||
// ipPortCfgs = this.checkIpCfg(serviceDict, regionDict,null, list);
|
|
||||||
ipPortCfgs=this.checkIpCfgMulity(serviceDict, regionDict, null, list);
|
ipPortCfgs=this.checkIpCfgMulity(serviceDict, regionDict, null, list);
|
||||||
}else if (regionDict.getFunctionId().equals(212)) {
|
}else if (regionDict.getFunctionId().equals(212)) {
|
||||||
BlockingQueue<IpPayloadTemplate> list = ei.getDataList(IpPayloadTemplate.class );
|
BlockingQueue<IpPayloadTemplate> list = ei.getDataList(IpPayloadTemplate.class );
|
||||||
// ipPortCfgs = this.checkIpCfg(serviceDict, regionDict,null, list);
|
|
||||||
ipPortCfgs=this.checkIpCfgMulity(serviceDict, regionDict, null, list);
|
ipPortCfgs=this.checkIpCfgMulity(serviceDict, regionDict, null, list);
|
||||||
} else if (regionDict.getFunctionId().equals(510)
|
} else if (regionDict.getFunctionId().equals(510)
|
||||||
&& "p2p_ip".equals(regionDict.getConfigServiceType())) { // P2p IP
|
&& "p2p_ip".equals(regionDict.getConfigServiceType())) { // P2p IP
|
||||||
BlockingQueue<P2pIpTemplate> list = ei.getDataList(P2pIpTemplate.class );
|
BlockingQueue<P2pIpTemplate> list = ei.getDataList(P2pIpTemplate.class );
|
||||||
// ipPortCfgs = this.checkIpCfg(serviceDict, regionDict,null, list);
|
|
||||||
ipPortCfgs=this.checkIpCfgMulity(serviceDict, regionDict, null, list);
|
ipPortCfgs=this.checkIpCfgMulity(serviceDict, regionDict, null, list);
|
||||||
} else if (regionDict.getFunctionId().equals(600)) {// ASN IP
|
} else if (regionDict.getFunctionId().equals(600)) {// ASN IP
|
||||||
//加载asn缓存
|
//加载asn缓存
|
||||||
AsnCacheUtils.init();
|
AsnCacheUtils.init();
|
||||||
BlockingQueue<AsnIpTemplate> list = ei.getDataList(AsnIpTemplate.class );
|
BlockingQueue<AsnIpTemplate> list = ei.getDataList(AsnIpTemplate.class );
|
||||||
// ipPortCfgs = this.checkIpCfg(serviceDict, regionDict,asnNoMaps, list);
|
|
||||||
ipPortCfgs=this.checkIpCfgMulity(serviceDict, regionDict, asnNoMaps, list);
|
ipPortCfgs=this.checkIpCfgMulity(serviceDict, regionDict, asnNoMaps, list);
|
||||||
} else if (regionDict.getFunctionId().equals(301)) {// DDOS IP
|
} else if (regionDict.getFunctionId().equals(301)) {// DDOS IP
|
||||||
BlockingQueue<DdosIpTemplate> list = ei.getDataList(DdosIpTemplate.class );
|
BlockingQueue<DdosIpTemplate> list = ei.getDataList(DdosIpTemplate.class );
|
||||||
// ipPortCfgs = this.checkIpCfg(serviceDict, regionDict,null, list);
|
|
||||||
ipPortCfgs=this.checkIpCfgMulity(serviceDict, regionDict, null, list);
|
ipPortCfgs=this.checkIpCfgMulity(serviceDict, regionDict, null, list);
|
||||||
} else {
|
} else {
|
||||||
BlockingQueue<IpAllTemplate> list = ei.getDataList(IpAllTemplate.class );
|
BlockingQueue<IpAllTemplate> list = ei.getDataList(IpAllTemplate.class );
|
||||||
// ipPortCfgs = this.checkIpCfg(serviceDict, regionDict,null, list);
|
|
||||||
ipPortCfgs=this.checkIpCfgMulity(serviceDict, regionDict, null, list);
|
ipPortCfgs=this.checkIpCfgMulity(serviceDict, regionDict, null, list);
|
||||||
}
|
}
|
||||||
} else if (regionDict.getRegionType().equals(2)) {// 字符串类
|
} else if (regionDict.getRegionType().equals(2)) {// 字符串类
|
||||||
@@ -1226,16 +1217,13 @@ public class BaseController {
|
|||||||
&& "p2p_hash".equals(regionDict.getConfigServiceType())) { // P2p hash
|
&& "p2p_hash".equals(regionDict.getConfigServiceType())) { // P2p hash
|
||||||
BlockingQueue<P2pHashStringTemplate> list = ei.getDataList(P2pHashStringTemplate.class
|
BlockingQueue<P2pHashStringTemplate> list = ei.getDataList(P2pHashStringTemplate.class
|
||||||
);
|
);
|
||||||
// stringCfgs = this.checkStringCfg(serviceDict, regionDict, list);
|
|
||||||
stringCfgs=this.checkStringCfgMulity(serviceDict, regionDict, list);
|
stringCfgs=this.checkStringCfgMulity(serviceDict, regionDict, list);
|
||||||
}else if (regionDict.getFunctionId().equals(403)) {
|
}else if (regionDict.getFunctionId().equals(403)) {
|
||||||
BlockingQueue<AppDomainTemplate> list = ei.getDataList(AppDomainTemplate.class
|
BlockingQueue<AppDomainTemplate> list = ei.getDataList(AppDomainTemplate.class
|
||||||
);
|
);
|
||||||
// stringCfgs = this.checkStringCfg(serviceDict, regionDict, list);
|
|
||||||
stringCfgs=this.checkStringCfgMulity(serviceDict, regionDict, list);
|
stringCfgs=this.checkStringCfgMulity(serviceDict, regionDict, list);
|
||||||
} else {
|
} else {
|
||||||
BlockingQueue<StringAllTemplate> list = ei.getDataList(StringAllTemplate.class );
|
BlockingQueue<StringAllTemplate> list = ei.getDataList(StringAllTemplate.class );
|
||||||
// stringCfgs = this.checkStringCfg(serviceDict, regionDict, list);
|
|
||||||
stringCfgs=this.checkStringCfgMulity(serviceDict, regionDict, list);
|
stringCfgs=this.checkStringCfgMulity(serviceDict, regionDict, list);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1243,12 +1231,10 @@ public class BaseController {
|
|||||||
if (regionDict.getFunctionId().equals(7)&&serviceDict!=null&&serviceDict.getAction().intValue()==16) {
|
if (regionDict.getFunctionId().equals(7)&&serviceDict!=null&&serviceDict.getAction().intValue()==16) {
|
||||||
BlockingQueue<DnsComplexStringTemplate> list = ei.getDataList(DnsComplexStringTemplate.class
|
BlockingQueue<DnsComplexStringTemplate> list = ei.getDataList(DnsComplexStringTemplate.class
|
||||||
);
|
);
|
||||||
// complexkeywordCfgs = this.checkComplexStringCfg(serviceDict, regionDict, list);
|
|
||||||
complexkeywordCfgs = this.checkComplexStringCfgMulity(serviceDict, regionDict, list);
|
complexkeywordCfgs = this.checkComplexStringCfgMulity(serviceDict, regionDict, list);
|
||||||
} else {
|
} else {
|
||||||
BlockingQueue<ComplexStringAllTemplate> list = ei.getDataList(ComplexStringAllTemplate.class
|
BlockingQueue<ComplexStringAllTemplate> list = ei.getDataList(ComplexStringAllTemplate.class
|
||||||
);
|
);
|
||||||
// complexkeywordCfgs = this.checkComplexStringCfg(serviceDict, regionDict, list);
|
|
||||||
complexkeywordCfgs = this.checkComplexStringCfgMulity(serviceDict, regionDict, list);
|
complexkeywordCfgs = this.checkComplexStringCfgMulity(serviceDict, regionDict, list);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1256,7 +1242,6 @@ public class BaseController {
|
|||||||
if (regionDict.getFunctionId().equals(400)) {
|
if (regionDict.getFunctionId().equals(400)) {
|
||||||
BlockingQueue<DnsResStrategyTemplate> list = ei.getDataList(DnsResStrategyTemplate.class
|
BlockingQueue<DnsResStrategyTemplate> list = ei.getDataList(DnsResStrategyTemplate.class
|
||||||
);
|
);
|
||||||
// dnsResStrategies = this.checkDnsResStrategyCfg(serviceDict, regionDict, list);
|
|
||||||
dnsResStrategies=this.checkDnsResStrategyCfgMulity(serviceDict, regionDict, list);
|
dnsResStrategies=this.checkDnsResStrategyCfgMulity(serviceDict, regionDict, list);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,15 +7,20 @@ import java.util.HashMap;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.apache.ibatis.session.ExecutorType;
|
||||||
|
import org.apache.ibatis.session.SqlSession;
|
||||||
|
import org.apache.ibatis.session.SqlSessionFactory;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import com.beust.jcommander.internal.Lists;
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.nis.domain.Page;
|
import com.nis.domain.Page;
|
||||||
import com.nis.domain.callback.InlineIp;
|
import com.nis.domain.callback.InlineIp;
|
||||||
import com.nis.domain.configuration.BaseIpCfg;
|
import com.nis.domain.configuration.BaseIpCfg;
|
||||||
|
import com.nis.domain.configuration.CfgIndexInfo;
|
||||||
import com.nis.domain.configuration.DdosIpCfg;
|
import com.nis.domain.configuration.DdosIpCfg;
|
||||||
import com.nis.domain.configuration.IpPortCfg;
|
import com.nis.domain.configuration.IpPortCfg;
|
||||||
import com.nis.domain.maat.MaatCfg;
|
import com.nis.domain.maat.MaatCfg;
|
||||||
@@ -31,8 +36,10 @@ import com.nis.util.ConfigServiceUtil;
|
|||||||
import com.nis.util.Constants;
|
import com.nis.util.Constants;
|
||||||
import com.nis.util.StringUtil;
|
import com.nis.util.StringUtil;
|
||||||
import com.nis.web.dao.configuration.DdosCfgDao;
|
import com.nis.web.dao.configuration.DdosCfgDao;
|
||||||
|
import com.nis.web.dao.configuration.IpCfgDao;
|
||||||
import com.nis.web.security.UserUtils;
|
import com.nis.web.security.UserUtils;
|
||||||
import com.nis.web.service.BaseService;
|
import com.nis.web.service.BaseService;
|
||||||
|
import com.nis.web.service.SpringContextHolder;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -58,11 +65,28 @@ public class DdosCfgService extends BaseService{
|
|||||||
public DdosIpCfg getDdosIpCfg(Long cfgId) {
|
public DdosIpCfg getDdosIpCfg(Long cfgId) {
|
||||||
return ddosCfgDao.getDdosIpCfg(cfgId);
|
return ddosCfgDao.getDdosIpCfg(cfgId);
|
||||||
}
|
}
|
||||||
|
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
|
||||||
public void saveDdosIpCfg(List<BaseIpCfg> ipPortCfgs) {
|
public void saveDdosIpCfg(List<BaseIpCfg> ipPortCfgs) {
|
||||||
|
List<DdosIpCfg> ddosIpCfgS=Lists.newArrayList(ipPortCfgs.size());
|
||||||
for(BaseIpCfg cfg:ipPortCfgs) {
|
for(BaseIpCfg cfg:ipPortCfgs) {
|
||||||
DdosIpCfg ddosIpCfg=new DdosIpCfg();
|
DdosIpCfg ddosIpCfg=new DdosIpCfg();
|
||||||
BeanUtils.copyProperties(cfg, ddosIpCfg);
|
BeanUtils.copyProperties(cfg, ddosIpCfg);
|
||||||
saveOrUpdate(ddosIpCfg);
|
ddosIpCfgS.add(ddosIpCfg);
|
||||||
|
}
|
||||||
|
SqlSessionFactory sqlSessionFactory=SpringContextHolder.getBean(SqlSessionFactory.class);
|
||||||
|
SqlSession batchSqlSession = null;
|
||||||
|
try{
|
||||||
|
batchSqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false);
|
||||||
|
for(int index = 0; index < ddosIpCfgS.size();index++){
|
||||||
|
DdosIpCfg ddosIpCfg = ddosIpCfgS.get(index);
|
||||||
|
//如果insert加入了select last_insert_id,会拖慢6~7倍以上的效率
|
||||||
|
((DdosCfgDao) batchSqlSession.getMapper(DdosCfgDao.class)).insert(ddosIpCfg);
|
||||||
|
}
|
||||||
|
batchSqlSession.commit();
|
||||||
|
}finally {
|
||||||
|
if(batchSqlSession != null){
|
||||||
|
batchSqlSession.close();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
|
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
|
||||||
|
|||||||
Reference in New Issue
Block a user