From e4be9d82afc6238575f5a4bddcb3ce5792d2847e Mon Sep 17 00:00:00 2001 From: renkaige Date: Tue, 15 Jan 2019 20:37:53 +0600 Subject: [PATCH] =?UTF-8?q?1:=20=E5=88=A4=E6=96=AD=E5=85=AC=E5=85=B1?= =?UTF-8?q?=E7=BB=84=E4=B8=8B=E9=9D=A2=E6=98=AF=E5=90=A6=E6=9C=89=E5=9F=9F?= =?UTF-8?q?=E9=85=8D=E7=BD=AE,=E6=B2=A1=E6=9C=89=E5=9F=9F=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E6=97=B6=E5=B0=B1=E4=B8=8D=E5=BE=80=E4=B8=8B=E9=9D=A2?= =?UTF-8?q?=E4=B8=8B=E5=8F=91=E4=BA=86,=E9=81=BF=E5=85=8D=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E7=89=88=E6=9C=AC=E5=8F=B7=202:=E5=9C=A8=E5=8F=96?= =?UTF-8?q?=E6=B6=88=E6=99=AE=E9=80=9A=E7=B1=BB=E9=85=8D=E7=BD=AE=E6=97=B6?= =?UTF-8?q?=E5=88=A4=E6=96=AD=E5=BD=93=E9=9C=80=E8=A6=81=E4=BF=9D=E7=95=99?= =?UTF-8?q?=E7=9A=84groupid=E4=B8=BA=E7=A9=BA=E6=97=B6=E7=BB=A7=E7=BB=AD?= =?UTF-8?q?=E6=89=A7=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../restful/ConfigJedisServiceimpl.java | 18 +++++++----- .../service/restful/ConfigSourcesService.java | 29 ++++++++++++++++++- 2 files changed, 38 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/nis/web/service/restful/ConfigJedisServiceimpl.java b/src/main/java/com/nis/web/service/restful/ConfigJedisServiceimpl.java index fa95379..0350191 100644 --- a/src/main/java/com/nis/web/service/restful/ConfigJedisServiceimpl.java +++ b/src/main/java/com/nis/web/service/restful/ConfigJedisServiceimpl.java @@ -1137,8 +1137,9 @@ public class ConfigJedisServiceimpl implements ConfigRedisService { if (groupAndCompileStr != null && !groupAndCompileStr.trim().equals("")) { String compileId = getRegionInfo(groupAndCompileStr);// COMPILEGROUP:24070 if (compileId != null && !compileId.trim().equals("")) { - if (isStart || (keepGroupId != null && keepGroupId.size() > 0 - && !keepGroupId.contains(Long.parseLong(groupIdReal)))) { + if (isStart || keepGroupId == null || keepGroupId.size() == 0 + || (keepGroupId != null && keepGroupId.size() > 0 + && !keepGroupId.contains(Long.parseLong(groupIdReal)))) { // 如果是生效则根据关联关系将组下的域都改为生效 // 如果是失效并且当前组不是需要保留的组,则将该组下的域置为失效 if (compileId.equals(compileStr)) {// 判断编译id是否一致 @@ -2296,7 +2297,7 @@ public class ConfigJedisServiceimpl implements ConfigRedisService { if (groupIdAndregionIdMap != null && groupIdAndregionIdMap.size() > 0) { int idRelaRedisDBIndex = Configurations.getIntProperty("idRelaRedisDBIndex", 15); transaction.select(idRelaRedisDBIndex); - //获取需要删除的regionkey + // 获取需要删除的regionkey Set set = new HashSet<>(); Set groupIdSet = groupIdAndregionIdMap.keySet(); for (Long groupId : groupIdSet) { @@ -2310,12 +2311,12 @@ public class ConfigJedisServiceimpl implements ConfigRedisService { String[] keyAndDBArr = org.apache.commons.lang.StringUtils.split(regionKey, ";"); for (String keyAndDB : keyAndDBArr) { String key = keyAndDB.substring(0, keyAndDB.indexOf("-")); - String regionId = key.substring(keyAndDB.indexOf(",")+1); - if(regionId!=null&&!regionId.trim().equals("")) { - if(regionSet.contains(Long.parseLong(regionId))) { + String regionId = key.substring(keyAndDB.indexOf(",") + 1); + if (regionId != null && !regionId.trim().equals("")) { + if (regionSet.contains(Long.parseLong(regionId))) { set.add(key); } - }else { + } else { throw new ServiceRuntimeException("获取公共组下面域配置的id,域配置的key为" + key + ",请检查数据是否正确", RestBusinessCode.CommonGroupIsNotExist.getValue()); } @@ -2348,7 +2349,8 @@ public class ConfigJedisServiceimpl implements ConfigRedisService { transaction.exec(); return true; } else { - throw new ServiceRuntimeException("删除公共组中域配置时,参数为空,请检查", RestBusinessCode.ConfigSourceIsNull.getValue()); + throw new ServiceRuntimeException("删除公共组中域配置时,参数为空,请检查", + RestBusinessCode.ConfigSourceIsNull.getValue()); } diff --git a/src/main/java/com/nis/web/service/restful/ConfigSourcesService.java b/src/main/java/com/nis/web/service/restful/ConfigSourcesService.java index 5db38a8..1352b16 100644 --- a/src/main/java/com/nis/web/service/restful/ConfigSourcesService.java +++ b/src/main/java/com/nis/web/service/restful/ConfigSourcesService.java @@ -126,6 +126,10 @@ public class ConfigSourcesService extends BaseService { Map> configMap = new HashMap>(); // 公共组的groupid Set commonGroupIdSet = new HashSet<>(); + // 判断公共组下面是否有域配置,没有域配置时就不往下面下发了,避免添加版本号 + + boolean isHaveCommonRegion = false; + for (ConfigCompile configCompile : configCompileList) { Integer service = Integer.valueOf(configCompile.getService().toString()); MaatConfig maatConfig = new MaatConfig(); @@ -152,6 +156,11 @@ public class ConfigSourcesService extends BaseService { if (!StringUtil.isEmpty(configCompile.getStrRegionList())) { dstMaplList = new ArrayList>(); for (StrRegion region : configCompile.getStrRegionList()) { + + if (commonGroupIdSet.contains(region.getGroupId())) { + isHaveCommonRegion = true; + } + if (StringUtil.isEmpty(region.getDistrict())) { dstMaplList.add(convertObjectToMap(region, StrRegion.class)); } else { @@ -172,6 +181,9 @@ public class ConfigSourcesService extends BaseService { if (!StringUtil.isEmpty(configCompile.getNumRegionList())) { dstMaplList = new ArrayList>(); for (NumRegion region : configCompile.getNumRegionList()) { + if (commonGroupIdSet.contains(region.getGroupId())) { + isHaveCommonRegion = true; + } dstMaplList.add(convertObjectToMap(region, NumRegion.class)); } } @@ -182,6 +194,9 @@ public class ConfigSourcesService extends BaseService { if (!StringUtil.isEmpty(configCompile.getIpRegionList())) { dstMaplList = new ArrayList>(); for (IpRegion region : configCompile.getIpRegionList()) { + if (commonGroupIdSet.contains(region.getGroupId())) { + isHaveCommonRegion = true; + } dstMaplList.add(convertObjectToMap(region, IpRegion.class)); } } @@ -192,6 +207,9 @@ public class ConfigSourcesService extends BaseService { if (!StringUtil.isEmpty(configCompile.getDigestRegionList())) { dstMaplList = new ArrayList>(); for (DigestRegion region : configCompile.getDigestRegionList()) { + if (commonGroupIdSet.contains(region.getGroupId())) { + isHaveCommonRegion = true; + } dstMaplList.add(convertObjectToMap(region, DigestRegion.class)); } } @@ -207,6 +225,9 @@ public class ConfigSourcesService extends BaseService { if (!StringUtil.isEmpty(configCompile.getIpClientRangeList())) { dstMaplList = new ArrayList>(); for (IpRegion region : configCompile.getIpClientRangeList()) { + if (commonGroupIdSet.contains(region.getGroupId())) { + isHaveCommonRegion = true; + } dstMaplList.add(convertObjectToMap(region, IpRegion.class)); } } @@ -258,7 +279,13 @@ public class ConfigSourcesService extends BaseService { } } logger.info("---------------调用Redis maat配置新增接口---------------------"); - configRedisService.saveMaatConfig(configMap, new ArrayList<>(commonGroupIdSet)); + + if (isHaveCommonRegion) { + configRedisService.saveMaatConfig(configMap, new ArrayList<>(commonGroupIdSet)); + } else { + configRedisService.saveMaatConfig(configMap, new ArrayList());//下层有直接使用的地方,不可直接传入null + } + } /**