(1)加入HTTP协议的Object-Group Policy

(2)修复增域删域的逻辑错误
(3)调整拦截自定义域
This commit is contained in:
wangxin
2019-06-20 16:53:23 +08:00
parent 0a695b3a51
commit 620f26fa2f
11 changed files with 156 additions and 101 deletions

View File

@@ -25,6 +25,7 @@ import com.nis.web.dao.CrudDao;
import com.nis.web.dao.basics.*;
import com.nis.web.dao.configuration.*;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringEscapeUtils;
import org.apache.ibatis.session.ExecutorType;
import org.apache.ibatis.session.SqlSession;
@@ -3332,12 +3333,17 @@ public abstract class BaseService {
//遍历,获取需要下发配置的组
StringBuffer realGroupIds=new StringBuffer();
for(PolicyGroupInfo policyGroupInfo:policyGroupInfos){
/*
UdFlag=0时为组新建或者域全部删除域全部删除时需要清空cfg_index_info与policy_group_info的关系如果cfg_index_info已经下发则需要更新配置去除这个组如果是cfg_index_info中最后一个组取消maat配置
UdFlag=1时组中有可选配置obj-group-policy界面中组处于可选状态该方法应不做任何处理
UdFlag=2时组跟配置有明确关联新增组下的域配置时如果该配置未下发过则不用处理如果有下发过则需下发最新的域。
*/
//if(policyGroupInfo.getUdFlag().equals(2)){
if(!policyGroupInfo.getUdFlag().equals(1)){
realGroupIds.append(policyGroupInfo.getServiceGroupId()).append(",");
//}
//所有域都删除的时候
if(policyGroupInfo.getUdFlag().equals(0)){
}
//realGroupIds中包含ipDeletedGroupsurlDeletedGroupssubIdDeletedGroupsdomainDeletedGroups
if(policyGroupInfo.getUdFlag().equals(0)){//所有域都删除的时候或者新建组的时候
if(policyGroupInfo.getGroupType().equals(Constants.IP_OBJ_GROUP_TYPE)){
ipDeletedGroups.add(policyGroupInfo.getServiceGroupId().toString());
}
@@ -3364,17 +3370,13 @@ public abstract class BaseService {
//查询cfg_index_info表获取所有用到了这个group_id的非删除配置
List<CfgIndexInfo> cfgIndexInfos=commonPolicyDao.getObjGroupListByGroupIds(realGroupIds.toString(),null,null);
CfgIndexInfo auditCfg=new CfgIndexInfo();
auditCfg.setTableName(CfgIndexInfo.getTablename());
auditCfg.setIsAudit(Constants.AUDIT_YES);
auditCfg.setAuditorId(UserUtils.getUser().getId());
auditCfg.setAuditTime(new Date());
List compileIds=new ArrayList();
//组织一个大的json
ToMaatBean maatBean = new ToMaatBean();
ToMaatBean cancelMaatBean = new ToMaatBean();
ServiceConfigTemplateUtil templateUtil=new ServiceConfigTemplateUtil();
Map<String,Object> interceptUserRegionMap=new HashMap<>();
Map<Integer,FunctionServiceDict> serviceDictMap=cfgIndexInfos.size()>0?ConfigConvertUtil.objGetServiceDict(cfgIndexInfos.get(0).getFunctionId()):new HashMap<Integer, FunctionServiceDict>();
for(CfgIndexInfo cfgIndexInfo:cfgIndexInfos){
Integer serviceId=cfgIndexInfo.getServiceId();
if(serviceId!=null&&StringUtils.isNotBlank(cfgIndexInfo.getCommonGroupIds())){
@@ -3391,35 +3393,31 @@ public abstract class BaseService {
Map<String,Object> userRgionMap=gsonFromJson(cfgIndexInfo.getCommonGroupIds(),Map.class);
cfgIndexInfo.setUserRegion(userRgionMap);
String oldCommonGroupIds=cfgIndexInfo.getCommonGroupIds();
//将所有要从配置中删除的组从配置中删除
this.processUserRegionMap(userRgionMap,"ipGroup",ipDeletedGroups,cfgIndexInfo,ipCommGroupCfgDao,IpCommCfg.class);
this.processUserRegionMap(userRgionMap,"urlGroup",urlDeletedGroups,cfgIndexInfo,urlCommGroupCfgDao,UrlCommCfg.class);
this.processUserRegionMap(userRgionMap,"subscribeIdGroup",subIdDeletedGroups,cfgIndexInfo,scriberIdCommGroupDao,ScriberIdCommCfg.class);
this.processUserRegionMap(userRgionMap,"domainGroup",domainDeletedGroups,cfgIndexInfo,domainCommGroupDao,DomainCommCfg.class);
//需要更新的组
//需要更新的组,组可能增加了,可能减少了,也有可能清空了(所有的域全删了)
cfgIndexInfo.setCommonGroupIds(gsonToJson(userRgionMap));
if(CollectionUtils.isEmpty(cfgIndexInfo.getIpCommGroupCfgList())&&
CollectionUtils.isEmpty(cfgIndexInfo.getUrlCommGroupList())&&CollectionUtils.isEmpty(cfgIndexInfo.getScriberIdCommGroupList())&&
CollectionUtils.isEmpty(cfgIndexInfo.getDomainCommGroupList())){
if(MapUtils.isEmpty(userRgionMap)){//组清空了
cfgIndexInfo.setCommonGroupIds("");
if(cfgIndexInfo.getIsValid()==Constants.VALID_NO){//未生效
if(cfgIndexInfo.getIsValid()==Constants.VALID_NO){//未生效,直接更新配置,不用下发
toUpdateCfgIndexInfos.add(cfgIndexInfo);
}else{//生效
}else{//生效,需要取消配置
cfgIndexInfo.setIsValid(Constants.VALID_NO);
cfgIndexInfo.setIsAudit(Constants.AUDIT_NOT_YES);
toCancelCfgIndexInfos.add(cfgIndexInfo);
}
}else if(!oldCommonGroupIds.equals(cfgIndexInfo.getCommonGroupIds())){
}else if(!oldCommonGroupIds.equals(cfgIndexInfo.getCommonGroupIds())){//组有变化
toUpdateCfgIndexInfos.add(cfgIndexInfo);
//commonPolicyDao.updateCfgIndexCommonGroupIds(cfgIndexInfo);
}
if(cfgIndexInfo.getIsValid().equals(Constants.VALID_YES)){
if(cfgIndexInfo.getIsValid().equals(Constants.VALID_YES)){//生效配置
//没组了,取消配置,没域了,取消配置
if(userRgionMap.isEmpty()||(CollectionUtils.isEmpty(cfgIndexInfo.getIpCommGroupCfgList())&&
CollectionUtils.isEmpty(cfgIndexInfo.getUrlCommGroupList())&&CollectionUtils.isEmpty(cfgIndexInfo.getScriberIdCommGroupList())&&
CollectionUtils.isEmpty(cfgIndexInfo.getDomainCommGroupList()))){
if(userRgionMap.isEmpty()){
maatCfg.setCompileId(cfgIndexInfo.getCompileId());
maatCfg.setServiceId(cfgIndexInfo.getServiceId());
maatCfg.setIsValid(0);//无效
@@ -3466,7 +3464,7 @@ public abstract class BaseService {
if(CollectionUtils.isNotEmpty(cfgIndexInfo.getIpCommGroupCfgList())){
IpPortCfg cfg = new IpPortCfg();
BeanUtils.copyProperties(cfgIndexInfo, cfg, new String[]{"cfgId"});
Map<String,List> map = ConfigConvertUtil.objGroupCfgConvert(ipRegionList,cfgIndexInfo.getIpCommGroupCfgList(),1,cfgIndexInfo,groupRelationList,maatTableMap,groupIdSet);
Map<String,List> map = ConfigConvertUtil.objGroupCfgConvert(serviceDictMap,ipRegionList,cfgIndexInfo.getIpCommGroupCfgList(),1,cfgIndexInfo,groupRelationList,maatTableMap,groupIdSet);
groupRelationList=map.get("groupList");
ipRegionList=map.get("dstList");
if(map.get("numRegionList")!=null){
@@ -3478,7 +3476,7 @@ public abstract class BaseService {
if(CollectionUtils.isNotEmpty(cfgIndexInfo.getUrlCommGroupList())){
CommonStringCfg cfg = new CommonStringCfg();
BeanUtils.copyProperties(cfgIndexInfo, cfg, new String[]{"cfgId"});
Map<String,List> map =ConfigConvertUtil.objGroupCfgConvert(strRegionList,cfgIndexInfo.getUrlCommGroupList(),2,cfgIndexInfo,groupRelationList,maatTableMap,groupIdSet);
Map<String,List> map =ConfigConvertUtil.objGroupCfgConvert(serviceDictMap,strRegionList,cfgIndexInfo.getUrlCommGroupList(),2,cfgIndexInfo,groupRelationList,maatTableMap,groupIdSet);
groupRelationList=map.get("groupList");
strRegionList=map.get("dstList");
}
@@ -3487,7 +3485,7 @@ public abstract class BaseService {
CommonStringCfg cfg = new CommonStringCfg();
BeanUtils.copyProperties(cfgIndexInfo, cfg, new String[]{"cfgId"});
Map<String,List> map =ConfigConvertUtil.objGroupCfgConvert(strRegionList,cfgIndexInfo.getScriberIdCommGroupList(),2,cfgIndexInfo,groupRelationList,maatTableMap,groupIdSet);
Map<String,List> map =ConfigConvertUtil.objGroupCfgConvert(serviceDictMap,strRegionList,cfgIndexInfo.getScriberIdCommGroupList(),2,cfgIndexInfo,groupRelationList,maatTableMap,groupIdSet);
groupRelationList=map.get("groupList");
strRegionList=map.get("dstList");
@@ -3497,7 +3495,7 @@ public abstract class BaseService {
CommonStringCfg cfg = new CommonStringCfg();
BeanUtils.copyProperties(cfgIndexInfo, cfg, new String[]{"cfgId"});
Map<String,List> map =ConfigConvertUtil.objGroupCfgConvert(strRegionList,cfgIndexInfo.getDomainCommGroupList(),2,cfgIndexInfo,groupRelationList,maatTableMap,groupIdSet);
Map<String,List> map =ConfigConvertUtil.objGroupCfgConvert(serviceDictMap,strRegionList,cfgIndexInfo.getDomainCommGroupList(),2,cfgIndexInfo,groupRelationList,maatTableMap,groupIdSet);
groupRelationList=map.get("groupList");
strRegionList=map.get("dstList");
@@ -3539,12 +3537,12 @@ public abstract class BaseService {
maatBean.setVersion(Constants.MAAT_VERSION);
maatBean.setOpAction(Constants.UPDATE_ACTION);
}
}else if(cfgIndexInfo.getIsValid().equals(Constants.VALID_NO)&&cfgIndexInfo.getIsAudit().equals(Constants.AUDIT_NOT_YES)){//生效的配置 置为了失效
}/*else if(cfgIndexInfo.getIsValid().equals(Constants.VALID_NO)&&cfgIndexInfo.getIsAudit().equals(Constants.AUDIT_NOT_YES)){//生效的配置 置为了失效
maatCfg.setCompileId(cfgIndexInfo.getCompileId());
maatCfg.setServiceId(cfgIndexInfo.getServiceId());
maatCfg.setIsValid(0);//无效
cancelConfigCompileList.add(maatCfg);
}
}*/
if(cancelConfigCompileList.size()>0&&CollectionUtils.isEmpty(cancelMaatBean.getConfigCompileList())){
cancelMaatBean.setConfigCompileList(cancelConfigCompileList);
cancelMaatBean.setAuditTime(cfgIndexInfo.getAuditTime());
@@ -3566,10 +3564,10 @@ public abstract class BaseService {
}
}
//查询定时任务,失效定时任务
if(ids.toString().length()>0){
ids.deleteCharAt(ids.toString().length()-1);
commonPolicyDao.cancelScheduCfg(ids.toString(),CfgIndexInfo.getTablename());
}
// if(ids.toString().length()>0){
// ids.deleteCharAt(ids.toString().length()-1);
// commonPolicyDao.cancelScheduCfg(ids.toString(),CfgIndexInfo.getTablename());
// }
}
if(toUpdateCfgIndexInfos.size()>0){
StringBuffer ids=new StringBuffer();