(1)加入HTTP协议的Object-Group Policy
(2)修复增域删域的逻辑错误 (3)调整拦截自定义域
This commit is contained in:
@@ -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中包含ipDeletedGroups,urlDeletedGroups,subIdDeletedGroups,domainDeletedGroups
|
||||
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();
|
||||
|
||||
Reference in New Issue
Block a user