ASN导入全量,删除asnip逻辑修改为基于asn no的批量删除。
每次删除定量的asn ip cfg遍历,基于本批asn no,asn ip数量大于maat_send_size即删除并入库最新asn ip信息
This commit is contained in:
@@ -13,6 +13,7 @@ public final class Constants {
|
|||||||
*/
|
*/
|
||||||
public static final int IMPORT_LIMIT=Configurations.getIntProperty("import_limit",10000);
|
public static final int IMPORT_LIMIT=Configurations.getIntProperty("import_limit",10000);
|
||||||
public static final Object IMPORT_LOCK=new Object();
|
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 ADD_COMMON_REGION=Configurations.getStringProperty("addRegionToCommonGroup","");
|
||||||
public static final String UPDATE_COMMON_REIGON=Configurations.getStringProperty("updateRegionToCommonGroup","");
|
public static final String UPDATE_COMMON_REIGON=Configurations.getStringProperty("updateRegionToCommonGroup","");
|
||||||
public static final String DELETE_COMMON_REIGON=Configurations.getStringProperty("deleteRegionToCommonGroup","");
|
public static final String DELETE_COMMON_REIGON=Configurations.getStringProperty("deleteRegionToCommonGroup","");
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import com.nis.domain.FunctionRegionDict;
|
|||||||
import com.nis.domain.FunctionServiceDict;
|
import com.nis.domain.FunctionServiceDict;
|
||||||
import com.nis.domain.SysDataDictionaryItem;
|
import com.nis.domain.SysDataDictionaryItem;
|
||||||
import com.nis.domain.basics.AsnGroupInfo;
|
import com.nis.domain.basics.AsnGroupInfo;
|
||||||
|
import com.nis.domain.basics.AsnIpCfg;
|
||||||
import com.nis.domain.basics.PolicyGroupInfo;
|
import com.nis.domain.basics.PolicyGroupInfo;
|
||||||
import com.nis.domain.configuration.BaseIpCfg;
|
import com.nis.domain.configuration.BaseIpCfg;
|
||||||
import com.nis.domain.configuration.DnsResStrategy;
|
import com.nis.domain.configuration.DnsResStrategy;
|
||||||
@@ -44,6 +45,7 @@ public class CheckIpFormatThread implements Callable<String>{
|
|||||||
//【2】 所有的asn group info
|
//【2】 所有的asn group info
|
||||||
//【3】 所有已审核通过的asn group info
|
//【3】 所有已审核通过的asn group info
|
||||||
private List<Map<Long,AsnGroupInfo>> asnNoMaps;
|
private List<Map<Long,AsnGroupInfo>> asnNoMaps;
|
||||||
|
private Map<String,List<IpPortCfg>> asnIpMap;
|
||||||
//组织之间的关系
|
//组织之间的关系
|
||||||
//【0】 新的组织信息
|
//【0】 新的组织信息
|
||||||
//【1】 旧的组织信息
|
//【1】 旧的组织信息
|
||||||
@@ -66,7 +68,7 @@ public class CheckIpFormatThread implements Callable<String>{
|
|||||||
int size=srcQueue.drainTo(dataList,Constants.MAAT_JSON_SEND_SIZE);
|
int size=srcQueue.drainTo(dataList,Constants.MAAT_JSON_SEND_SIZE);
|
||||||
if(regionDict.getRegionType().intValue()==1) {
|
if(regionDict.getRegionType().intValue()==1) {
|
||||||
try {
|
try {
|
||||||
List<BaseIpCfg> ipcfgs=this.checkIpCfg(msg,asnNoMaps, dataList);
|
List<BaseIpCfg> ipcfgs=this.checkIpCfg(msg,asnNoMaps,asnIpMap, dataList);
|
||||||
boolean success=destQueue.addAll(ipcfgs);
|
boolean success=destQueue.addAll(ipcfgs);
|
||||||
}catch (Exception e) {
|
}catch (Exception e) {
|
||||||
logger.error("checkIpCfg error,",e);
|
logger.error("checkIpCfg error,",e);
|
||||||
@@ -85,7 +87,7 @@ public class CheckIpFormatThread implements Callable<String>{
|
|||||||
|
|
||||||
return msg.toString();
|
return msg.toString();
|
||||||
}
|
}
|
||||||
public List<BaseIpCfg> checkIpCfg(StringBuffer msg,List<Map<Long,AsnGroupInfo>> asnNos, List<Object> list)
|
public List<BaseIpCfg> checkIpCfg(StringBuffer msg,List<Map<Long,AsnGroupInfo>> asnNos,Map<String, List<IpPortCfg>> asnIpCfgs, List<Object> list)
|
||||||
throws ServiceException {
|
throws ServiceException {
|
||||||
logger.warn("start to validate ip...");
|
logger.warn("start to validate ip...");
|
||||||
long start=System.currentTimeMillis();
|
long start=System.currentTimeMillis();
|
||||||
@@ -367,8 +369,6 @@ public class CheckIpFormatThread implements Callable<String>{
|
|||||||
asnNos.get(3).put(asnNo,asnGroupInfo);
|
asnNos.get(3).put(asnNo,asnGroupInfo);
|
||||||
}
|
}
|
||||||
asnNos.get(1).put(asnNo,asnGroupInfo);
|
asnNos.get(1).put(asnNo,asnGroupInfo);
|
||||||
asnGroupInfo.setIsValid(0);
|
|
||||||
asnGroupInfo.setIssuedIPs(0l);
|
|
||||||
asnGroupInfo.setOrganization(organization);
|
asnGroupInfo.setOrganization(organization);
|
||||||
asnGroupInfo.setCountry(baseIpCfg.getCountry());
|
asnGroupInfo.setCountry(baseIpCfg.getCountry());
|
||||||
asnGroupInfo.setDetail(baseIpCfg.getDetail());
|
asnGroupInfo.setDetail(baseIpCfg.getDetail());
|
||||||
@@ -955,6 +955,16 @@ public class CheckIpFormatThread implements Callable<String>{
|
|||||||
errTip.append(errInfo);
|
errTip.append(errInfo);
|
||||||
errTip.append("<br>");
|
errTip.append("<br>");
|
||||||
}else {
|
}else {
|
||||||
|
synchronized (Constants.IMPORT_ASN_LOCK) {
|
||||||
|
//asn根据asn号分组存储asn ip信息
|
||||||
|
if(StringUtil.isEmpty(asnIpCfgs.get(baseIpCfg.getUserRegion1()))){
|
||||||
|
List<IpPortCfg> asnIpList=new ArrayList<>();
|
||||||
|
asnIpList.add(baseIpCfg);
|
||||||
|
asnIpCfgs.put(baseIpCfg.getUserRegion1(), asnIpList);
|
||||||
|
}else{
|
||||||
|
asnIpCfgs.get(baseIpCfg.getUserRegion1()).add(baseIpCfg);
|
||||||
|
}
|
||||||
|
}
|
||||||
ipList.add(baseIpCfg);
|
ipList.add(baseIpCfg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1408,5 +1418,10 @@ public class CheckIpFormatThread implements Callable<String>{
|
|||||||
public void setAsnOrgList(List<Map<String, ConfigGroupInfo>> asnOrgList) {
|
public void setAsnOrgList(List<Map<String, ConfigGroupInfo>> asnOrgList) {
|
||||||
this.asnOrgList = asnOrgList;
|
this.asnOrgList = asnOrgList;
|
||||||
}
|
}
|
||||||
|
public Map<String, List<IpPortCfg>> getAsnIpMap() {
|
||||||
|
return asnIpMap;
|
||||||
|
}
|
||||||
|
public void setAsnIpMap(Map<String, List<IpPortCfg>> asnIpMap) {
|
||||||
|
this.asnIpMap = asnIpMap;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -958,7 +958,7 @@ public class BaseController {
|
|||||||
* @throws InterruptedException
|
* @throws InterruptedException
|
||||||
* @throws ExecutionException
|
* @throws ExecutionException
|
||||||
*/
|
*/
|
||||||
public BlockingQueue<BaseIpCfg> checkIpCfgMulity(StringBuffer _msg,FunctionServiceDict serviceDict, FunctionRegionDict regionDict,List<Map<Long,AsnGroupInfo>> asnNos,List<Map<String,ConfigGroupInfo>> asnOrgList, BlockingQueue<? extends Object> list) throws ServiceException, InterruptedException, ExecutionException{
|
public BlockingQueue<BaseIpCfg> checkIpCfgMulity(StringBuffer _msg,FunctionServiceDict serviceDict, FunctionRegionDict regionDict,List<Map<Long,AsnGroupInfo>> asnNos,List<Map<String,ConfigGroupInfo>> asnOrgList,Map<String,List<IpPortCfg>> asnIpMap, BlockingQueue<? extends Object> list) throws ServiceException, InterruptedException, ExecutionException{
|
||||||
logger.warn("start checkIpCfgMulity ,size "+list.size());
|
logger.warn("start checkIpCfgMulity ,size "+list.size());
|
||||||
long start=System.currentTimeMillis();
|
long start=System.currentTimeMillis();
|
||||||
BlockingQueue<BaseIpCfg> queue=new ArrayBlockingQueue<>(list.size());
|
BlockingQueue<BaseIpCfg> queue=new ArrayBlockingQueue<>(list.size());
|
||||||
@@ -970,6 +970,66 @@ public class BaseController {
|
|||||||
CheckIpFormatThread t=new CheckIpFormatThread(serviceDict,regionDict, props, list, queue);
|
CheckIpFormatThread t=new CheckIpFormatThread(serviceDict,regionDict, props, list, queue);
|
||||||
t.setAsnNoMaps(asnNos);
|
t.setAsnNoMaps(asnNos);
|
||||||
t.setAsnOrgList(asnOrgList);
|
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<String> 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<BaseIpCfg> checkAsnIpCfgMulity(StringBuffer _msg,FunctionServiceDict serviceDict, FunctionRegionDict regionDict,List<Map<Long,AsnGroupInfo>> asnNos,List<Map<String,ConfigGroupInfo>> asnOrgList,Map<String,List<IpPortCfg>> asnIpMap, BlockingQueue<? extends Object> list) throws ServiceException, InterruptedException, ExecutionException{
|
||||||
|
logger.warn("start checkIpCfgMulity ,size "+list.size());
|
||||||
|
long start=System.currentTimeMillis();
|
||||||
|
BlockingQueue<BaseIpCfg> queue=new ArrayBlockingQueue<>(list.size());
|
||||||
|
ExecutorService service=Executors.newFixedThreadPool(Constants.MULITY_THREAD_SIZE);
|
||||||
|
List<Future<String>> futures=new ArrayList<>();
|
||||||
|
|
||||||
|
Properties props=this.getMsgProp();
|
||||||
|
for(int i=0;i<Constants.MULITY_THREAD_SIZE;i++) {
|
||||||
|
CheckIpFormatThread t=new CheckIpFormatThread(serviceDict,regionDict, props, list, queue);
|
||||||
|
t.setAsnNoMaps(asnNos);
|
||||||
|
t.setAsnOrgList(asnOrgList);
|
||||||
|
t.setAsnIpMap(asnIpMap);
|
||||||
futures.add(service.submit(t));
|
futures.add(service.submit(t));
|
||||||
}
|
}
|
||||||
service.shutdown();
|
service.shutdown();
|
||||||
@@ -1410,6 +1470,8 @@ public class BaseController {
|
|||||||
*/
|
*/
|
||||||
public void _import(HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes,
|
public void _import(HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes,
|
||||||
MultipartFile[] files, Integer serviceDictId, String regionDictIds, Integer requestId, String attribute, String classify) {
|
MultipartFile[] files, Integer serviceDictId, String regionDictIds, Integer requestId, String attribute, String classify) {
|
||||||
|
int isNullIndex=0;
|
||||||
|
int ipIndex=0;
|
||||||
logger.warn("import start...");
|
logger.warn("import start...");
|
||||||
long start=System.currentTimeMillis();
|
long start=System.currentTimeMillis();
|
||||||
ImportBigExcel ei=null;
|
ImportBigExcel ei=null;
|
||||||
@@ -1440,6 +1502,7 @@ public class BaseController {
|
|||||||
Map<String,ConfigGroupInfo> oldOrgMap=Maps.newConcurrentMap();
|
Map<String,ConfigGroupInfo> oldOrgMap=Maps.newConcurrentMap();
|
||||||
asnOrgList.add(newOrgMap); //【0】 新的组织信息
|
asnOrgList.add(newOrgMap); //【0】 新的组织信息
|
||||||
asnOrgList.add(oldOrgMap);//【1】 旧的组织信息
|
asnOrgList.add(oldOrgMap);//【1】 旧的组织信息
|
||||||
|
Map<String,List<IpPortCfg>> asnIpMaps=Maps.newConcurrentMap();
|
||||||
FunctionRegionDict appRegion = null;
|
FunctionRegionDict appRegion = null;
|
||||||
FunctionRegionDict appFeatureRegion = null;
|
FunctionRegionDict appFeatureRegion = null;
|
||||||
if(serviceDict!=null) {
|
if(serviceDict!=null) {
|
||||||
@@ -1476,27 +1539,27 @@ public class BaseController {
|
|||||||
if (serviceDict!=null&&serviceDict.getAction().equals(64)) {
|
if (serviceDict!=null&&serviceDict.getAction().equals(64)) {
|
||||||
BlockingQueue<IpRateLimitTemplate> list = ei.getDataList(IpRateLimitTemplate.class
|
BlockingQueue<IpRateLimitTemplate> 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)) {
|
} else if(serviceDict!=null&&serviceDict.getAction().equals(32)) {
|
||||||
BlockingQueue<IpAllNotDoLogTemplate> list = ei.getDataList(IpAllNotDoLogTemplate.class );
|
BlockingQueue<IpAllNotDoLogTemplate> 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 {
|
} else {
|
||||||
BlockingQueue<IpAllTemplate> list = ei.getDataList(IpAllTemplate.class );
|
BlockingQueue<IpAllTemplate> 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) {
|
} 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.checkIpCfgMulity(errTip,serviceDict, regionDict, null,null, list);
|
ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,null,null, list);
|
||||||
}else if(regionDict.getFunctionId().equals(401)) {
|
}else if(regionDict.getFunctionId().equals(401)) {
|
||||||
BlockingQueue<DnsFakeIpTemplate> list = ei.getDataList(DnsFakeIpTemplate.class );
|
BlockingQueue<DnsFakeIpTemplate> 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)) {
|
}else if (regionDict.getFunctionId().equals(212)) {
|
||||||
BlockingQueue<IpPayloadTemplate> list = ei.getDataList(IpPayloadTemplate.class );
|
BlockingQueue<IpPayloadTemplate> 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)
|
} 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.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
|
} else if (regionDict.getFunctionId().equals(600)) {// ASN IP
|
||||||
ei.setHasImportLimit(false);
|
ei.setHasImportLimit(false);
|
||||||
//从数据库中读取
|
//从数据库中读取
|
||||||
@@ -1506,44 +1569,44 @@ public class BaseController {
|
|||||||
//初始化所有数据库中的组织信息
|
//初始化所有数据库中的组织信息
|
||||||
Map<String,ConfigGroupInfo> oldOrgMapData=configGroupInfoService.getConfigGroupInfo(asnOrgList,4);
|
Map<String,ConfigGroupInfo> oldOrgMapData=configGroupInfoService.getConfigGroupInfo(asnOrgList,4);
|
||||||
BlockingQueue<AsnIpTemplate> list = ei.getDataList(AsnIpTemplate.class );
|
BlockingQueue<AsnIpTemplate> 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
|
}else if (regionDict.getFunctionId().equals(301)) {// DDOS IP
|
||||||
BlockingQueue<DdosIpTemplate> list = ei.getDataList(DdosIpTemplate.class );
|
BlockingQueue<DdosIpTemplate> 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)阻断
|
}else if(regionDict.getFunctionId().equals(207)){// HTTP(s)阻断
|
||||||
BlockingQueue<HttpsRejectIpTemplate> list = ei.getDataList(HttpsRejectIpTemplate.class );
|
BlockingQueue<HttpsRejectIpTemplate> 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)重定向
|
}else if(regionDict.getFunctionId().equals(208)){// HTTP(s)重定向
|
||||||
BlockingQueue<HttpsRedirectIpTemplate> list = ei.getDataList(HttpsRedirectIpTemplate.class );
|
BlockingQueue<HttpsRedirectIpTemplate> 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)替换
|
}else if(regionDict.getFunctionId().equals(209)){// HTTP(s)替换
|
||||||
BlockingQueue<HttpsReplaceIpTemplate> list = ei.getDataList(HttpsReplaceIpTemplate.class );
|
BlockingQueue<HttpsReplaceIpTemplate> 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)白名单
|
}else if(regionDict.getFunctionId().equals(211)){// HTTP(s)白名单
|
||||||
BlockingQueue<IpAllNotDoLogTemplate> list = ei.getDataList(IpAllNotDoLogTemplate.class );
|
BlockingQueue<IpAllNotDoLogTemplate> 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)) {// 拦截策略
|
}else if(regionDict.getFunctionId().equals(200)) {// 拦截策略
|
||||||
if(serviceDict.getAction().equals(64)) {
|
if(serviceDict.getAction().equals(64)) {
|
||||||
BlockingQueue<IpRateLimitTemplate> list = ei.getDataList(IpRateLimitTemplate.class );
|
BlockingQueue<IpRateLimitTemplate> 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 {
|
}else {
|
||||||
BlockingQueue<IpAllNotDoLogTemplate> list = ei.getDataList(IpAllNotDoLogTemplate.class );
|
BlockingQueue<IpAllNotDoLogTemplate> 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白名单
|
}else if(regionDict.getFunctionId().equals(3)) { // IP白名单
|
||||||
BlockingQueue<IpWhitelistTemplate> list = ei.getDataList(IpWhitelistTemplate.class );
|
BlockingQueue<IpWhitelistTemplate> 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
|
}else if(regionDict.getFunctionId().equals(214)) { // IpSpoofing
|
||||||
BlockingQueue<IpSpoofingTemplate> list = ei.getDataList(IpSpoofingTemplate.class );
|
BlockingQueue<IpSpoofingTemplate> 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)
|
}else if(regionDict.getFunctionId().equals(405) || regionDict.getFunctionId().equals(563) || regionDict.getFunctionId().equals(565)
|
||||||
|| regionDict.getFunctionId().equals(566)) { // APP Feature IP
|
|| regionDict.getFunctionId().equals(566)) { // APP Feature IP
|
||||||
BlockingQueue<IpAllNotDoLogTemplate> list = ei.getDataList(IpAllNotDoLogTemplate.class );
|
BlockingQueue<IpAllNotDoLogTemplate> 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 {
|
}else {
|
||||||
BlockingQueue<IpAllTemplate> list = ei.getDataList(IpAllTemplate.class );
|
BlockingQueue<IpAllTemplate> 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)) {// 字符串类
|
} else if (regionDict.getRegionType().equals(2)) {// 字符串类
|
||||||
if (regionDict.getFunctionId().equals(510)
|
if (regionDict.getFunctionId().equals(510)
|
||||||
@@ -1653,10 +1716,148 @@ 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
|
||||||
//是否全量下发所有的asn info信息
|
|
||||||
List<SysDataDictionaryItem> isImportAll=DictUtils.getDictList("IS_ASN_IP_IMPORT_ALL");
|
List<SysDataDictionaryItem> isImportAll=DictUtils.getDictList("IS_ASN_IP_IMPORT_ALL");
|
||||||
//处理config_group_info和asn_group_info
|
//处理config_group_info和asn_group_info
|
||||||
asnIpCfgService.processGroup(serviceDict,asnNoMaps,asnOrgList,isSend,isImportAll.get(0).getItemCode());
|
asnIpCfgService.processGroup(serviceDict,asnNoMaps,asnOrgList,isSend,isImportAll.get(0).getItemCode());
|
||||||
|
if(!asnIpMaps.isEmpty()){
|
||||||
|
int index=0;
|
||||||
|
List<AsnIpCfg> asnIpCfgs=Lists.newArrayList();
|
||||||
|
String asnIds="";
|
||||||
|
List<Integer> regionIds=Lists.newArrayList();
|
||||||
|
try {
|
||||||
|
regionIds = ConfigServiceUtil.getId(3,ipPortCfgs.size());
|
||||||
|
} catch (Exception e1) {
|
||||||
|
e1.printStackTrace();
|
||||||
|
logger.info("获取域ID出错");
|
||||||
|
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>:"+e1.getMessage());
|
||||||
|
}
|
||||||
|
for (Entry<String, List<IpPortCfg>> 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")){
|
if(isImportAll.get(0).getItemCode().equals("1")){
|
||||||
asnNoMaps.get(3).clear();
|
asnNoMaps.get(3).clear();
|
||||||
@@ -1738,14 +1939,14 @@ public class BaseController {
|
|||||||
newAsnIpIndex++;
|
newAsnIpIndex++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/**********************新的asn ip达到最大量后发送一次***********************/
|
*//**********************新的asn ip达到最大量后发送一次***********************//*
|
||||||
//未下发过的asnGroup
|
//未下发过的asnGroup
|
||||||
if(newAsnIpIndex==Constants.MAAT_JSON_SEND_SIZE){
|
if(newAsnIpIndex==Constants.MAAT_JSON_SEND_SIZE){
|
||||||
asnIpCfgService.auditAsnIp(newAsnIpMap,asnNoMaps,"maat",newAsnIpIndex);
|
asnIpCfgService.auditAsnIp(newAsnIpMap,asnNoMaps,"maat",newAsnIpIndex);
|
||||||
newAsnIpMap.clear();
|
newAsnIpMap.clear();
|
||||||
newAsnIpIndex=0;
|
newAsnIpIndex=0;
|
||||||
}
|
}
|
||||||
/**********************新的asn ip达到最大量后发送一次***********************/
|
*//**********************新的asn ip达到最大量后发送一次***********************//*
|
||||||
//已下发过的asnGroup
|
//已下发过的asnGroup
|
||||||
if(oldAsnIpIndex==Constants.MAAT_JSON_SEND_SIZE){
|
if(oldAsnIpIndex==Constants.MAAT_JSON_SEND_SIZE){
|
||||||
asnIpCfgService.auditAsnIp(oldAsnIpMap,asnNoMaps,"common",oldAsnIpIndex);
|
asnIpCfgService.auditAsnIp(oldAsnIpMap,asnNoMaps,"common",oldAsnIpIndex);
|
||||||
@@ -1784,7 +1985,7 @@ public class BaseController {
|
|||||||
asnIpCfgs.clear();
|
asnIpCfgs.clear();
|
||||||
}
|
}
|
||||||
_ipPortCfgs.clear();
|
_ipPortCfgs.clear();
|
||||||
}
|
}*/
|
||||||
}else if(regionDict.getFunctionId().intValue()==214) { // IpSpoofing
|
}else if(regionDict.getFunctionId().intValue()==214) { // IpSpoofing
|
||||||
List<BaseIpCfg> _ipPortCfgs=Lists.newArrayList(Constants.MAAT_JSON_SEND_SIZE);
|
List<BaseIpCfg> _ipPortCfgs=Lists.newArrayList(Constants.MAAT_JSON_SEND_SIZE);
|
||||||
while(!ipPortCfgs.isEmpty()) {
|
while(!ipPortCfgs.isEmpty()) {
|
||||||
|
|||||||
@@ -173,13 +173,14 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
|
|||||||
}*/
|
}*/
|
||||||
}
|
}
|
||||||
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
|
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
|
||||||
public void saveAsnIp(List<AsnIpCfg> asnIpCfgs){
|
public void saveAsnIp(List<AsnIpCfg> asnIpCfgs,String asnIds){
|
||||||
logger.warn("Start to only save asn ip size:"+asnIpCfgs.size());
|
logger.warn("Start to only save asn ip size:"+asnIpCfgs.size());
|
||||||
long start=System.currentTimeMillis();
|
long start=System.currentTimeMillis();
|
||||||
SqlSessionFactory sqlSessionFactory=SpringContextHolder.getBean(SqlSessionFactory.class);
|
SqlSessionFactory sqlSessionFactory=SpringContextHolder.getBean(SqlSessionFactory.class);
|
||||||
SqlSession batchSqlSession = null;
|
SqlSession batchSqlSession = null;
|
||||||
try{
|
try{
|
||||||
if(!StringUtil.isEmpty(asnIpCfgs)){
|
if(!StringUtil.isEmpty(asnIpCfgs)){
|
||||||
|
asnIpCfgDao.deleteByAsnId(asnIds);
|
||||||
batchSqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false);
|
batchSqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false);
|
||||||
for (AsnIpCfg cfg : asnIpCfgs) {
|
for (AsnIpCfg cfg : asnIpCfgs) {
|
||||||
((AsnIpCfgDao) batchSqlSession.getMapper(AsnIpCfgDao.class)).insert(cfg);
|
((AsnIpCfgDao) batchSqlSession.getMapper(AsnIpCfgDao.class)).insert(cfg);
|
||||||
@@ -331,11 +332,11 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
|
|||||||
Integer serviceId=service.getServiceId();
|
Integer serviceId=service.getServiceId();
|
||||||
try{
|
try{
|
||||||
//1、删除所有asn ip
|
//1、删除所有asn ip
|
||||||
asnIpCfgDao.deleteAll();
|
//asnIpCfgDao.deleteAll();
|
||||||
//2、删除所有的asn_group_info
|
//2、删除所有的asn_group_info
|
||||||
asnGroupInfoDao.deleteAll();
|
//asnGroupInfoDao.deleteAll();
|
||||||
//3、删除所有的组织信息
|
//3、删除所有的组织信息
|
||||||
configGroupInfoDao.deleteAllAsnGroup();
|
//configGroupInfoDao.deleteAllAsnGroup();
|
||||||
batchSqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false);
|
batchSqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false);
|
||||||
//4、遍历保存所有的config_group_info
|
//4、遍历保存所有的config_group_info
|
||||||
if(!StringUtil.isEmpty(asnOrgList)){
|
if(!StringUtil.isEmpty(asnOrgList)){
|
||||||
@@ -343,7 +344,7 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
|
|||||||
Map<String,ConfigGroupInfo> oldOrgMap=asnOrgList.get(1);//【1】 旧的config group info
|
Map<String,ConfigGroupInfo> oldOrgMap=asnOrgList.get(1);//【1】 旧的config group info
|
||||||
|
|
||||||
//入库旧的asn组织信息
|
//入库旧的asn组织信息
|
||||||
if(!StringUtil.isEmpty(oldOrgMap)){
|
/*if(!StringUtil.isEmpty(oldOrgMap)){
|
||||||
index=0;
|
index=0;
|
||||||
for(Entry<String, ConfigGroupInfo> e:oldOrgMap.entrySet()) {
|
for(Entry<String, ConfigGroupInfo> e:oldOrgMap.entrySet()) {
|
||||||
ConfigGroupInfo configGroupInfo=e.getValue();
|
ConfigGroupInfo configGroupInfo=e.getValue();
|
||||||
@@ -355,7 +356,7 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
|
|||||||
index++;
|
index++;
|
||||||
}
|
}
|
||||||
batchSqlSession.commit();
|
batchSqlSession.commit();
|
||||||
}
|
}*/
|
||||||
|
|
||||||
//入库新的asn组织信息
|
//入库新的asn组织信息
|
||||||
if(!StringUtil.isEmpty(newOrgMap)){
|
if(!StringUtil.isEmpty(newOrgMap)){
|
||||||
@@ -415,7 +416,7 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
|
|||||||
batchSqlSession.commit();
|
batchSqlSession.commit();
|
||||||
}
|
}
|
||||||
//保存旧的asn信息
|
//保存旧的asn信息
|
||||||
if(!oldAsnGroup.isEmpty()){
|
/*if(!oldAsnGroup.isEmpty()){
|
||||||
index=0;
|
index=0;
|
||||||
for(Entry<Long, AsnGroupInfo> e:oldAsnGroup.entrySet()) {
|
for(Entry<Long, AsnGroupInfo> e:oldAsnGroup.entrySet()) {
|
||||||
AsnGroupInfo asnGroupInfo=e.getValue();
|
AsnGroupInfo asnGroupInfo=e.getValue();
|
||||||
@@ -428,7 +429,7 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
|
|||||||
index++;
|
index++;
|
||||||
}
|
}
|
||||||
batchSqlSession.commit();
|
batchSqlSession.commit();
|
||||||
}
|
}*/
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -438,7 +439,7 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
//6、配置取消所有编译[编译取消,编译下的所有group和region都会取消(已和服务端确认)]
|
//6、配置取消所有编译[编译取消,编译下的所有group和region都会取消(已和服务端确认)]
|
||||||
if(!StringUtil.isEmpty(deleteAsnCompile)){
|
/*if(!StringUtil.isEmpty(deleteAsnCompile)){
|
||||||
long startAudit=System.currentTimeMillis();
|
long startAudit=System.currentTimeMillis();
|
||||||
ToMaatBean maatBean = new ToMaatBean();
|
ToMaatBean maatBean = new ToMaatBean();
|
||||||
MaatCfg maatCfg = new MaatCfg();
|
MaatCfg maatCfg = new MaatCfg();
|
||||||
@@ -470,7 +471,7 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
|
|||||||
logger.info("ASN IP所有编译取消返回结果:"+result.getMsg());
|
logger.info("ASN IP所有编译取消返回结果:"+result.getMsg());
|
||||||
long resultEnd=System.currentTimeMillis();
|
long resultEnd=System.currentTimeMillis();
|
||||||
logger.warn("Cancle all ASN compile finish,cost:"+(resultEnd-auditEnd));
|
logger.warn("Cancle all ASN compile finish,cost:"+(resultEnd-auditEnd));
|
||||||
}
|
}*/
|
||||||
|
|
||||||
long end=System.currentTimeMillis();
|
long end=System.currentTimeMillis();
|
||||||
logger.warn("Save group finish,cost:"+(end-start));
|
logger.warn("Save group finish,cost:"+(end-start));
|
||||||
|
|||||||
Reference in New Issue
Block a user