asn 相关修改提交

(1)asn_ip_cfg增加四列
(2)新增asn_group_info表
(3)asn ip菜单移动到policy object下,新增审核审计菜单
(4)asn ip导入修改,适应新的需求放弃了使用AsnCache,直接从数据库查
(5)asn ip加入审核流程
(6)Packet IP选择asn时,改为选中一个组织,审核下发的配置为as号字符串域
(7)asn ip 新增业务新增function_service_dict字典,serviceId为400
This commit is contained in:
wangxin
2019-01-04 18:28:57 +06:00
parent 429b1841f1
commit 85507b5a55
44 changed files with 2596 additions and 767 deletions

View File

@@ -18,13 +18,13 @@ import com.beust.jcommander.internal.Lists;
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.PolicyGroupInfo;
import com.nis.domain.configuration.BaseIpCfg;
import com.nis.domain.configuration.DnsResStrategy;
import com.nis.domain.configuration.IpPortCfg;
import com.nis.domain.configuration.template.IpRateLimitTemplate;
import com.nis.domain.specific.ConfigGroupInfo;
import com.nis.util.AsnCacheUtils;
//import com.nis.util.AsnCacheUtils;
import com.nis.util.Constants;
import com.nis.util.DictUtils;
@@ -36,7 +36,8 @@ public class CheckIpFormatThread implements Callable<String>{
// private DnsResStrategyService dnsResStrategyService;
private FunctionServiceDict serviceDict;
private FunctionRegionDict regionDict;
private List<Map<Long,Integer>> asnNoMaps;
private List<Map<Long,AsnGroupInfo>> asnNoMaps;
private Map<Long,AsnGroupInfo> asnGroupInfos;
// private DnsResStrategyDao dnsResStrategyDao;
public CheckIpFormatThread(FunctionServiceDict serviceDict,FunctionRegionDict regionDict,Properties prop,BlockingQueue<? extends Object> srcQueue,BlockingQueue<BaseIpCfg> destQueue) {
this.serviceDict=serviceDict;
@@ -68,7 +69,7 @@ public class CheckIpFormatThread implements Callable<String>{
}
return msg.toString();
}
public List<BaseIpCfg> checkIpCfg(StringBuffer msg,List<Map<Long,Integer>> asnNos, List<Object> list)
public List<BaseIpCfg> checkIpCfg(StringBuffer msg,List<Map<Long,AsnGroupInfo>> asnNos, List<Object> list)
throws ServiceException {
logger.warn("start to validate ip...");
long start=System.currentTimeMillis();
@@ -104,7 +105,7 @@ public class CheckIpFormatThread implements Callable<String>{
IpPortCfg baseIpCfg = new IpPortCfg();
BeanUtils.copyProperties(list.get(i), baseIpCfg);
// 配置描述长度限制
if(baseIpCfg.getCfgDesc().length() > 128) {
if(baseIpCfg.getCfgDesc()!=null&&baseIpCfg.getCfgDesc().length() > 128) {
errInfo.append(prop.getProperty("config_describe")+prop.getProperty("length_error")+" "+String.format(prop.getProperty("max_length")+":128") + ";");
}
@@ -231,6 +232,18 @@ public class CheckIpFormatThread implements Callable<String>{
errInfo.append(
String.format(prop.getProperty("can_not_null"), prop.getProperty("asn_no"))
+ ";");
}else if(StringUtils.isBlank(baseIpCfg.getOrganization())){
errInfo.append(
String.format(prop.getProperty("can_not_null"), prop.getProperty("organization","Organization"))
+ ";");
}else if(StringUtils.isBlank(baseIpCfg.getCountry())){
errInfo.append(
String.format(prop.getProperty("can_not_null"), prop.getProperty("country","Country"))
+ ";");
}else if(StringUtils.isBlank(baseIpCfg.getDetail())){
errInfo.append(
String.format(prop.getProperty("can_not_null"), prop.getProperty("detail","Detail"))
+ ";");
}else {
try {
Long asnNo=Long.parseLong(userRegion1);
@@ -240,13 +253,32 @@ public class CheckIpFormatThread implements Callable<String>{
+ ";");
}else {
// ConfigGroupInfo configGroupInfo=asnIpCfgService.getConfigGroupInfoByAsnNo(asnNo);
ConfigGroupInfo configGroupInfo=AsnCacheUtils.get(asnNo);
if(asnNos!=null) {
AsnGroupInfo configGroupInfo=asnGroupInfos==null?null:asnGroupInfos.get(asnNo);//从缓存中取
//缓存中没有
if(configGroupInfo==null) {
asnNos.get(0).put(asnNo,-1);
synchronized (Constants.IMPORT_LOCK) {
AsnGroupInfo groupInfo=new AsnGroupInfo();
groupInfo.setOrganization(baseIpCfg.getOrganization().trim());
groupInfo.setCountry(baseIpCfg.getCountry().trim());
groupInfo.setDetail(baseIpCfg.getDetail().trim());
groupInfo.setIsValid(0);
groupInfo.setAsnId(asnNo);
asnNos.get(0).put(asnNo,groupInfo);
}
}else {
asnNos.get(1).put(asnNo,configGroupInfo.getGroupId());
if(!configGroupInfo.getOrganization().equals(baseIpCfg.getOrganization().trim())) {
errInfo.append(prop.getProperty("organization","Organization")+" "+prop.getProperty("mismatch","Mismatch"));
}
if(!configGroupInfo.getCountry().equals(baseIpCfg.getCountry().trim())) {
errInfo.append(prop.getProperty("country","Country")+" "+prop.getProperty("mismatch","Mismatch"));
}
if(!configGroupInfo.getDetail().equals(baseIpCfg.getDetail().trim())) {
errInfo.append(prop.getProperty("detail","Detail")+" "+prop.getProperty("mismatch","Mismatch"));
}
if(StringUtils.isBlank(errInfo.toString())) {
asnNos.get(1).put(asnNo,configGroupInfo);
}
}
}
}
@@ -259,6 +291,28 @@ public class CheckIpFormatThread implements Callable<String>{
+ ";");
}
}
String organization=baseIpCfg.getOrganization();
if(StringUtils.isBlank(organization)) {
errInfo.append(
String.format(prop.getProperty("can_not_null"), prop.getProperty("organization","Organization"))
+ ";");
}else {
baseIpCfg.setCfgDesc(organization);
}
String country=baseIpCfg.getCountry();
if(StringUtils.isBlank(country)) {
errInfo.append(
String.format(prop.getProperty("can_not_null"), prop.getProperty("country"))
+ ";");
}
String detail=baseIpCfg.getDetail();
if(StringUtils.isBlank(detail)) {
errInfo.append(
String.format(prop.getProperty("can_not_null"), prop.getProperty("detail"))
+ ";");
}
}
if (regionDict.getFunctionId().equals(301)) {
String antiddosProtocol=baseIpCfg.getAntiddosProtocol();
@@ -1138,11 +1192,17 @@ public class CheckIpFormatThread implements Callable<String>{
return matchType;
}
public List<Map<Long, Integer>> getAsnNoMaps() {
public List<Map<Long, AsnGroupInfo>> getAsnNoMaps() {
return asnNoMaps;
}
public void setAsnNoMaps(List<Map<Long, Integer>> asnNoMaps) {
public void setAsnNoMaps(List<Map<Long, AsnGroupInfo>> asnNoMaps) {
this.asnNoMaps = asnNoMaps;
}
public Map<Long, AsnGroupInfo> getAsnGroupInfos() {
return asnGroupInfos;
}
public void setAsnGroupInfos(Map<Long, AsnGroupInfo> asnGroupInfos) {
this.asnGroupInfos = asnGroupInfos;
}
}

View File

@@ -1,7 +1,6 @@
package com.nis.util.excel.thread;
import java.util.List;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.Callable;
import java.util.concurrent.LinkedBlockingQueue;
@@ -12,10 +11,12 @@ import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.DefaultTransactionDefinition;
import com.beust.jcommander.internal.Lists;
import com.nis.domain.basics.AsnGroupInfo;
import com.nis.domain.basics.AsnIpCfg;
import com.nis.domain.specific.ConfigGroupInfo;
import com.nis.util.AsnCacheUtils;
import com.nis.util.Constants;
import com.nis.web.dao.basics.AsnGroupInfoDao;
import com.nis.web.dao.basics.AsnIpCfgDao;
import com.nis.web.dao.specific.ConfigGroupInfoDao;
import com.nis.web.service.SpringContextHolder;
@@ -23,10 +24,12 @@ import com.nis.web.service.basics.AsnIpCfgService;
public class DeleteAsnIpTread implements Callable<Throwable> {
private BlockingQueue<Long> asnNos;
private AsnGroupInfoDao asnGroupInfoDao;
private ConfigGroupInfoDao configGroupInfoDao;
private AsnIpCfgDao asnIpCfgDao;
public DeleteAsnIpTread(BlockingQueue<Long> asnNos) {
this.asnNos=asnNos;
this.asnGroupInfoDao=SpringContextHolder.getBean(AsnGroupInfoDao.class);
this.configGroupInfoDao=SpringContextHolder.getBean(ConfigGroupInfoDao.class);
this.asnIpCfgDao=SpringContextHolder.getBean(AsnIpCfgDao.class);
}
@@ -37,20 +40,29 @@ public class DeleteAsnIpTread implements Callable<Throwable> {
List<Long> asnIds=Lists.newArrayList();
DataSourceTransactionManager transactionManager=(DataSourceTransactionManager)SpringContextHolder.getBean("transactionManager");
LinkedBlockingQueue<AsnIpCfg> toDelAndSendAsnIpCfgs=new LinkedBlockingQueue<AsnIpCfg>();
List<ConfigGroupInfo> configGroupInfos=configGroupInfoDao.findAllList(4);
while(!asnNos.isEmpty()) {
asnNos.drainTo(asnNoList,5);
for(Long asnNo:asnNoList) {
ConfigGroupInfo configGroupInfo=AsnCacheUtils.get(asnNo);
AsnGroupInfo configGroupInfo=AsnCacheUtils.get(asnNo);
if(configGroupInfo==null) {
configGroupInfo=configGroupInfoDao.getInfoByAsnNo(asnNo);
configGroupInfo=new AsnGroupInfo();
configGroupInfo.setAsnId(asnNo);
configGroupInfo=asnGroupInfoDao.getInfoByAsnNo(configGroupInfo);
}
if(configGroupInfo.getIsIssued()==1) {//已下发
List<AsnIpCfg> _toDelAsnIpCfgs=asnIpCfgDao.getByAsnNo(configGroupInfo.getAsnId());
toDelAndSendAsnIpCfgs.addAll(_toDelAsnIpCfgs);
}else {
asnIds.add(asnNo);
for(ConfigGroupInfo cinfo:configGroupInfos) {
if(cinfo.getGroupId().intValue()==configGroupInfo.getGroupId().intValue()) {
if(cinfo.getIsIssued()==1) {//已下发
List<AsnIpCfg> _toDelAsnIpCfgs=asnIpCfgDao.getByAsnNo(configGroupInfo.getAsnId());
toDelAndSendAsnIpCfgs.addAll(_toDelAsnIpCfgs);
}else {
asnIds.add(asnNo);
}
break;
}
}
}
if(asnIds.size()>0) {
this.deleteByAsnNo(asnIds);
@@ -102,7 +114,7 @@ public class DeleteAsnIpTread implements Callable<Throwable> {
}
int result=0;
do {
result=asnIpCfgDao.deleteByAsnGroup(asnNoStr.toString().substring(0,asnNoStr.toString().length()-1));
result=asnIpCfgDao.deleteByAsnId(asnNoStr.toString().substring(0,asnNoStr.toString().length()-1));
}while(result>0);
//剔除
asnNoList.subList(0, pointsDataLimit).clear();
@@ -115,7 +127,7 @@ public class DeleteAsnIpTread implements Callable<Throwable> {
}
int result=0;
do {
result=asnIpCfgDao.deleteByAsnGroup(asnNoStr.toString().substring(0,asnNoStr.toString().length()-1));
result=asnIpCfgDao.deleteByAsnId(asnNoStr.toString().substring(0,asnNoStr.toString().length()-1));
}while(result>0);
asnNoList.clear();
}
@@ -127,7 +139,7 @@ public class DeleteAsnIpTread implements Callable<Throwable> {
}
int result=0;
do {
result=asnIpCfgDao.deleteByAsnGroup(asnNoStr.toString().substring(0,asnNoStr.toString().length()-1));
result=asnIpCfgDao.deleteByAsnId(asnNoStr.toString().substring(0,asnNoStr.toString().length()-1));
}while(result>0);
asnNoList.clear();
}

View File

@@ -18,17 +18,16 @@ import org.springframework.transaction.support.DefaultTransactionDefinition;
import com.beust.jcommander.internal.Lists;
import com.nis.domain.FunctionRegionDict;
import com.nis.domain.FunctionServiceDict;
import com.nis.domain.basics.AsnGroupInfo;
import com.nis.domain.basics.AsnIpCfg;
import com.nis.domain.basics.Varibles;
import com.nis.domain.configuration.BaseIpCfg;
import com.nis.domain.specific.ConfigGroupInfo;
import com.nis.exceptions.MaatConvertException;
import com.nis.util.AsnCacheUtils;
import com.nis.util.ConfigServiceUtil;
import com.nis.util.Constants;
import com.nis.util.StringUtil;
import com.nis.web.dao.basics.AsnGroupInfoDao;
import com.nis.web.dao.basics.AsnIpCfgDao;
import com.nis.web.dao.specific.ConfigGroupInfoDao;
import com.nis.web.security.UserUtils;
import com.nis.web.service.SpringContextHolder;
import com.nis.web.service.basics.AsnIpCfgService;
@@ -42,7 +41,7 @@ public class SaveAsnIpThread implements Callable<Throwable>{
private List<Map<Long,Integer>> asnNoMaps;
private Integer requestId;
private AsnIpCfgDao asnIpCfgDao;
private ConfigGroupInfoDao configGroupInfoDao;
private AsnGroupInfoDao configGroupInfoDao;
// private AsnIpCfgService asnIpCfgService;
public SaveAsnIpThread(FunctionServiceDict serviceDict,FunctionRegionDict regionDict,Integer requestId,BlockingQueue<BaseIpCfg> ipPortCfgs) {
this.serviceDict=serviceDict;
@@ -50,7 +49,7 @@ public class SaveAsnIpThread implements Callable<Throwable>{
this.ipPortCfgs=ipPortCfgs;
this.requestId=requestId;
this.asnIpCfgDao=SpringContextHolder.getBean(AsnIpCfgDao.class);
this.configGroupInfoDao=SpringContextHolder.getBean(ConfigGroupInfoDao.class);
this.configGroupInfoDao=SpringContextHolder.getBean(AsnGroupInfoDao.class);
}
@Override
public Throwable call() {
@@ -113,9 +112,11 @@ public class SaveAsnIpThread implements Callable<Throwable>{
_cfg.setAsnIpGroup(asnNoMaps.get(1).get(Long.parseLong(_cfg.getUserRegion1())));
}else {
// ConfigGroupInfo info=asnIpCfgService.getConfigGroupInfoByAsnNo(Long.parseLong(_cfg.getUserRegion1()));
ConfigGroupInfo info=AsnCacheUtils.get(Long.parseLong(_cfg.getUserRegion1()));
AsnGroupInfo info=AsnCacheUtils.get(Long.parseLong(_cfg.getUserRegion1()));
if(info==null) {
info=configGroupInfoDao.getInfoByAsnNo(Long.parseLong(_cfg.getUserRegion1()));
info=new AsnGroupInfo();
info.setAsnId(Long.parseLong(_cfg.getUserRegion1()));
info=configGroupInfoDao.getInfoByAsnNo(info);
}
_cfg.setAsnIpGroup(info.getGroupId());
}