修改单域配置批量下发数据处理逻辑

This commit is contained in:
zhangwei
2018-11-29 10:59:54 +08:00
parent a99fe7e835
commit 5a8d54fe13

View File

@@ -52,6 +52,7 @@ import com.nis.util.DateUtils;
import com.nis.util.DictUtils; import com.nis.util.DictUtils;
import com.nis.util.ServiceConfigTemplateUtil; import com.nis.util.ServiceConfigTemplateUtil;
import com.nis.util.StringUtil; import com.nis.util.StringUtil;
import com.nis.web.dao.configuration.CommonPolicyDao;
import com.nis.web.dao.configuration.ConfigSynchronizationDao; import com.nis.web.dao.configuration.ConfigSynchronizationDao;
import com.nis.web.security.UserUtils; import com.nis.web.security.UserUtils;
import com.nis.web.service.BaseService; import com.nis.web.service.BaseService;
@@ -65,7 +66,8 @@ import com.nis.web.service.BaseService;
public class ConfigSynchronizationService extends BaseService{ public class ConfigSynchronizationService extends BaseService{
@Autowired @Autowired
protected ConfigSynchronizationDao configSynchronizationDao; protected ConfigSynchronizationDao configSynchronizationDao;
@Autowired
protected CommonPolicyDao commonPolicyDao;
/** /**
* 配置全量更新下发 * 配置全量更新下发
* @param request * @param request
@@ -234,6 +236,13 @@ public class ConfigSynchronizationService extends BaseService{
asnGroupIds.add(cfg.getUserRegion4()); asnGroupIds.add(cfg.getUserRegion4());
} }
} }
if(isUpdateCfg) {
if(!StringUtil.isEmpty(compileIds) && !StringUtil.isEmpty(entity.getTableName())) {
commonPolicyDao.auditCfgBatch( entity.getTableName(), entity,compileIds,null);
}
}
if(cfgList!=null){ if(cfgList!=null){
for(Map<String,Object> m:cfgList){ for(Map<String,Object> m:cfgList){
String tableName = m.get("tableName").toString(); String tableName = m.get("tableName").toString();
@@ -254,6 +263,15 @@ public class ConfigSynchronizationService extends BaseService{
}else if("5".equals(m.get("cfgType"))){ }else if("5".equals(m.get("cfgType"))){
fileList.addAll(configSynchronizationDao.getFileDigestList(tableName, compileIds)); fileList.addAll(configSynchronizationDao.getFileDigestList(tableName, compileIds));
} }
if(isUpdateCfg) {
if(tableName.equals("asn_ip_cfg")){
if(!StringUtil.isEmpty(asnGroupIds)) {
commonPolicyDao.auditCfgBatch(tableName, entity,asnGroupIds,null);
}
}else{
commonPolicyDao.auditCfgBatch( tableName, entity,compileIds,null);
}
}
} }
} }
//批量获取regionId,groupId(相同编译下的IP类配置多条ip只获取一个组号分组复用的域配置不需要重新获取regionId,groupId //批量获取regionId,groupId(相同编译下的IP类配置多条ip只获取一个组号分组复用的域配置不需要重新获取regionId,groupId
@@ -1268,17 +1286,24 @@ public class ConfigSynchronizationService extends BaseService{
List<IpCfg> areaIpRegionList; List<IpCfg> areaIpRegionList;
List<IpPortCfg> ipList = new ArrayList(); List cfgList = new ArrayList();
maatBean = new ToMaatBean(); maatBean = new ToMaatBean();
configCompileList = new ArrayList(); configCompileList = new ArrayList();
//批量获取regionId,groupId //批量获取regionId,groupId
List<Integer> regionIds = ConfigServiceUtil.getId(3, list.size()); List<Integer> regionIds = ConfigServiceUtil.getId(3, list.size());
List<Integer> groupIds = ConfigServiceUtil.getId(2, list.size()); List<Integer> groupIds = ConfigServiceUtil.getId(2, list.size());
IpPortCfg ipCfg = null; IpPortCfg ipCfg = new IpPortCfg();
BaseStringCfg strCfg = null; BaseStringCfg strCfg = new BaseStringCfg();
ComplexkeywordCfg complexStr = null; ComplexkeywordCfg complexStrCfg = new ComplexkeywordCfg();
for(int i=0;i<list.size();i++){ for(int i=0;i<list.size();i++){
BaseCfg cfg = new BaseCfg(); BaseCfg cfg = new BaseCfg();
if(cfgType==1){
BeanUtils.copyProperties(list.get(i), ipCfg);
}else if(cfgType==2){
BeanUtils.copyProperties(list.get(i), strCfg);
}else if(cfgType==3){
BeanUtils.copyProperties(list.get(i), complexStrCfg);
}
BeanUtils.copyProperties(list.get(i), cfg); BeanUtils.copyProperties(list.get(i), cfg);
cfg.setRegionId(regionIds.get(i)); cfg.setRegionId(regionIds.get(i));
cfg.setGroupId(groupIds.get(i)); cfg.setGroupId(groupIds.get(i));
@@ -1298,7 +1323,7 @@ public class ConfigSynchronizationService extends BaseService{
if(userRegionList!=null){ if(userRegionList!=null){
for(Map<String,Object> n:userRegionList){ for(Map<String,Object> n:userRegionList){
Object userRegionPosition = n.get("userRegionPosition"); Object userRegionPosition = n.get("userRegionPosition");
if(userRegionPosition!=null && (userRegionPosition.toString().equals("1")||userRegionPosition.toString().equals("0"))){ if(userRegionPosition!=null){
//通过反射机制获取自定义域字段值 //通过反射机制获取自定义域字段值
String regionColumn = n.get("regionColumn").toString(); String regionColumn = n.get("regionColumn").toString();
Class aClass = null; Class aClass = null;
@@ -1317,7 +1342,14 @@ public class ConfigSynchronizationService extends BaseService{
Object value = ""; Object value = "";
Field field = aClass.getDeclaredField(regionColumn); Field field = aClass.getDeclaredField(regionColumn);
field.setAccessible(true); field.setAccessible(true);
value = field.get(cfg); if(cfgType==1){
value = field.get(ipCfg);
}else if(cfgType==2){
value = field.get(strCfg);
}else if(cfgType==3){
value = field.get(complexStrCfg);
}
if(!StringUtil.isEmpty(value)){ if(!StringUtil.isEmpty(value)){
if(StringUtil.isEmpty(n.get("regionKey"))){ if(StringUtil.isEmpty(n.get("regionKey"))){
userRegion = value.toString(); userRegion = value.toString();
@@ -1331,9 +1363,28 @@ public class ConfigSynchronizationService extends BaseService{
userRegion = userRegion.substring(0, userRegion.length()-1); userRegion = userRegion.substring(0, userRegion.length()-1);
} }
} }
list1.add(cfg); if(cfgType==1){
ipCfg.setRegionId(regionIds.get(0));
regionIds.remove(0);
ipCfg.setGroupId(groupIds.get(0));
groupIds.remove(0);
list1.add(ipCfg);
}else if(cfgType==2){
strCfg.setRegionId(regionIds.get(0));
regionIds.remove(0);
strCfg.setGroupId(groupIds.get(0));
groupIds.remove(0);
list1.add(strCfg);
}else if(cfgType==3){
complexStrCfg.setRegionId(regionIds.get(0));
regionIds.remove(0);
complexStrCfg.setGroupId(groupIds.get(0));
groupIds.remove(0);
list1.add(complexStrCfg);
}
if(list1.size()>0){ if(list1.size()>0){
ipList.removeAll(list1); cfgList.removeAll(list1);
if(cfgType==1){ if(cfgType==1){
Map<String,List> map = cfgToMaatConvert(ipRegionList,list1,1,groupRelationList); Map<String,List> map = cfgToMaatConvert(ipRegionList,list1,1,groupRelationList);
groupRelationList=map.get("groupList"); groupRelationList=map.get("groupList");
@@ -1384,7 +1435,7 @@ public class ConfigSynchronizationService extends BaseService{
} }
}else { }else {
//调用服务接口配置全量更新 //调用服务接口配置全量更新
JSONObject result = ConfigServiceUtil.configSync(json,1,entity.getServiceId(),null,(hasData?null:"FINISHED")); // JSONObject result = ConfigServiceUtil.configSync(json,1,entity.getServiceId(),null,(hasData?null:"FINISHED"));
} }
} }