增加批量下发数据库状态变更
This commit is contained in:
@@ -23,9 +23,11 @@ import com.google.common.collect.Lists;
|
||||
import com.nis.domain.FunctionServiceDict;
|
||||
import com.nis.domain.Page;
|
||||
import com.nis.domain.basics.AsnIpCfg;
|
||||
import com.nis.domain.configuration.AppFeatureIndex;
|
||||
import com.nis.domain.configuration.AppPolicyCfg;
|
||||
import com.nis.domain.configuration.AvFileSampleCfg;
|
||||
import com.nis.domain.configuration.BaseCfg;
|
||||
import com.nis.domain.configuration.BaseIpCfg;
|
||||
import com.nis.domain.configuration.BaseStringCfg;
|
||||
import com.nis.domain.configuration.CfgIndexInfo;
|
||||
import com.nis.domain.configuration.ComplexkeywordCfg;
|
||||
@@ -51,6 +53,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;
|
||||
@@ -64,6 +67,8 @@ import com.nis.web.service.BaseService;
|
||||
public class ConfigSynchronizationService extends BaseService{
|
||||
@Autowired
|
||||
protected ConfigSynchronizationDao configSynchronizationDao;
|
||||
@Autowired
|
||||
protected CommonPolicyDao commonPolicyDao;
|
||||
|
||||
/**
|
||||
* 配置全量更新下发
|
||||
@@ -92,13 +97,26 @@ public class ConfigSynchronizationService extends BaseService{
|
||||
if("1".equals(serviceType)){//maat类配置
|
||||
List<Map<String,Object>> cfgList = (List<Map<String, Object>>) service.get("cfgList");
|
||||
List<Map<String,Object>> userRegionList = (List<Map<String, Object>>) service.get("userRegionList");
|
||||
if("cfg_index_info".equals(tableName)){
|
||||
if(cfgList.size()>0){
|
||||
Page page=new Page(request,response,Constants.MAAT_JSON_SEND_SIZE,"a");
|
||||
handleNtcMaatData(cfgList,userRegionList,page,entity,request,response,false,tableName);
|
||||
}else{
|
||||
int cfgType = Integer.parseInt(service.get("cfgType").toString());
|
||||
if("ddos_ip_cfg".equals(tableName)){
|
||||
Page<DdosIpCfg> page=new Page<DdosIpCfg>(request,response,Constants.MAAT_JSON_SEND_SIZE,"a");
|
||||
handleDdosMaatData(cfgList,userRegionList,page,entity,request,response,false);
|
||||
}else{
|
||||
Page<T> page=new Page<T>(request,response,Constants.MAAT_JSON_SEND_SIZE,"a");
|
||||
handleSingleMaatData(cfgType,userRegionList,page,entity,request,response,false);
|
||||
}
|
||||
}
|
||||
/*if("cfg_index_info".equals(tableName)){
|
||||
Page<CfgIndexInfo> page=new Page<CfgIndexInfo>(request,response,Constants.MAAT_JSON_SEND_SIZE,"a");
|
||||
handleNtcMaatData(cfgList,userRegionList,page,entity,request,response,false);
|
||||
}else if("ddos_ip_cfg".equals(tableName)){
|
||||
Page<DdosIpCfg> page=new Page<DdosIpCfg>(request,response,Constants.MAAT_JSON_SEND_SIZE,"a");
|
||||
handleDdosMaatData(cfgList,userRegionList,page,entity,request,response,false);
|
||||
}
|
||||
}*/
|
||||
}else if("2".equals(serviceType)){//回调类配置
|
||||
entity.setTableName(tableName);
|
||||
entity.setServiceId(Integer.valueOf(serviceId));
|
||||
@@ -127,21 +145,48 @@ public class ConfigSynchronizationService extends BaseService{
|
||||
* @throws IllegalArgumentException
|
||||
*/
|
||||
public void handleNtcMaatData(List<Map<String,Object>>cfgList,List<Map<String,Object>>userRegionList,
|
||||
Page<CfgIndexInfo> page,BaseCfg entity,HttpServletRequest request,HttpServletResponse response,
|
||||
boolean isUpdateCfg) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException{
|
||||
Page<T> page,BaseCfg entity,HttpServletRequest request,HttpServletResponse response,
|
||||
boolean isUpdateCfg,String tableName) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException{
|
||||
|
||||
boolean hasData = true;
|
||||
while(hasData){
|
||||
entity.setPage(page);
|
||||
List<CfgIndexInfo> list = configSynchronizationDao.getCfgIndexList(entity);
|
||||
if(!StringUtil.isEmpty(list)){
|
||||
hasData=auditNtcMaatData(cfgList,userRegionList,page,entity,list,hasData,isUpdateCfg);
|
||||
if(hasData) {
|
||||
page.setPageNo(page.getNext());
|
||||
List list = Lists.newArrayList();
|
||||
if("cfg_index_info".equals(tableName)){
|
||||
list = configSynchronizationDao.getCfgIndexList(entity);
|
||||
if(!StringUtil.isEmpty(list)){
|
||||
hasData=auditNtcMaatData(cfgList,userRegionList,page,entity,list,hasData,isUpdateCfg);
|
||||
if(hasData) {
|
||||
page.setPageNo(page.getNext());
|
||||
}
|
||||
}else{
|
||||
hasData = false;
|
||||
}
|
||||
}else if("app_policy_cfg".equals(tableName)){
|
||||
list = configSynchronizationDao.getAppPolicyList(entity);
|
||||
if(!StringUtil.isEmpty(list)){
|
||||
hasData=auditAppPolicyData(cfgList,userRegionList,page,entity,list,hasData,isUpdateCfg);
|
||||
if(hasData) {
|
||||
page.setPageNo(page.getNext());
|
||||
}
|
||||
}else{
|
||||
hasData = false;
|
||||
}
|
||||
}else if("app_feature_index".equals(tableName)){
|
||||
list = configSynchronizationDao.getAppFeatureIndexList(entity);
|
||||
if(!StringUtil.isEmpty(list)){
|
||||
hasData=auditAppFeatureData(cfgList,userRegionList,page,entity,list,hasData,isUpdateCfg);
|
||||
if(hasData) {
|
||||
page.setPageNo(page.getNext());
|
||||
}
|
||||
}else{
|
||||
hasData = false;
|
||||
}
|
||||
}else{
|
||||
logger.info("全量同步未知业务");
|
||||
hasData = false;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
/**
|
||||
@@ -192,6 +237,9 @@ public class ConfigSynchronizationService extends BaseService{
|
||||
asnGroupIds.add(cfg.getUserRegion4());
|
||||
}
|
||||
}
|
||||
if(isUpdateCfg) {
|
||||
auditBatch(compileIds, entity.getTableName(), entity);
|
||||
}
|
||||
if(cfgList!=null){
|
||||
for(Map<String,Object> m:cfgList){
|
||||
String tableName = m.get("tableName").toString();
|
||||
@@ -212,6 +260,16 @@ 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)) {
|
||||
auditBatch(asnGroupIds, tableName, entity);
|
||||
}
|
||||
}else{
|
||||
auditBatch(compileIds, tableName, entity);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//批量获取regionId,groupId(相同编译下的IP类配置多条ip只获取一个组号),分组复用的域配置不需要重新获取regionId,groupId
|
||||
@@ -284,12 +342,12 @@ public class ConfigSynchronizationService extends BaseService{
|
||||
for(int index=0;index<ipList.size();index++){
|
||||
IpPortCfg ip = ipList.get(index);
|
||||
if(ip.getCompileId().equals(cfg.getCompileId())){
|
||||
BeanUtils.copyProperties(cfg, ip);
|
||||
ip.setRegionId(regionIds.get(index));
|
||||
regionIds.remove(index);
|
||||
// BeanUtils.copyProperties(cfg, ip);
|
||||
ip.setRegionId(regionIds.get(0));
|
||||
regionIds.remove(0);
|
||||
ip.setGroupId(ipGroupId.get(0));
|
||||
ip.setIsValid(entity.getIsValid());
|
||||
ip.setAuditTime(StringUtil.isEmpty(ip.getAuditTime()) ? entity.getAuditTime():ip.getAuditTime());
|
||||
ip.setAuditTime(StringUtil.isEmpty(ip.getAuditTime()) ? cfg.getAuditTime():ip.getAuditTime());
|
||||
list1.add(ip);
|
||||
}
|
||||
}
|
||||
@@ -298,20 +356,20 @@ public class ConfigSynchronizationService extends BaseService{
|
||||
for(AsnIpCfg ip:asnIpList){//asn不需要再次获取regionId,groupId
|
||||
if(ip.getAsnIpGroup().toString().equals(cfg.getUserRegion4())){//根据组号对应
|
||||
ip.setIsValid(entity.getIsValid());
|
||||
ip.setAuditTime(StringUtil.isEmpty(ip.getAuditTime()) ? entity.getAuditTime():ip.getAuditTime());
|
||||
ip.setAuditTime(StringUtil.isEmpty(ip.getAuditTime()) ? cfg.getAuditTime():ip.getAuditTime());
|
||||
list1.add(ip);
|
||||
}
|
||||
}
|
||||
for(int index=0;index<strList.size();index++){
|
||||
BaseStringCfg str = strList.get(index);
|
||||
if(str.getCompileId().equals(cfg.getCompileId())){
|
||||
BeanUtils.copyProperties(cfg, str);
|
||||
str.setRegionId(regionIds.get(index));
|
||||
regionIds.remove(index);
|
||||
str.setGroupId(groupIds.get(index));
|
||||
groupIds.remove(index);
|
||||
// BeanUtils.copyProperties(cfg, str);
|
||||
str.setRegionId(regionIds.get(0));
|
||||
regionIds.remove(0);
|
||||
str.setGroupId(groupIds.get(0));
|
||||
groupIds.remove(0);
|
||||
str.setIsValid(entity.getIsValid());
|
||||
str.setAuditTime(StringUtil.isEmpty(str.getAuditTime()) ? entity.getAuditTime():str.getAuditTime());
|
||||
str.setAuditTime(StringUtil.isEmpty(str.getAuditTime()) ? cfg.getAuditTime():str.getAuditTime());
|
||||
list2.add(str);
|
||||
if(entity.getServiceId().equals(513)||entity.getServiceId().equals(515)){
|
||||
if(userRegion.equals("")){
|
||||
@@ -325,13 +383,13 @@ public class ConfigSynchronizationService extends BaseService{
|
||||
for(int index=0;index<complexStrList.size();index++){
|
||||
ComplexkeywordCfg str = complexStrList.get(index);
|
||||
if(str.getCompileId().equals(cfg.getCompileId())){
|
||||
BeanUtils.copyProperties(cfg, str);
|
||||
str.setRegionId(regionIds.get(index));
|
||||
regionIds.remove(index);
|
||||
str.setGroupId(groupIds.get(index));
|
||||
groupIds.remove(index);
|
||||
// BeanUtils.copyProperties(cfg, str);
|
||||
str.setRegionId(regionIds.get(0));
|
||||
regionIds.remove(0);
|
||||
str.setGroupId(groupIds.get(0));
|
||||
groupIds.remove(0);
|
||||
str.setIsValid(entity.getIsValid());
|
||||
str.setAuditTime(StringUtil.isEmpty(str.getAuditTime()) ? entity.getAuditTime():str.getAuditTime());
|
||||
str.setAuditTime(StringUtil.isEmpty(str.getAuditTime()) ? cfg.getAuditTime():str.getAuditTime());
|
||||
list3.add(str);
|
||||
if(entity.getServiceId().equals(129) && str.getDistrict()!=null){//http监测
|
||||
String dictValue = DictUtils.getDictCode(Constants.HTTP_HEADER_DICT_MODULE, str.getDistrict());
|
||||
@@ -348,26 +406,26 @@ public class ConfigSynchronizationService extends BaseService{
|
||||
for(int index=0;index<numList.size();index++){
|
||||
com.nis.domain.configuration.NumBoundaryCfg num = numList.get(index);
|
||||
if(num.getCompileId().equals(cfg.getCompileId())){
|
||||
BeanUtils.copyProperties(cfg, num);
|
||||
num.setRegionId(regionIds.get(index));
|
||||
regionIds.remove(index);
|
||||
num.setGroupId(groupIds.get(index));
|
||||
groupIds.remove(index);
|
||||
// BeanUtils.copyProperties(cfg, num);
|
||||
num.setRegionId(regionIds.get(0));
|
||||
regionIds.remove(0);
|
||||
num.setGroupId(groupIds.get(0));
|
||||
groupIds.remove(0);
|
||||
num.setIsValid(entity.getIsValid());
|
||||
num.setAuditTime(StringUtil.isEmpty(num.getAuditTime()) ? entity.getAuditTime():num.getAuditTime());
|
||||
num.setAuditTime(StringUtil.isEmpty(num.getAuditTime()) ? cfg.getAuditTime():num.getAuditTime());
|
||||
list4.add(num);
|
||||
}
|
||||
}
|
||||
for(int index=0;index<fileList.size();index++){
|
||||
FileDigestCfg file = fileList.get(index);
|
||||
if(file.getCompileId().equals(cfg.getCompileId())){
|
||||
BeanUtils.copyProperties(cfg, file);
|
||||
file.setRegionId(regionIds.get(index));
|
||||
regionIds.remove(index);
|
||||
file.setGroupId(groupIds.get(index));
|
||||
groupIds.remove(index);
|
||||
// BeanUtils.copyProperties(cfg, file);
|
||||
file.setRegionId(regionIds.get(0));
|
||||
regionIds.remove(0);
|
||||
file.setGroupId(groupIds.get(0));
|
||||
groupIds.remove(0);
|
||||
file.setIsValid(entity.getIsValid());
|
||||
file.setAuditTime(StringUtil.isEmpty(file.getAuditTime()) ? entity.getAuditTime():file.getAuditTime());
|
||||
file.setAuditTime(StringUtil.isEmpty(file.getAuditTime()) ? cfg.getAuditTime():file.getAuditTime());
|
||||
list5.add(file);
|
||||
}
|
||||
}
|
||||
@@ -453,12 +511,543 @@ 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"));
|
||||
}
|
||||
}
|
||||
return hasData;
|
||||
}
|
||||
|
||||
/**
|
||||
* APP策略配置批量下发
|
||||
* @param cfgList
|
||||
* @param userRegionList
|
||||
* @param page
|
||||
* @param entity
|
||||
* @param list
|
||||
* @param hasData
|
||||
* @param isUpdateCfg 业务配置全部生效时需同步更新库表配置状态
|
||||
* @return
|
||||
* @throws NoSuchFieldException
|
||||
* @throws SecurityException
|
||||
* @throws IllegalArgumentException
|
||||
* @throws IllegalAccessException
|
||||
*/
|
||||
public boolean auditAppPolicyData(List<Map<String,Object>> cfgList,
|
||||
List<Map<String,Object>> userRegionList,
|
||||
Page page,
|
||||
BaseCfg entity,
|
||||
List<AppPolicyCfg> list,
|
||||
boolean hasData,
|
||||
boolean isUpdateCfg)throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException{
|
||||
ToMaatBean maatBean;
|
||||
MaatCfg maatCfg;
|
||||
List<MaatCfg> configCompileList;
|
||||
List<GroupCfg> groupRelationList;
|
||||
List<IpCfg> ipRegionList;
|
||||
List<StringCfg> strRegionList;
|
||||
List<NumBoundaryCfg> numRegionList;
|
||||
List<DigestCfg> digestRegionList;
|
||||
List<IpCfg> areaIpRegionList;
|
||||
|
||||
List<IpPortCfg> ipList = new ArrayList();
|
||||
List<BaseStringCfg> strList = new ArrayList();
|
||||
List<ComplexkeywordCfg> complexStrList = new ArrayList();
|
||||
List<com.nis.domain.configuration.NumBoundaryCfg> numList = new ArrayList();
|
||||
List<FileDigestCfg> fileList = new ArrayList();
|
||||
maatBean = new ToMaatBean();
|
||||
configCompileList = new ArrayList();
|
||||
List<Integer> compileIds = new ArrayList();
|
||||
List<String> asnGroupIds = new ArrayList();
|
||||
for(AppPolicyCfg cfg:list){
|
||||
compileIds.add(cfg.getCompileId());
|
||||
}
|
||||
if(cfgList!=null){
|
||||
for(Map<String,Object> m:cfgList){
|
||||
String tableName = m.get("tableName").toString();
|
||||
if("1".equals(m.get("cfgType"))){
|
||||
ipList.addAll(configSynchronizationDao.getIpPortList(tableName, compileIds));
|
||||
}else if("2".equals(m.get("cfgType"))){
|
||||
strList.addAll(configSynchronizationDao.getStrList(tableName,compileIds));
|
||||
}else if("3".equals(m.get("cfgType"))){
|
||||
complexStrList.addAll(configSynchronizationDao.getComplexStrList(tableName,compileIds));
|
||||
}else if("4".equals(m.get("cfgType"))){
|
||||
|
||||
}else if("5".equals(m.get("cfgType"))){
|
||||
fileList.addAll(configSynchronizationDao.getFileDigestList(tableName, compileIds));
|
||||
}
|
||||
}
|
||||
}
|
||||
//批量获取regionId,groupId(相同编译下的IP类配置多条ip只获取一个组号),compileIds.size()表示app策略本身有一个字符串域
|
||||
List<Integer> regionIds = ConfigServiceUtil.getId(3, ipList.size()+strList.size()+compileIds.size()+complexStrList.size()+numList.size()+fileList.size());
|
||||
List<Integer> groupIds = ConfigServiceUtil.getId(2, strList.size()+compileIds.size()+complexStrList.size()+numList.size()+fileList.size());
|
||||
for(AppPolicyCfg cfg:list){
|
||||
maatCfg = new MaatCfg();
|
||||
maatCfg.initDefaultValue();
|
||||
groupRelationList = new ArrayList();
|
||||
ipRegionList = new ArrayList();
|
||||
strRegionList = new ArrayList();
|
||||
numRegionList = new ArrayList();
|
||||
digestRegionList = new ArrayList();
|
||||
areaIpRegionList = new ArrayList();
|
||||
List list1 = new ArrayList();
|
||||
List<BaseStringCfg> list2 = new ArrayList();
|
||||
List<ComplexkeywordCfg> list3 = new ArrayList();
|
||||
List<com.nis.domain.configuration.NumBoundaryCfg> list4 = new ArrayList();
|
||||
List<FileDigestCfg> list5 = new ArrayList();
|
||||
String userRegion = "";
|
||||
//处理自定义域
|
||||
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"))){
|
||||
//通过反射机制获取自定义域字段值
|
||||
String regionColumn = n.get("regionColumn").toString();
|
||||
Class aClass = null;
|
||||
if(userRegionPosition.toString().equals(("0"))){
|
||||
aClass = BaseCfg.class;
|
||||
}else{
|
||||
aClass = AppPolicyCfg.class;
|
||||
}
|
||||
Object value = "";
|
||||
Field field = aClass.getDeclaredField(regionColumn);
|
||||
field.setAccessible(true);
|
||||
value = field.get(cfg);
|
||||
if(!StringUtil.isEmpty(value)){
|
||||
if(StringUtil.isEmpty(n.get("regionKey"))){
|
||||
userRegion = value.toString();
|
||||
}else{
|
||||
userRegion += n.get("regionKey")+"="+value+Constants.USER_REGION_SPLIT;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(userRegion.endsWith(Constants.USER_REGION_SPLIT)){
|
||||
userRegion = userRegion.substring(0, userRegion.length()-1);
|
||||
}
|
||||
}
|
||||
//将app码与行为码设置为字符串域
|
||||
StringBuffer cfgKeywords = new StringBuffer();
|
||||
BaseStringCfg strCfg = new BaseStringCfg();
|
||||
if(cfg.getServiceId().equals(35)||cfg.getServiceId().equals(147)||cfg.getServiceId().equals(1059)){//基础协议
|
||||
cfgKeywords.append(Constants.PROTO_ID_REGION + "=" + cfg.getAppCode());
|
||||
}else if(cfg.getServiceId().equals(33)||cfg.getServiceId().equals(145)||cfg.getServiceId().equals(1056)){
|
||||
cfgKeywords.append(Constants.APP_ID_REGION + "=" + cfg.getAppCode());
|
||||
if(cfg.getBehavCode()!=null){
|
||||
cfgKeywords.append(Constants.KEYWORD_EXPR);
|
||||
cfgKeywords.append(Constants.BEHAV_ID_REGION + "=" + cfg.getBehavCode());
|
||||
}
|
||||
}else if(cfg.getServiceId().equals(36)||cfg.getServiceId().equals(148)||cfg.getServiceId().equals(1060)){//隧道加密协议
|
||||
cfgKeywords.append(Constants.PROTO_ID_REGION + "=" + cfg.getAppCode());
|
||||
if(cfg.getBehavCode()!=null){
|
||||
cfgKeywords.append(Constants.KEYWORD_EXPR);
|
||||
cfgKeywords.append(Constants.BEHAV_ID_REGION + "=" + cfg.getBehavCode());
|
||||
}
|
||||
}
|
||||
cfg.setCfgKeywords(cfgKeywords.toString());
|
||||
BeanUtils.copyProperties(cfg, strCfg);
|
||||
strList.add(strCfg);
|
||||
|
||||
|
||||
if(ipList.size()>0){
|
||||
List<Integer> ipGroupId = ConfigServiceUtil.getId(2,1);//多条IP只获取一个groupId
|
||||
for(int index=0;index<ipList.size();index++){
|
||||
IpPortCfg ip = ipList.get(index);
|
||||
if(ip.getCompileId().equals(cfg.getCompileId())){
|
||||
// BeanUtils.copyProperties(cfg, ip);
|
||||
ip.setRegionId(regionIds.get(0));
|
||||
regionIds.remove(0);
|
||||
ip.setGroupId(ipGroupId.get(0));
|
||||
ip.setIsValid(entity.getIsValid());
|
||||
ip.setAuditTime(StringUtil.isEmpty(ip.getAuditTime()) ? cfg.getAuditTime():ip.getAuditTime());
|
||||
list1.add(ip);
|
||||
}
|
||||
}
|
||||
}
|
||||
for(int index=0;index<strList.size();index++){
|
||||
BaseStringCfg str = strList.get(index);
|
||||
if(str.getCompileId().equals(cfg.getCompileId())){
|
||||
// BeanUtils.copyProperties(cfg, str);
|
||||
str.setRegionId(regionIds.get(0));
|
||||
regionIds.remove(0);
|
||||
str.setGroupId(groupIds.get(0));
|
||||
groupIds.remove(0);
|
||||
str.setIsValid(entity.getIsValid());
|
||||
str.setAuditTime(StringUtil.isEmpty(str.getAuditTime()) ? cfg.getAuditTime():str.getAuditTime());
|
||||
list2.add(str);
|
||||
}
|
||||
}
|
||||
for(int index=0;index<complexStrList.size();index++){
|
||||
ComplexkeywordCfg str = complexStrList.get(index);
|
||||
if(str.getCompileId().equals(cfg.getCompileId())){
|
||||
// BeanUtils.copyProperties(cfg, str);
|
||||
str.setRegionId(regionIds.get(0));
|
||||
regionIds.remove(0);
|
||||
str.setGroupId(groupIds.get(0));
|
||||
groupIds.remove(0);
|
||||
str.setIsValid(entity.getIsValid());
|
||||
str.setAuditTime(StringUtil.isEmpty(str.getAuditTime()) ? cfg.getAuditTime():str.getAuditTime());
|
||||
list3.add(str);
|
||||
}
|
||||
}
|
||||
for(int index=0;index<numList.size();index++){
|
||||
com.nis.domain.configuration.NumBoundaryCfg num = numList.get(index);
|
||||
if(num.getCompileId().equals(cfg.getCompileId())){
|
||||
// BeanUtils.copyProperties(cfg, num);
|
||||
num.setRegionId(regionIds.get(0));
|
||||
regionIds.remove(0);
|
||||
num.setGroupId(groupIds.get(0));
|
||||
groupIds.remove(0);
|
||||
num.setIsValid(entity.getIsValid());
|
||||
num.setAuditTime(StringUtil.isEmpty(num.getAuditTime()) ? cfg.getAuditTime():num.getAuditTime());
|
||||
list4.add(num);
|
||||
}
|
||||
}
|
||||
for(int index=0;index<fileList.size();index++){
|
||||
FileDigestCfg file = fileList.get(index);
|
||||
if(file.getCompileId().equals(cfg.getCompileId())){
|
||||
// BeanUtils.copyProperties(cfg, file);
|
||||
file.setRegionId(regionIds.get(0));
|
||||
regionIds.remove(0);
|
||||
file.setGroupId(groupIds.get(0));
|
||||
groupIds.remove(0);
|
||||
file.setIsValid(entity.getIsValid());
|
||||
file.setAuditTime(StringUtil.isEmpty(file.getAuditTime()) ? cfg.getAuditTime():file.getAuditTime());
|
||||
list5.add(file);
|
||||
}
|
||||
}
|
||||
if(list1.size()>0){
|
||||
ipList.removeAll(list1);
|
||||
Map<String,List> map = cfgToMaatConvert(ipRegionList,list1,1,groupRelationList);
|
||||
groupRelationList=map.get("groupList");
|
||||
ipRegionList=map.get("dstList");
|
||||
if(map.get("numRegionList")!=null){
|
||||
numRegionList.addAll(map.get("numRegionList"));
|
||||
}
|
||||
}
|
||||
if(list2.size()>0){
|
||||
strList.removeAll(list2);
|
||||
Map<String,List> map = cfgToMaatConvert(strRegionList,list2,2,groupRelationList);
|
||||
groupRelationList=map.get("groupList");
|
||||
strRegionList=map.get("dstList");
|
||||
}
|
||||
|
||||
if(list3.size()>0){
|
||||
complexStrList.removeAll(list3);
|
||||
Map<String,List> map = cfgToMaatConvert(strRegionList,list3,3,groupRelationList);
|
||||
groupRelationList=map.get("groupList");
|
||||
strRegionList=map.get("dstList");
|
||||
}
|
||||
if(list4.size()>0){
|
||||
numList.removeAll(list4);
|
||||
Map<String,List> map = cfgToMaatConvert(numRegionList,list4,4,groupRelationList);
|
||||
groupRelationList=map.get("groupList");
|
||||
numRegionList=map.get("dstList");
|
||||
}
|
||||
if(list5.size()>0){
|
||||
fileList.removeAll(list5);
|
||||
Map<String,List> map = cfgToMaatConvert(digestRegionList,list5,5,groupRelationList);
|
||||
groupRelationList=map.get("groupList");
|
||||
digestRegionList=map.get("dstList");
|
||||
}
|
||||
|
||||
BeanUtils.copyProperties(cfg, maatCfg);
|
||||
maatCfg.setAction(cfg.getAction());
|
||||
maatCfg.setAuditTime(StringUtil.isEmpty(cfg.getAuditTime()) ? new Date():cfg.getAuditTime());
|
||||
maatCfg.setIpRegionList(ipRegionList);
|
||||
maatCfg.setStrRegionList(strRegionList);
|
||||
maatCfg.setNumRegionList(numRegionList);
|
||||
maatCfg.setDigestRegionList(digestRegionList);
|
||||
maatCfg.setGroupRelationList(groupRelationList);
|
||||
maatCfg.setGroupNum(groupRelationList.size());
|
||||
maatCfg.setAreaIpRegionList(areaIpRegionList);
|
||||
maatCfg.setIsValid(entity.getIsValid());
|
||||
maatCfg.setAuditTime(new Date());
|
||||
if(!StringUtil.isEmpty(userRegion)){
|
||||
maatCfg.setUserRegion(userRegion);
|
||||
}
|
||||
configCompileList.add(maatCfg);
|
||||
}
|
||||
page.setList(list);
|
||||
if(page.isLastPage()){
|
||||
hasData = false;
|
||||
}
|
||||
if(!StringUtil.isEmpty(configCompileList.size())){
|
||||
maatBean.setConfigCompileList(configCompileList);
|
||||
maatBean.setAuditTime(new Date());
|
||||
maatBean.setCreatorName(UserUtils.getUser().getName());
|
||||
maatBean.setVersion(Constants.MAAT_VERSION);
|
||||
maatBean.setOpAction(Constants.INSERT_ACTION);
|
||||
String json=gsonToJson(maatBean);
|
||||
//调用服务接口下发配置数据
|
||||
if(isUpdateCfg) {
|
||||
logger.info("配置批量下发:"+json);
|
||||
//调用服务接口同步回调类配置
|
||||
ToMaatResult result = ConfigServiceUtil.postMaatCfg(json);
|
||||
if(result!=null){
|
||||
logger.info("配置批量下发响应信息:"+result.getMsg());
|
||||
}
|
||||
}else {
|
||||
//调用服务接口配置全量更新
|
||||
// JSONObject result = ConfigServiceUtil.configSync(json,1,entity.getServiceId(),null,(hasData?null:"FINISHED"));
|
||||
}
|
||||
}
|
||||
return hasData;
|
||||
}
|
||||
/**
|
||||
* APP特征批量下发
|
||||
* @param cfgList
|
||||
* @param userRegionList
|
||||
* @param page
|
||||
* @param entity
|
||||
* @param list
|
||||
* @param hasData
|
||||
* @param isUpdateCfg 业务配置全部生效时需同步更新库表配置状态
|
||||
* @return
|
||||
* @throws NoSuchFieldException
|
||||
* @throws SecurityException
|
||||
* @throws IllegalArgumentException
|
||||
* @throws IllegalAccessException
|
||||
*/
|
||||
public boolean auditAppFeatureData(List<Map<String,Object>> cfgList,
|
||||
List<Map<String,Object>> userRegionList,
|
||||
Page page,
|
||||
BaseCfg entity,
|
||||
List<AppFeatureIndex> list,
|
||||
boolean hasData,
|
||||
boolean isUpdateCfg)throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException{
|
||||
ToMaatBean maatBean;
|
||||
MaatCfg maatCfg;
|
||||
List<MaatCfg> configCompileList;
|
||||
List<GroupCfg> groupRelationList;
|
||||
List<IpCfg> ipRegionList;
|
||||
List<StringCfg> strRegionList;
|
||||
List<NumBoundaryCfg> numRegionList;
|
||||
List<DigestCfg> digestRegionList;
|
||||
List<IpCfg> areaIpRegionList;
|
||||
|
||||
List<IpPortCfg> ipList = new ArrayList();
|
||||
List<BaseStringCfg> strList = new ArrayList();
|
||||
List<ComplexkeywordCfg> complexStrList = new ArrayList();
|
||||
List<com.nis.domain.configuration.NumBoundaryCfg> numList = new ArrayList();
|
||||
List<FileDigestCfg> fileList = new ArrayList();
|
||||
maatBean = new ToMaatBean();
|
||||
configCompileList = new ArrayList();
|
||||
List<Integer> compileIds = new ArrayList();
|
||||
List<String> asnGroupIds = new ArrayList();
|
||||
for(AppFeatureIndex cfg:list){
|
||||
compileIds.add(cfg.getCompileId());
|
||||
if(entity.getServiceId().equals(37)||entity.getServiceId().equals(149)){
|
||||
asnGroupIds.add(cfg.getUserRegion4());
|
||||
}
|
||||
}
|
||||
if(cfgList!=null){
|
||||
for(Map<String,Object> m:cfgList){
|
||||
String tableName = m.get("tableName").toString();
|
||||
if("1".equals(m.get("cfgType"))){
|
||||
ipList.addAll(configSynchronizationDao.getAppIpPortList(tableName, compileIds));
|
||||
}else if("2".equals(m.get("cfgType"))){
|
||||
strList.addAll(configSynchronizationDao.getStrList(tableName,compileIds));
|
||||
}else if("3".equals(m.get("cfgType"))){
|
||||
complexStrList.addAll(configSynchronizationDao.getComplexStrList(tableName,compileIds));
|
||||
}else if("4".equals(m.get("cfgType"))){
|
||||
|
||||
}else if("5".equals(m.get("cfgType"))){
|
||||
fileList.addAll(configSynchronizationDao.getFileDigestList(tableName, compileIds));
|
||||
}
|
||||
}
|
||||
}
|
||||
//批量获取regionId,groupId(相同编译下的IP类配置多条ip只获取一个组号),分组复用的域配置不需要重新获取regionId,groupId
|
||||
List<Integer> regionIds = ConfigServiceUtil.getId(3, ipList.size()+strList.size()+complexStrList.size()+numList.size()+fileList.size());
|
||||
List<Integer> groupIds = ConfigServiceUtil.getId(2, strList.size()+complexStrList.size()+numList.size()+fileList.size());
|
||||
for(AppFeatureIndex cfg:list){
|
||||
maatCfg = new MaatCfg();
|
||||
maatCfg.initDefaultValue();
|
||||
groupRelationList = new ArrayList();
|
||||
ipRegionList = new ArrayList();
|
||||
strRegionList = new ArrayList();
|
||||
numRegionList = new ArrayList();
|
||||
digestRegionList = new ArrayList();
|
||||
areaIpRegionList = new ArrayList();
|
||||
List list1 = new ArrayList();
|
||||
List<BaseStringCfg> list2 = new ArrayList();
|
||||
List<ComplexkeywordCfg> list3 = new ArrayList();
|
||||
List<com.nis.domain.configuration.NumBoundaryCfg> list4 = new ArrayList();
|
||||
List<FileDigestCfg> list5 = new ArrayList();
|
||||
String userRegion = "";
|
||||
//处理自定义域
|
||||
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"))){
|
||||
//通过反射机制获取自定义域字段值
|
||||
String regionColumn = n.get("regionColumn").toString();
|
||||
Class aClass = null;
|
||||
if(userRegionPosition.toString().equals(("0"))){
|
||||
aClass = BaseCfg.class;
|
||||
}else{
|
||||
aClass = AppFeatureIndex.class;
|
||||
}
|
||||
Object value = "";
|
||||
Field field = aClass.getDeclaredField(regionColumn);
|
||||
field.setAccessible(true);
|
||||
value = field.get(cfg);
|
||||
if(!StringUtil.isEmpty(value)){
|
||||
if(StringUtil.isEmpty(n.get("regionKey"))){
|
||||
userRegion = value.toString();
|
||||
}else{
|
||||
userRegion += n.get("regionKey")+"="+value+Constants.USER_REGION_SPLIT;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(userRegion.endsWith(Constants.USER_REGION_SPLIT)){
|
||||
userRegion = userRegion.substring(0, userRegion.length()-1);
|
||||
}
|
||||
}
|
||||
if(ipList.size()>0){
|
||||
List<Integer> ipGroupId = ConfigServiceUtil.getId(2,1);//多条IP只获取一个groupId
|
||||
for(int index=0;index<ipList.size();index++){
|
||||
IpPortCfg ip = ipList.get(index);
|
||||
if(ip.getCompileId().equals(cfg.getCompileId())){
|
||||
// BeanUtils.copyProperties(cfg, ip);
|
||||
ip.setRegionId(regionIds.get(0));
|
||||
regionIds.remove(0);
|
||||
ip.setGroupId(ipGroupId.get(0));
|
||||
ip.setIsValid(entity.getIsValid());
|
||||
ip.setAuditTime(StringUtil.isEmpty(ip.getAuditTime()) ? cfg.getAuditTime():ip.getAuditTime());
|
||||
list1.add(ip);
|
||||
}
|
||||
}
|
||||
}
|
||||
for(int index=0;index<strList.size();index++){
|
||||
BaseStringCfg str = strList.get(index);
|
||||
if(str.getCompileId().equals(cfg.getCompileId())){
|
||||
// BeanUtils.copyProperties(cfg, str);
|
||||
str.setRegionId(regionIds.get(0));
|
||||
regionIds.remove(0);
|
||||
str.setGroupId(groupIds.get(0));
|
||||
groupIds.remove(0);
|
||||
str.setIsValid(entity.getIsValid());
|
||||
str.setAuditTime(StringUtil.isEmpty(str.getAuditTime()) ? cfg.getAuditTime():str.getAuditTime());
|
||||
list2.add(str);
|
||||
}
|
||||
}
|
||||
for(int index=0;index<complexStrList.size();index++){
|
||||
ComplexkeywordCfg str = complexStrList.get(index);
|
||||
if(str.getCompileId().equals(cfg.getCompileId())){
|
||||
// BeanUtils.copyProperties(cfg, str);
|
||||
str.setRegionId(regionIds.get(0));
|
||||
regionIds.remove(0);
|
||||
str.setGroupId(groupIds.get(0));
|
||||
groupIds.remove(0);
|
||||
str.setIsValid(entity.getIsValid());
|
||||
str.setAuditTime(StringUtil.isEmpty(str.getAuditTime()) ? cfg.getAuditTime():str.getAuditTime());
|
||||
list3.add(str);
|
||||
}
|
||||
}
|
||||
for(int index=0;index<numList.size();index++){
|
||||
com.nis.domain.configuration.NumBoundaryCfg num = numList.get(index);
|
||||
if(num.getCompileId().equals(cfg.getCompileId())){
|
||||
// BeanUtils.copyProperties(cfg, num);
|
||||
num.setRegionId(regionIds.get(0));
|
||||
regionIds.remove(0);
|
||||
num.setGroupId(groupIds.get(0));
|
||||
groupIds.remove(0);
|
||||
num.setIsValid(entity.getIsValid());
|
||||
num.setAuditTime(StringUtil.isEmpty(num.getAuditTime()) ? cfg.getAuditTime():num.getAuditTime());
|
||||
list4.add(num);
|
||||
}
|
||||
}
|
||||
for(int index=0;index<fileList.size();index++){
|
||||
FileDigestCfg file = fileList.get(index);
|
||||
if(file.getCompileId().equals(cfg.getCompileId())){
|
||||
// BeanUtils.copyProperties(cfg, file);
|
||||
file.setRegionId(regionIds.get(0));
|
||||
regionIds.remove(0);
|
||||
file.setGroupId(groupIds.get(0));
|
||||
groupIds.remove(0);
|
||||
file.setIsValid(entity.getIsValid());
|
||||
file.setAuditTime(StringUtil.isEmpty(file.getAuditTime()) ? cfg.getAuditTime():file.getAuditTime());
|
||||
list5.add(file);
|
||||
}
|
||||
}
|
||||
if(list1.size()>0){
|
||||
ipList.removeAll(list1);
|
||||
Map<String,List> map = cfgToMaatConvert(ipRegionList,list1,1,groupRelationList);
|
||||
groupRelationList=map.get("groupList");
|
||||
ipRegionList=map.get("dstList");
|
||||
if(map.get("numRegionList")!=null){
|
||||
numRegionList.addAll(map.get("numRegionList"));
|
||||
}
|
||||
}
|
||||
if(list2.size()>0){
|
||||
strList.removeAll(list2);
|
||||
Map<String,List> map = cfgToMaatConvert(strRegionList,list2,2,groupRelationList);
|
||||
groupRelationList=map.get("groupList");
|
||||
strRegionList=map.get("dstList");
|
||||
}
|
||||
if(list3.size()>0){
|
||||
complexStrList.removeAll(list3);
|
||||
Map<String,List> map = cfgToMaatConvert(strRegionList,list3,3,groupRelationList);
|
||||
groupRelationList=map.get("groupList");
|
||||
strRegionList=map.get("dstList");
|
||||
}
|
||||
if(list4.size()>0){
|
||||
numList.removeAll(list4);
|
||||
Map<String,List> map = cfgToMaatConvert(numRegionList,list4,4,groupRelationList);
|
||||
groupRelationList=map.get("groupList");
|
||||
numRegionList=map.get("dstList");
|
||||
}
|
||||
if(list5.size()>0){
|
||||
fileList.removeAll(list5);
|
||||
Map<String,List> map = cfgToMaatConvert(digestRegionList,list5,5,groupRelationList);
|
||||
groupRelationList=map.get("groupList");
|
||||
digestRegionList=map.get("dstList");
|
||||
}
|
||||
|
||||
BeanUtils.copyProperties(cfg, maatCfg);
|
||||
maatCfg.setAction(cfg.getAction());
|
||||
maatCfg.setAuditTime(StringUtil.isEmpty(cfg.getAuditTime()) ? new Date():cfg.getAuditTime());
|
||||
maatCfg.setIpRegionList(ipRegionList);
|
||||
maatCfg.setStrRegionList(strRegionList);
|
||||
maatCfg.setNumRegionList(numRegionList);
|
||||
maatCfg.setDigestRegionList(digestRegionList);
|
||||
maatCfg.setGroupRelationList(groupRelationList);
|
||||
maatCfg.setGroupNum(groupRelationList.size());
|
||||
maatCfg.setAreaIpRegionList(areaIpRegionList);
|
||||
maatCfg.setIsValid(entity.getIsValid());
|
||||
maatCfg.setAuditTime(new Date());
|
||||
if(!StringUtil.isEmpty(userRegion)){
|
||||
maatCfg.setUserRegion(userRegion);
|
||||
}
|
||||
configCompileList.add(maatCfg);
|
||||
}
|
||||
page.setList(list);
|
||||
if(page.isLastPage()){
|
||||
hasData = false;
|
||||
}
|
||||
if(!StringUtil.isEmpty(configCompileList.size())){
|
||||
maatBean.setConfigCompileList(configCompileList);
|
||||
maatBean.setAuditTime(new Date());
|
||||
maatBean.setCreatorName(UserUtils.getUser().getName());
|
||||
maatBean.setVersion(Constants.MAAT_VERSION);
|
||||
maatBean.setOpAction(Constants.INSERT_ACTION);
|
||||
String json=gsonToJson(maatBean);
|
||||
//调用服务接口下发配置数据
|
||||
if(isUpdateCfg) {
|
||||
logger.info("配置批量下发:"+json);
|
||||
//调用服务接口同步回调类配置
|
||||
ToMaatResult result = ConfigServiceUtil.postMaatCfg(json);
|
||||
if(result!=null){
|
||||
logger.info("配置批量下发响应信息:"+result.getMsg());
|
||||
}
|
||||
}else {
|
||||
//调用服务接口配置全量更新
|
||||
// JSONObject result = ConfigServiceUtil.configSync(json,1,entity.getServiceId(),null,(hasData?null:"FINISHED"));
|
||||
}
|
||||
}
|
||||
return hasData;
|
||||
}
|
||||
/**
|
||||
* 处理ddos配置
|
||||
* @param serviceId
|
||||
@@ -488,7 +1077,42 @@ public class ConfigSynchronizationService extends BaseService{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理单域maat配置
|
||||
* @param serviceId
|
||||
* @param request
|
||||
* @param response
|
||||
* @throws SecurityException
|
||||
* @throws NoSuchFieldException
|
||||
* @throws IllegalAccessException
|
||||
* @throws IllegalArgumentException
|
||||
*/
|
||||
public void handleSingleMaatData(int cfgType,List<Map<String,Object>>userRegionList,
|
||||
Page<T> page,BaseCfg entity,HttpServletRequest request,HttpServletResponse response,
|
||||
boolean isUpdateCfg) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException{
|
||||
|
||||
boolean hasData = true;
|
||||
while(hasData){
|
||||
entity.setPage(page);
|
||||
List list = Lists.newArrayList();
|
||||
if(cfgType==1){
|
||||
list = configSynchronizationDao.getIpPortListByService(entity);
|
||||
}else if(cfgType==2){
|
||||
list = configSynchronizationDao.getStrListByService(entity);
|
||||
}else if(cfgType==3){
|
||||
list = configSynchronizationDao.getComplexStrListByService(entity);
|
||||
}
|
||||
if(!StringUtil.isEmpty(list)){
|
||||
hasData=auditSingleMaatData(cfgType,userRegionList,
|
||||
page,entity,list,hasData,isUpdateCfg);
|
||||
if(hasData) {
|
||||
page.setPageNo(page.getNext());
|
||||
}
|
||||
}else{
|
||||
hasData = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* ddos配置批量下发
|
||||
* @param cfgList
|
||||
@@ -627,6 +1251,161 @@ public class ConfigSynchronizationService extends BaseService{
|
||||
}
|
||||
return hasData;
|
||||
}
|
||||
/**
|
||||
* 单域配置批量下发
|
||||
* @param cfgList
|
||||
* @param userRegionList
|
||||
* @param page
|
||||
* @param entity
|
||||
* @param list
|
||||
* @param hasData
|
||||
* @param isUpdateCfg 业务配置全部生效时需同步更新库表配置状态
|
||||
* @return
|
||||
* @throws NoSuchFieldException
|
||||
* @throws SecurityException
|
||||
* @throws IllegalArgumentException
|
||||
* @throws IllegalAccessException
|
||||
*/
|
||||
public boolean auditSingleMaatData(int cfgType,
|
||||
List<Map<String,Object>>userRegionList,
|
||||
Page<T> page,
|
||||
BaseCfg entity,
|
||||
List<T> list,
|
||||
boolean hasData,
|
||||
boolean isUpdateCfg) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException{
|
||||
ToMaatBean maatBean;
|
||||
MaatCfg maatCfg;
|
||||
List<MaatCfg> configCompileList;
|
||||
List<GroupCfg> groupRelationList;
|
||||
List<IpCfg> ipRegionList;
|
||||
List<StringCfg> strRegionList;
|
||||
List<NumBoundaryCfg> numRegionList;
|
||||
List<DigestCfg> digestRegionList;
|
||||
List<IpCfg> areaIpRegionList;
|
||||
|
||||
|
||||
List<IpPortCfg> ipList = 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;
|
||||
for(int i=0;i<list.size();i++){
|
||||
BaseCfg cfg = new BaseCfg();
|
||||
BeanUtils.copyProperties(list.get(i), cfg);
|
||||
cfg.setRegionId(regionIds.get(i));
|
||||
cfg.setGroupId(groupIds.get(i));
|
||||
cfg.setIsValid(entity.getIsValid());
|
||||
cfg.setAuditTime(StringUtil.isEmpty(cfg.getAuditTime()) ? entity.getAuditTime():cfg.getAuditTime());
|
||||
maatCfg = new MaatCfg();
|
||||
maatCfg.initDefaultValue();
|
||||
groupRelationList = new ArrayList();
|
||||
ipRegionList = new ArrayList();
|
||||
strRegionList = new ArrayList();
|
||||
numRegionList = new ArrayList();
|
||||
digestRegionList = new ArrayList();
|
||||
areaIpRegionList = new ArrayList();
|
||||
List list1 = new ArrayList();
|
||||
String userRegion = "";
|
||||
//处理自定义域
|
||||
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"))){
|
||||
//通过反射机制获取自定义域字段值
|
||||
String regionColumn = n.get("regionColumn").toString();
|
||||
Class aClass = null;
|
||||
if(userRegionPosition.toString().equals(("0"))){
|
||||
aClass = BaseCfg.class;
|
||||
}else{
|
||||
if(cfgType==1){
|
||||
aClass = IpPortCfg.class;
|
||||
}else if(cfgType==2){
|
||||
aClass = BaseStringCfg.class;
|
||||
}else if(cfgType==3){
|
||||
aClass = ComplexkeywordCfg.class;
|
||||
}
|
||||
|
||||
}
|
||||
Object value = "";
|
||||
Field field = aClass.getDeclaredField(regionColumn);
|
||||
field.setAccessible(true);
|
||||
value = field.get(cfg);
|
||||
if(!StringUtil.isEmpty(value)){
|
||||
if(StringUtil.isEmpty(n.get("regionKey"))){
|
||||
userRegion = value.toString();
|
||||
}else{
|
||||
userRegion += n.get("regionKey")+"="+value+Constants.USER_REGION_SPLIT;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(userRegion.endsWith(Constants.USER_REGION_SPLIT)){
|
||||
userRegion = userRegion.substring(0, userRegion.length()-1);
|
||||
}
|
||||
}
|
||||
list1.add(cfg);
|
||||
if(list1.size()>0){
|
||||
ipList.removeAll(list1);
|
||||
if(cfgType==1){
|
||||
Map<String,List> map = cfgToMaatConvert(ipRegionList,list1,1,groupRelationList);
|
||||
groupRelationList=map.get("groupList");
|
||||
ipRegionList=map.get("dstList");
|
||||
if(map.get("numRegionList")!=null){
|
||||
numRegionList.addAll(map.get("numRegionList"));
|
||||
}
|
||||
}else if(cfgType==2||cfgType==3){
|
||||
Map<String,List> map = cfgToMaatConvert(strRegionList,list1,2,groupRelationList);
|
||||
groupRelationList=map.get("groupList");
|
||||
strRegionList=map.get("dstList");
|
||||
}
|
||||
}
|
||||
BeanUtils.copyProperties(cfg, maatCfg);
|
||||
maatCfg.setAction(cfg.getAction());
|
||||
maatCfg.setAuditTime(StringUtil.isEmpty(cfg.getAuditTime()) ? new Date():cfg.getAuditTime());
|
||||
maatCfg.setIpRegionList(ipRegionList);
|
||||
maatCfg.setStrRegionList(strRegionList);
|
||||
maatCfg.setNumRegionList(numRegionList);
|
||||
maatCfg.setDigestRegionList(digestRegionList);
|
||||
maatCfg.setGroupRelationList(groupRelationList);
|
||||
maatCfg.setGroupNum(groupRelationList.size());
|
||||
maatCfg.setAreaIpRegionList(areaIpRegionList);
|
||||
maatCfg.setIsValid(entity.getIsValid());
|
||||
if(!StringUtil.isEmpty(userRegion)){
|
||||
maatCfg.setUserRegion(userRegion);
|
||||
}
|
||||
configCompileList.add(maatCfg);
|
||||
}
|
||||
page.setList(list);
|
||||
if(page.isLastPage()){
|
||||
hasData = false;
|
||||
}
|
||||
if(!StringUtil.isEmpty(configCompileList.size())){
|
||||
maatBean.setConfigCompileList(configCompileList);
|
||||
maatBean.setAuditTime(new Date());
|
||||
maatBean.setCreatorName(UserUtils.getUser().getName());
|
||||
maatBean.setVersion(Constants.MAAT_VERSION);
|
||||
maatBean.setOpAction(Constants.INSERT_ACTION);
|
||||
String json=gsonToJson(maatBean);
|
||||
//调用服务接口下发配置数据
|
||||
if(isUpdateCfg) {
|
||||
logger.info("配置批量下发:"+json);
|
||||
//调用服务接口同步回调类配置
|
||||
ToMaatResult result = ConfigServiceUtil.postMaatCfg(json);
|
||||
if(result!=null){
|
||||
logger.info("配置批量下发响应信息:"+result.getMsg());
|
||||
}
|
||||
}else {
|
||||
//调用服务接口配置全量更新
|
||||
JSONObject result = ConfigServiceUtil.configSync(json,1,entity.getServiceId(),null,(hasData?null:"FINISHED"));
|
||||
}
|
||||
|
||||
}
|
||||
return hasData;
|
||||
}
|
||||
/**
|
||||
* 处理app业务maat类配置
|
||||
* @param serviceId
|
||||
@@ -759,4 +1538,15 @@ public class ConfigSynchronizationService extends BaseService{
|
||||
|
||||
return hasData;
|
||||
}
|
||||
public void auditBatch(List compileIds,String tableName,BaseCfg entity) {
|
||||
if(!StringUtil.isEmpty(compileIds) && !StringUtil.isEmpty(tableName)) {
|
||||
commonPolicyDao.auditCfgBatch(tableName
|
||||
, entity.getIsAudit()
|
||||
, entity.getIsValid()
|
||||
, entity.getAuditTime()
|
||||
, entity.getAuditorId()
|
||||
, compileIds, null);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user