From 0672181a93cfc90b06d154d68bccceacf22b03cc Mon Sep 17 00:00:00 2001 From: renkaige Date: Mon, 25 Feb 2019 09:13:21 +0800 Subject: [PATCH] =?UTF-8?q?1:=E4=B8=BA=E5=85=AC=E5=85=B1=E7=BB=84=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=9F=9F=E9=85=8D=E7=BD=AE=E5=92=8C=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=9F=9F=E9=85=8D=E7=BD=AE=E7=9A=84=E7=9A=84=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=8B=BC=E6=8E=A5=E5=AD=97=E7=AC=A6=E4=B8=B2=E6=97=B6=E5=88=A4?= =?UTF-8?q?=E6=96=AD=E6=98=AF=E5=90=A6=E4=B8=BA=E7=A9=BA,=E5=A6=82?= =?UTF-8?q?=E6=9E=9C=E4=B8=BA=E7=A9=BA=E7=BB=99=E5=87=BA=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=202:=E4=B8=BA=E5=85=AC=E5=85=B1=E7=BB=84=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=9F=9F=E9=85=8D=E7=BD=AE=E5=92=8C=E4=BF=AE=E6=94=B9=E5=9F=9F?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E7=9A=84=E7=9A=84=E6=8E=A5=E5=8F=A3=E5=88=A4?= =?UTF-8?q?=E6=96=AD=E6=98=AF=E5=90=A6=E6=9C=89=E5=9F=9F=E9=85=8D=E7=BD=AE?= =?UTF-8?q?,=E5=A6=82=E6=9E=9C=E6=B2=A1=E6=9C=89=E5=9F=9F=E5=9F=9F?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E7=BB=99=E5=87=BA=E6=8F=90=E7=A4=BA=203:?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=88=96=E4=BF=AE=E6=94=B9=E5=85=AC=E5=85=B1?= =?UTF-8?q?=E7=BB=84=E5=9F=9F=E9=85=8D=E7=BD=AE=E6=97=B6=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E4=BB=8E=E5=A2=9E=E5=BC=BA=E5=AD=97=E7=AC=A6=E4=B8=B2,?= =?UTF-8?q?=E6=96=87=E4=BB=B6,ip=E8=8C=83=E5=9B=B4=E7=AD=89=E9=9B=86?= =?UTF-8?q?=E5=90=88=E4=B8=AD=E8=8E=B7=E5=8F=96=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../restful/ConfigJedisServiceimpl.java | 158 ++++++++++++++---- 1 file changed, 130 insertions(+), 28 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 0350191..70da6e1 100644 --- a/src/main/java/com/nis/web/service/restful/ConfigJedisServiceimpl.java +++ b/src/main/java/com/nis/web/service/restful/ConfigJedisServiceimpl.java @@ -72,14 +72,23 @@ public class ConfigJedisServiceimpl implements ConfigRedisService { for (String keyStr : keySplit) { if (!StringUtils.isEmpty(keyStr) && keyStr.trim().startsWith("[")) { keyStr = keyStr.trim().replace("[", "").replace("]", ""); - keyBF.append(map.get(keyStr)); + String keyVal = map.get(keyStr); + if (keyVal != null && !keyVal.equals("")) { + keyBF.append(keyVal); + } else { + throw new ServiceRuntimeException( + "未从map中获取到" + keyStr + "的值,请检查数据或配置文件是否正确", + RestBusinessCode.NotFoundValueByKey.getValue()); + } + } else if (!StringUtils.isEmpty(keyStr) && keyStr.trim().startsWith("{")) { keyStr = keyStr.trim().replace("{", "").replace("}", ""); if (keyStr.toLowerCase().contains("table_name")) { String maatTableName = ServiceAndRDBIndexReal .getUnMaatTableName(service); - if (maatTableName == null) { + if (maatTableName == null + || maatTableName.trim().equals("")) { throw new ServiceRuntimeException( "无法从applicationConfig-rule.properties配置文件中,找到回调类配置service为" + service + "对应的真实表名", @@ -332,7 +341,7 @@ public class ConfigJedisServiceimpl implements ConfigRedisService { if (!StringUtils.isEmpty(valStr) && valStr.trim().startsWith("[")) { valStr = valStr.trim().replace("[", "").replace("]", ""); String val = compileMap.get(valStr.toLowerCase()); - if (val != null) { + if (val != null && !val.trim().equals("")) { valBF.append(val); } else { // 编译配置或分组配置 所有在maat.xml中配置的属性都不可以为空 @@ -638,7 +647,7 @@ public class ConfigJedisServiceimpl implements ConfigRedisService { if (!StringUtils.isEmpty(valStr) && valStr.trim().startsWith("[")) { valStr = valStr.trim().replace("[", "").replace("]", ""); String val = map.get(valStr); - if (val != null) { + if (val != null && !val.trim().equals("")) { if ((Constants.TAPREDISDB == redisDBIndex || Constants.WEBFOCUSREDISDB == redisDBIndex) && type != 10 && type != 11 && valStr.toLowerCase().equals("op_time")) {// 域配置并且是op_time时在op_time前面添加如下内容 Map map2 = ServiceAndRDBIndexReal.getMaatToValveMap() @@ -1674,7 +1683,7 @@ public class ConfigJedisServiceimpl implements ConfigRedisService { keyStr = keyStr.trim().replace("{", "").replace("}", ""); if (keyStr.toLowerCase().contains("table_name")) { String argTableName = map.get("table_name"); - if (argTableName == null) { + if (argTableName == null || argTableName.trim().equals("")) { throw new ServiceRuntimeException("添加公共组域配置时,必须要传入表名,请检查参数,配置类型:" + type + ",对应的真实表名", RestBusinessCode.NotFoundTableName.getValue()); } else { @@ -1696,7 +1705,7 @@ public class ConfigJedisServiceimpl implements ConfigRedisService { valBF.append(user_region + "\t"); } String val = map.get(valStr); - if (val != null) { + if (val != null && !val.trim().equals("")) { valBF.append(val); if (valStr.equals("group_id")) { groupId = val; @@ -1839,7 +1848,7 @@ public class ConfigJedisServiceimpl implements ConfigRedisService { keyBF.append(keyStr.trim()); } } - String groupId = null; +// String groupId = null; StringBuffer valBF = new StringBuffer(); String[] valSplit = maatXmlExpr.getValueExpression().split(";"); for (String valStr : valSplit) { @@ -1850,11 +1859,8 @@ public class ConfigJedisServiceimpl implements ConfigRedisService { valBF.append(user_region + "\t"); } String val = map.get(valStr); - if (val != null) { + if (val != null && !val.trim().equals("")) { valBF.append(val); - if (valStr.equals("group_id")) { - groupId = val; - } } else { // 所有在maat.xml中配置的属性都不可以为空 throw new ServiceRuntimeException("未从map中获取到" + valStr + "的值,无法拼接redisValue,请检查数据或配置文件是否正确", @@ -1908,6 +1914,10 @@ public class ConfigJedisServiceimpl implements ConfigRedisService { MaatXmlExpr maatXmlExpr12 = null; MaatXmlExpr maatXmlExpr13 = null; MaatXmlExpr maatXmlExpr14 = null; + MaatXmlExpr maatXmlExpr15 = null; + MaatXmlExpr maatXmlExpr16 = null; + MaatXmlExpr maatXmlExpr17 = null; + MaatXmlExpr maatXmlExpr18 = null; if (maatXmlConfig != null) { List expressionList = maatXmlConfig.getExpressionList(); if (expressionList != null && expressionList.size() > 0) { @@ -1918,17 +1928,59 @@ public class ConfigJedisServiceimpl implements ConfigRedisService { maatXmlExpr13 = maatXmlExpr; } else if (maatXmlExpr.getType().intValue() == 14) { maatXmlExpr14 = maatXmlExpr; + } else if (maatXmlExpr.getType().intValue() == 15) { + maatXmlExpr15 = maatXmlExpr; + } else if (maatXmlExpr.getType().intValue() == 16) { + maatXmlExpr16 = maatXmlExpr; + } else if (maatXmlExpr.getType().intValue() == 17) { + maatXmlExpr17 = maatXmlExpr; + } else if (maatXmlExpr.getType().intValue() == 18) { + maatXmlExpr18 = maatXmlExpr; } } } - + int count = 0; for (MaatConfig maatConfig : configList) { - addReionToCommonGroup(maatConfig.getIpRegionMapList(), maatXmlExpr12, transaction, 12, - idRelaRedisDBIndex, expressionList, isAdd); - addReionToCommonGroup(maatConfig.getNumRegionMapList(), maatXmlExpr13, transaction, 13, - idRelaRedisDBIndex, expressionList, isAdd); - addReionToCommonGroup(maatConfig.getStrRegionMapList(), maatXmlExpr14, transaction, 14, - idRelaRedisDBIndex, expressionList, isAdd); + if (maatConfig.getIpRegionMapList() != null && maatConfig.getIpRegionMapList().size() > 0) { + count += maatConfig.getIpRegionMapList().size(); + addReionToCommonGroup(maatConfig.getIpRegionMapList(), maatXmlExpr12, transaction, 12, + idRelaRedisDBIndex, expressionList, isAdd); + } + if (maatConfig.getNumRegionMapList() != null && maatConfig.getNumRegionMapList().size() > 0) { + count += maatConfig.getNumRegionMapList().size(); + addReionToCommonGroup(maatConfig.getNumRegionMapList(), maatXmlExpr13, transaction, 13, + idRelaRedisDBIndex, expressionList, isAdd); + } + if (maatConfig.getStrRegionMapList() != null && maatConfig.getStrRegionMapList().size() > 0) { + count += maatConfig.getStrRegionMapList().size(); + addReionToCommonGroup(maatConfig.getStrRegionMapList(), maatXmlExpr14, transaction, 14, + idRelaRedisDBIndex, expressionList, isAdd); + } + if (maatConfig.getStrStrRegionMapList() != null && maatConfig.getStrStrRegionMapList().size() > 0) { + count += maatConfig.getStrStrRegionMapList().size(); + addReionToCommonGroup(maatConfig.getStrStrRegionMapList(), maatXmlExpr15, transaction, 15, + idRelaRedisDBIndex, expressionList, isAdd); + } + if (maatConfig.getFileDigestRegionMapList() != null && maatConfig.getFileDigestRegionMapList().size() > 0) { + count += maatConfig.getFileDigestRegionMapList().size(); + addReionToCommonGroup(maatConfig.getFileDigestRegionMapList(), maatXmlExpr16, transaction, + 16, idRelaRedisDBIndex, expressionList, isAdd); + } + if (maatConfig.getFileLikeRegionMapList() != null && maatConfig.getFileLikeRegionMapList().size() > 0) { + count += maatConfig.getFileLikeRegionMapList().size(); + addReionToCommonGroup(maatConfig.getFileLikeRegionMapList(), maatXmlExpr17, transaction, 17, + idRelaRedisDBIndex, expressionList, isAdd); + } + if (maatConfig.getIpClientRangeMapList() != null && maatConfig.getIpClientRangeMapList().size() > 0) { + count += maatConfig.getIpClientRangeMapList().size(); + addReionToCommonGroup(maatConfig.getIpClientRangeMapList(), maatXmlExpr18, transaction, 18, + idRelaRedisDBIndex, expressionList, isAdd); + } + + } + if (count == 0) { + throw new ServiceRuntimeException("添加公共组域配置时,未发现对应的配置信息,请检查配置参数是否正确", + RestBusinessCode.ConfigSourceIsNull.getValue()); } for (String db : Constants.COMMONGROUPDBARR) { transaction.select(Integer.parseInt(db)); @@ -1971,6 +2023,10 @@ public class ConfigJedisServiceimpl implements ConfigRedisService { MaatXmlExpr maatXmlExpr12 = null; MaatXmlExpr maatXmlExpr13 = null; MaatXmlExpr maatXmlExpr14 = null; + MaatXmlExpr maatXmlExpr15 = null; + MaatXmlExpr maatXmlExpr16 = null; + MaatXmlExpr maatXmlExpr17 = null; + MaatXmlExpr maatXmlExpr18 = null; if (maatXmlConfig != null) { List expressionList = maatXmlConfig.getExpressionList(); if (expressionList != null && expressionList.size() > 0) { @@ -1981,19 +2037,65 @@ public class ConfigJedisServiceimpl implements ConfigRedisService { maatXmlExpr13 = maatXmlExpr; } else if (maatXmlExpr.getType().intValue() == 14) { maatXmlExpr14 = maatXmlExpr; + } else if (maatXmlExpr.getType().intValue() == 15) { + maatXmlExpr15 = maatXmlExpr; + } else if (maatXmlExpr.getType().intValue() == 16) { + maatXmlExpr16 = maatXmlExpr; + } else if (maatXmlExpr.getType().intValue() == 17) { + maatXmlExpr17 = maatXmlExpr; + } else if (maatXmlExpr.getType().intValue() == 18) { + maatXmlExpr18 = maatXmlExpr; } } } - + int count = 0; for (MaatConfig maatConfig : configList) { - - updateCommonGroupRegion(maatConfig.getIpRegionMapList(), maatXmlExpr12, transaction, 12, - idRelaRedisDBIndex, expressionList); - updateCommonGroupRegion(maatConfig.getNumRegionMapList(), maatXmlExpr13, transaction, 13, - idRelaRedisDBIndex, expressionList); - updateCommonGroupRegion(maatConfig.getStrRegionMapList(), maatXmlExpr14, transaction, 14, - idRelaRedisDBIndex, expressionList); + if (maatConfig.getIpRegionMapList() != null && maatConfig.getIpRegionMapList().size() > 0) { + count += maatConfig.getIpRegionMapList().size(); + updateCommonGroupRegion(maatConfig.getIpRegionMapList(), maatXmlExpr12, transaction, 12, + idRelaRedisDBIndex, expressionList); + } + if (maatConfig.getNumRegionMapList() != null && maatConfig.getNumRegionMapList().size() > 0) { + count += maatConfig.getNumRegionMapList().size(); + updateCommonGroupRegion(maatConfig.getNumRegionMapList(), maatXmlExpr13, transaction, 13, + idRelaRedisDBIndex, expressionList); + } + if (maatConfig.getStrRegionMapList() != null && maatConfig.getStrRegionMapList().size() > 0) { + count += maatConfig.getStrRegionMapList().size(); + updateCommonGroupRegion(maatConfig.getStrRegionMapList(), maatXmlExpr14, transaction, 14, + idRelaRedisDBIndex, expressionList); + } + if (maatConfig.getStrStrRegionMapList() != null + && maatConfig.getStrStrRegionMapList().size() > 0) { + count += maatConfig.getStrStrRegionMapList().size(); + updateCommonGroupRegion(maatConfig.getStrStrRegionMapList(), maatXmlExpr15, transaction, 15, + idRelaRedisDBIndex, expressionList); + } + if (maatConfig.getFileDigestRegionMapList() != null + && maatConfig.getFileDigestRegionMapList().size() > 0) { + count += maatConfig.getFileDigestRegionMapList().size(); + updateCommonGroupRegion(maatConfig.getFileDigestRegionMapList(), maatXmlExpr16, transaction, + 16, idRelaRedisDBIndex, expressionList); + } + if (maatConfig.getFileLikeRegionMapList() != null + && maatConfig.getFileLikeRegionMapList().size() > 0) { + count += maatConfig.getFileLikeRegionMapList().size(); + updateCommonGroupRegion(maatConfig.getFileLikeRegionMapList(), maatXmlExpr17, transaction, + 17, idRelaRedisDBIndex, expressionList); + } + if (maatConfig.getIpClientRangeMapList() != null + && maatConfig.getIpClientRangeMapList().size() > 0) { + count += maatConfig.getIpClientRangeMapList().size(); + updateCommonGroupRegion(maatConfig.getIpClientRangeMapList(), maatXmlExpr18, transaction, + 18, idRelaRedisDBIndex, expressionList); + } } + + if (count == 0) { + throw new ServiceRuntimeException("修改公共组域配置时,未发现对应的配置信息,请检查配置参数是否正确", + RestBusinessCode.ConfigSourceIsNull.getValue()); + } + for (String db : Constants.COMMONGROUPDBARR) { transaction.select(Integer.parseInt(db)); transaction.incrBy("MAAT_VERSION", 1l); @@ -2003,7 +2105,7 @@ public class ConfigJedisServiceimpl implements ConfigRedisService { } } else { - throw new ServiceRuntimeException("添加公共组域配置时,未发现对应的配置信息,请检查配置参数是否正确", + throw new ServiceRuntimeException("修改公共组域配置时,未发现对应的配置信息,请检查配置参数是否正确", RestBusinessCode.ConfigSourceIsNull.getValue()); } transaction.exec(); @@ -2436,7 +2538,7 @@ public class ConfigJedisServiceimpl implements ConfigRedisService { } if (replaceKey != null) { String val = resource.get(replaceKey); - if (val != null) { + if (val != null && !val.trim().equals("")) { if (map.containsKey(index)) { Map map2 = map.get(index); map2.put(replaceKey, val);