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

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.ServiceConfigTemplateUtil;
import com.nis.util.StringUtil;
import com.nis.web.dao.configuration.CommonPolicyDao;
import com.nis.web.dao.configuration.ConfigSynchronizationDao;
import com.nis.web.security.UserUtils;
import com.nis.web.service.BaseService;
@@ -65,7 +66,8 @@ import com.nis.web.service.BaseService;
public class ConfigSynchronizationService extends BaseService{
@Autowired
protected ConfigSynchronizationDao configSynchronizationDao;
@Autowired
protected CommonPolicyDao commonPolicyDao;
/**
* 配置全量更新下发
* @param request
@@ -234,6 +236,13 @@ public class ConfigSynchronizationService extends BaseService{
asnGroupIds.add(cfg.getUserRegion4());
}
}
if(isUpdateCfg) {
if(!StringUtil.isEmpty(compileIds) && !StringUtil.isEmpty(entity.getTableName())) {
commonPolicyDao.auditCfgBatch( entity.getTableName(), entity,compileIds,null);
}
}
if(cfgList!=null){
for(Map<String,Object> m:cfgList){
String tableName = m.get("tableName").toString();
@@ -254,6 +263,15 @@ public class ConfigSynchronizationService extends BaseService{
}else if("5".equals(m.get("cfgType"))){
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
@@ -1268,17 +1286,24 @@ public class ConfigSynchronizationService extends BaseService{
List<IpCfg> areaIpRegionList;
List<IpPortCfg> ipList = new ArrayList();
List cfgList = new ArrayList();
maatBean = new ToMaatBean();
configCompileList = new ArrayList();
//批量获取regionId,groupId
List<Integer> regionIds = ConfigServiceUtil.getId(3, list.size());
List<Integer> groupIds = ConfigServiceUtil.getId(2, list.size());
IpPortCfg ipCfg = null;
BaseStringCfg strCfg = null;
ComplexkeywordCfg complexStr = null;
IpPortCfg ipCfg = new IpPortCfg();
BaseStringCfg strCfg = new BaseStringCfg();
ComplexkeywordCfg complexStrCfg = new ComplexkeywordCfg();
for(int i=0;i<list.size();i++){
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);
cfg.setRegionId(regionIds.get(i));
cfg.setGroupId(groupIds.get(i));
@@ -1298,7 +1323,7 @@ public class ConfigSynchronizationService extends BaseService{
if(userRegionList!=null){
for(Map<String,Object> n:userRegionList){
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();
Class aClass = null;
@@ -1317,7 +1342,14 @@ public class ConfigSynchronizationService extends BaseService{
Object value = "";
Field field = aClass.getDeclaredField(regionColumn);
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(n.get("regionKey"))){
userRegion = value.toString();
@@ -1331,9 +1363,28 @@ public class ConfigSynchronizationService extends BaseService{
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){
ipList.removeAll(list1);
cfgList.removeAll(list1);
if(cfgType==1){
Map<String,List> map = cfgToMaatConvert(ipRegionList,list1,1,groupRelationList);
groupRelationList=map.get("groupList");
@@ -1384,7 +1435,7 @@ public class ConfigSynchronizationService extends BaseService{
}
}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"));
}
}