diff --git a/src/main/java/com/nis/web/service/BaseService.java b/src/main/java/com/nis/web/service/BaseService.java index d79be0754..968bd4d90 100644 --- a/src/main/java/com/nis/web/service/BaseService.java +++ b/src/main/java/com/nis/web/service/BaseService.java @@ -60,6 +60,7 @@ import com.nis.domain.configuration.ComplexkeywordCfg; import com.nis.domain.configuration.DdosIpCfg; import com.nis.domain.configuration.DnsIpCfg; import com.nis.domain.configuration.DnsResStrategy; +import com.nis.domain.configuration.FileDigestCfg; import com.nis.domain.configuration.PxyObjKeyring; import com.nis.domain.configuration.PxyObjTrustedCaCert; import com.nis.domain.configuration.PxyObjTrustedCaCrl; @@ -684,6 +685,148 @@ public abstract class BaseService { return map; } + /** + * 界面配置list转换为服务接口端的list,用于批量下发时,regionId,groupId已在该方法前被批量获取 + * + * @param + * @param + * @param dstList + * @param srcList + * @param cfgType,1为IP类型,2为字符串类型,3为增强字符串,4数值类型,5摘要类,6回调类[但字符串类域配置和增强字符串域配置在接口参数中同属于strRegionList] + * @param baseCfg,配置基本信息 + * @param groupRelationList + * 配置分组列表 + * @return + */ + public static Map cfgToMaatConvert(List dstList, List srcList, Integer cfgType,List groupRelationList) { + Map map = new HashMap(); + if (cfgType == 1) { + List numRegionList = new ArrayList(); + Integer groupId = 0; + Integer numGroupId = 0; + for (int i = 0; i < srcList.size(); i++) { + List regionIdList = Lists.newArrayList(); + T srcCfg = srcList.get(i); + BaseIpCfg baseIpCfg = new BaseIpCfg(); + BeanUtils.copyProperties(srcCfg, baseIpCfg); + regionIdList.add(baseIpCfg.getRegionId()); + IpCfg cfg = new IpCfg(); + BeanUtils.copyProperties(baseIpCfg, cfg); + //多条IP配置属于同一个分组 + if (groupId == 0) { + GroupCfg group = new GroupCfg(); + groupId = baseIpCfg.getGroupId(); + group.setGroupId(groupId); + group.setCompileId(baseIpCfg.getCompileId()); + group.setAuditTime(baseIpCfg.getAuditTime()); + group.setIsValid(baseIpCfg.getIsValid()); + groupRelationList.add(group); + } + cfg.setGroupId(groupId); + cfg.setAuditTime(baseIpCfg.getAuditTime()); + cfg.setIsValid(baseIpCfg.getIsValid()); + List cfgs = ipConvert(cfg, baseIpCfg); + if (cfgs.size() > 1) { + List ids = ConfigServiceUtil.getId(3, cfgs.size() - 1); + regionIdList.addAll(ids); + } + for (int j = i; j < cfgs.size() + i; j++) { + cfgs.get(j - i).setRegionId(regionIdList.get(j)); + } + dstList.addAll(cfgs); + + // 如果protocolId非空非零,需要构造数值型域配置,多条相同协议的IP只需要一条数值域配置(目前没有不同协议IP&情况) + if (baseIpCfg.getProtocolId() != null && baseIpCfg.getProtocolId() != 0) { + if (numGroupId == 0) { + GroupCfg group1 = new GroupCfg(); + group1.setGroupId(ConfigServiceUtil.getId(2, 1).get(0)); + group1.setCompileId(baseIpCfg.getCompileId()); + group1.setAuditTime(baseIpCfg.getAuditTime()); + group1.setIsValid(baseIpCfg.getIsValid()); + groupRelationList.add(group1); + NumBoundaryCfg numCfg = new NumBoundaryCfg(); + numCfg.initDefaultValue(); + numCfg.setLowBoundary(baseIpCfg.getProtocolId()); + numCfg.setUpBoundary(baseIpCfg.getProtocolId()); + numCfg.setRegionId(ConfigServiceUtil.getId(3, 1).get(0)); + numCfg.setAuditTime(baseIpCfg.getAuditTime()); + numCfg.setGroupId(group1.getGroupId()); + numCfg.setIsValid(baseIpCfg.getIsValid()); + numRegionList.add(numCfg); + map.put("numRegionList", numRegionList); + numGroupId++; + } + } + } + + } else if (cfgType == 2 || cfgType == 3) { + for (int i = 0; i < srcList.size(); i++) { + // 一条业务配置创建一个分组 + BaseCfg baseCfg = new BaseCfg(); + BeanUtils.copyProperties(srcList.get(i), baseCfg);//拷贝公共属性 + GroupCfg group = new GroupCfg(); + StringCfg cfg = new StringCfg(); + BeanUtils.copyProperties(srcList.get(i), cfg);//拷贝公共属性以及私有属性 + group.setGroupId(baseCfg.getGroupId()); + group.setCompileId(baseCfg.getCompileId()); + group.setAuditTime(baseCfg.getAuditTime()); + group.setIsValid(baseCfg.getIsValid()); + groupRelationList.add(group); + cfg.setGroupId(group.getGroupId()); + cfg.setRegionId(baseCfg.getRegionId()); + cfg.setAuditTime(baseCfg.getAuditTime()); + cfg.setIsValid(baseCfg.getIsValid()); + // 处理配置关键字转译 + cfg.setCfgKeywords(keywordsEscape(cfg.getCfgKeywords())); + // 增强字符串转换 + cfg.setDistrict(keywordsEscape(cfg.getDistrict())); + dstList.add(cfg); + } + } else if (cfgType == 4) { + for (int i = 0; i < srcList.size(); i++) { + BaseCfg baseCfg = new BaseCfg(); + BeanUtils.copyProperties(srcList.get(i), baseCfg);//拷贝公共属性 + // 一条业务配置创建一个分组 + com.nis.domain.maat.MaatCfg.NumBoundaryCfg cfg = new com.nis.domain.maat.MaatCfg.NumBoundaryCfg(); + BeanUtils.copyProperties(srcList.get(i), cfg); + GroupCfg group = new GroupCfg(); + group.setGroupId(baseCfg.getGroupId()); + group.setCompileId(baseCfg.getCompileId()); + group.setAuditTime(baseCfg.getAuditTime()); + group.setIsValid(baseCfg.getIsValid()); + groupRelationList.add(group); + cfg.setGroupId(group.getGroupId()); + cfg.setRegionId(baseCfg.getRegionId()); + cfg.setAuditTime(baseCfg.getAuditTime()); + cfg.setIsValid(baseCfg.getIsValid()); + dstList.add(cfg); + } + } else if (cfgType == 5) { + for (int i = 0; i < srcList.size(); i++) { + BaseCfg baseCfg = new BaseCfg(); + BeanUtils.copyProperties(srcList.get(i), baseCfg);//拷贝公共属性 + // 一条业务配置创建一个分组 + com.nis.domain.maat.MaatCfg.DigestCfg cfg = new com.nis.domain.maat.MaatCfg.DigestCfg(); + BeanUtils.copyProperties(srcList.get(i), cfg); + GroupCfg group = new GroupCfg(); + group.setGroupId(baseCfg.getGroupId()); + group.setCompileId(baseCfg.getCompileId()); + group.setAuditTime(baseCfg.getAuditTime()); + group.setIsValid(baseCfg.getIsValid()); + groupRelationList.add(group); + cfg.setGroupId(group.getGroupId()); + cfg.setRegionId(baseCfg.getRegionId()); + cfg.setAuditTime(baseCfg.getAuditTime()); + cfg.setIsValid(baseCfg.getIsValid()); + dstList.add(cfg); + } + } else { + dstList.addAll(srcList); + } + map.put("groupList", groupRelationList); + map.put("dstList", dstList); + return map; + } /** * 界面IP配置转换为MAAT类或者回调类IP配置 * diff --git a/src/main/java/com/nis/web/service/configuration/ConfigSynchronizationService.java b/src/main/java/com/nis/web/service/configuration/ConfigSynchronizationService.java index 815184ade..ef837d382 100644 --- a/src/main/java/com/nis/web/service/configuration/ConfigSynchronizationService.java +++ b/src/main/java/com/nis/web/service/configuration/ConfigSynchronizationService.java @@ -428,7 +428,6 @@ public class ConfigSynchronizationService extends BaseService{ maatBean.setVersion(Constants.MAAT_VERSION); maatBean.setOpAction(Constants.INSERT_ACTION); String json=gsonToJson(maatBean); -// logger.info(json); //调用服务接口下发配置数据 if(isUpdateCfg) { logger.info("配置批量下发:"+json);