diff --git a/src/main/java/com/nis/domain/restful/GroupReuse.java b/src/main/java/com/nis/domain/restful/GroupReuse.java index a1669cc..f8f2f93 100644 --- a/src/main/java/com/nis/domain/restful/GroupReuse.java +++ b/src/main/java/com/nis/domain/restful/GroupReuse.java @@ -25,9 +25,6 @@ public class GroupReuse implements Serializable { private static final long serialVersionUID = 1L; - @ApiModelProperty(value = "业务ID", required = true) - private Integer service; - @ApiModelProperty(value = "字符串域分组列表", access = "", required = true) private List strRegionList; @@ -40,21 +37,6 @@ public class GroupReuse implements Serializable { @ApiModelProperty(value = "生效范围IP域分组列表", required = true) private List ipClientRangeList; - /** - * @return service - */ - public Integer getService() { - return service; - } - - /** - * @param service - * 要设置的 service - */ - public void setService(Integer service) { - this.service = service; - } - /** * @return strRegionList */ diff --git a/src/main/java/com/nis/restful/RestBusinessCode.java b/src/main/java/com/nis/restful/RestBusinessCode.java index e2c0843..7a2446f 100644 --- a/src/main/java/com/nis/restful/RestBusinessCode.java +++ b/src/main/java/com/nis/restful/RestBusinessCode.java @@ -371,6 +371,10 @@ public enum RestBusinessCode { * 当前编译配置service与域配置tableName的关系不存在 */ TableNameUnmatchService(4002101, "当前编译配置service与域配置tableName的关系不存在"), + /** + * 域配置中的tableName不是分组复用的域表 + */ + TableNameUnReuse(4002102, "域配置中tableName不是分组复用的域表"), /** *数值域配置的lowBoundary值不在有效范围内 diff --git a/src/main/java/com/nis/util/GroupReuseVal.java b/src/main/java/com/nis/util/GroupReuseVal.java index 4915a42..e1086b1 100644 --- a/src/main/java/com/nis/util/GroupReuseVal.java +++ b/src/main/java/com/nis/util/GroupReuseVal.java @@ -17,54 +17,43 @@ public class GroupReuseVal { public static void valGroupReuse(List groupReuseList, Boolean isUpdate) throws Exception { for (GroupReuse groupReuse : groupReuseList) { - Integer service = groupReuse.getService(); - if (StringUtil.isEmpty(service) - || !ServiceAndRDBIndexReal.serviceIsReuse(service)) { - throw new RestServiceException("server为空或" + service - + "或不属于分组复用的业务类型", - RestBusinessCode.ServiceIsNullOrNotReuse.getValue()); - } - Map> regTabNameMap = ServiceAndRDBIndexReal - .getServiceGroupReuseMap(service); + Map> groupReuseRegionMap = ServiceAndRDBIndexReal + .getGroupReuseRegionMap(); // 验证各类型域配置 Boolean hasRegionFlag = false; - if (regTabNameMap.containsKey("numRegion") + if (groupReuseRegionMap.containsKey("numRegion") && !StringUtil.isEmpty(groupReuse.getNumRegionList()) && groupReuse.getNumRegionList().size() > 0) { hasRegionFlag = true; List numRegionList = groupReuse.getNumRegionList(); for (NumRegion numRegion : numRegionList) { if (!StringUtil.isEmpty(numRegion.getTableName()) - && !CompileVal.type2TableNameIsOk(service, - numRegion.getTableName())) { - throw new RestServiceException("service为" + service - + "的配置中numRegionList中的regionId为" + && groupReuseRegionMap.get("numRegion").contains(numRegion.getTableName())) { + throw new RestServiceException("numRegionList中的regionId为" + numRegion.getRegionId() - + "的域配置tableName与业务类型不一致", - RestBusinessCode.TableNameUnmatchService + + "的域配置tableName不是分组复用的域表", + RestBusinessCode.TableNameUnReuse .getValue()); } if (!isUpdate && numRegion.getIsValid() != 1) { - throw new RestServiceException("service为" + service - + "的配置中numRegionList中的regionId为" + throw new RestServiceException("numRegionList中的regionId为" + numRegion.getRegionId() + "的域配置在添加时不能为无效", RestBusinessCode.IsValidIsT.getValue()); } if (isUpdate && numRegion.getIsValid() != 0) { - throw new RestServiceException("service为" + service - + "的配置中numRegionList中的regionId为" + throw new RestServiceException("numRegionList中的regionId为" + numRegion.getRegionId() + "的域配置在修改时不能为有效", RestBusinessCode.IsValidIsF.getValue()); } if (!isUpdate && Constants.BASE_VALIDATE) { - valNumRegion(numRegion, service); + valNumRegion(numRegion); } if (!isUpdate && Constants.SERVICE_VALIDATE) { - serviceNumRegionVal(numRegion, service); + serviceNumRegionVal(numRegion); } } - } else if (regTabNameMap.containsKey("strRegion") + } else if (groupReuseRegionMap.containsKey("strRegion") && !StringUtil.isEmpty(groupReuse.getStrRegionList()) && groupReuse.getStrRegionList().size() > 0) { hasRegionFlag = true; @@ -73,41 +62,34 @@ public class GroupReuseVal { // if (groupReuse.getIsValid() != 0 && // !regionGroupIdList.contains(strRegion.getGroupId())) // { - if (!StringUtil.isEmpty(strRegion.getTableName()) - && !CompileVal.type2TableNameIsOk(service, - strRegion.getTableName())) { - throw new RestServiceException("配置id为" + service - + "的配置中strRegionList中的regionId为" + + if (!StringUtil.isEmpty(strRegion.getTableName()) + && groupReuseRegionMap.get("strRegion").contains(strRegion.getTableName())) { + throw new RestServiceException("strRegionList中的regionId为" + strRegion.getRegionId() - + "的域配置tableName与业务类型不一致", - RestBusinessCode.TableNameUnmatchService + + "的域配置tableName不是分组复用的域表", + RestBusinessCode.TableNameUnReuse .getValue()); } if (!isUpdate && strRegion.getIsValid() != 1) { - throw new RestServiceException("配置id为" + service - + "的配置中strRegionList中的regionId为" + throw new RestServiceException("strRegionList中的regionId为" + strRegion.getRegionId() + "的域配置在添加时不能为无效", RestBusinessCode.IsValidIsT.getValue()); } if (isUpdate && strRegion.getIsValid() != 0) { - throw new RestServiceException("配置id为" + service - + "的配置中strRegionList中的regionId为" + throw new RestServiceException("strRegionList中的regionId为" + strRegion.getRegionId() + "的域配置在修改时不能为有效", RestBusinessCode.IsValidIsF.getValue()); } if (!isUpdate && Constants.BASE_VALIDATE) { - valStrRegion(strRegion, service, - ConfigSourcesService.isStrStrongRegion( - strRegion.getTableName(), service)); + valStrRegion(strRegion); } if (!isUpdate && Constants.SERVICE_VALIDATE) { - serviceStrRegionVal(strRegion, service, - ConfigSourcesService.isStrStrongRegion( - strRegion.getTableName(), service)); + serviceStrRegionVal(strRegion); } } - } else if (regTabNameMap.containsKey("ipRegion") + } else if (groupReuseRegionMap.containsKey("ipRegion") && !StringUtil.isEmpty(groupReuse.getIpRegionList()) && groupReuse.getIpRegionList().size() > 0) { hasRegionFlag = true; @@ -115,308 +97,255 @@ public class GroupReuseVal { for (IpRegion ipRegion : ipRegionList) { // if (groupReuse.getIsValid() != 0 && // !regionGroupIdList.contains(ipRegion.getGroupId())) { - if (!StringUtil.isEmpty(ipRegion.getTableName()) - && !CompileVal.type2TableNameIsOk(service, - ipRegion.getTableName())) { - throw new RestServiceException("配置id为" + service - + "的配置中ipRegionList中的regionId为" + + if (!StringUtil.isEmpty(ipRegion.getTableName()) + && groupReuseRegionMap.get("ipRegion").contains(ipRegion.getTableName())) { + throw new RestServiceException("ipRegionList中的regionId为" + ipRegion.getRegionId() - + "的域配置tableName与业务类型不一致", - RestBusinessCode.TableNameUnmatchService + + "的域配置tableName不是分组复用的域表", + RestBusinessCode.TableNameUnReuse .getValue()); } if (!isUpdate && (null == ipRegion.getIsValid() || ipRegion .getIsValid() != 1)) { - throw new RestServiceException("配置id为" + service - + "的配置中ipRegionList中的regionId为" + throw new RestServiceException("ipRegionList中的regionId为" + ipRegion.getRegionId() + "的域配置在添加时不能为无效", RestBusinessCode.IsValidIsT.getValue()); } if (isUpdate && (null == ipRegion.getIsValid() || ipRegion .getIsValid() != 0)) { - throw new RestServiceException("service为" + service - + "的配置中ipRegionList中的regionId为" + throw new RestServiceException("ipRegionList中的regionId为" + ipRegion.getRegionId() + "的域配置在修改时不能为有效", RestBusinessCode.IsValidIsF.getValue()); } if (!isUpdate && Constants.BASE_VALIDATE) { - valIpRegion(ipRegion, service); + valIpRegion(ipRegion); } if (!isUpdate && Constants.SERVICE_VALIDATE) { - serviceIpRegionVal(ipRegion, service, "ipRegionList"); + serviceIpRegionVal(ipRegion); } } } if (!hasRegionFlag) { // 所有的域类型都不包括,可能是配置文件配错了 - throw new ServiceRuntimeException("service为" + service + "的" - + RestBusinessCode.ReuseRegionIsNull.getErrorReason(), + throw new ServiceRuntimeException(RestBusinessCode.ReuseRegionIsNull.getErrorReason(), RestBusinessCode.ReuseRegionIsNull.getValue()); } } } - public static void valIpRegion(IpRegion ipRegion, Integer service) { + public static void valIpRegion(IpRegion ipRegion) { Long regionId = ipRegion.getRegionId(); if (null == regionId) { - throw new RestServiceException("service为" + service - + "的中的ip类域配置的regionId不能为空", + throw new RestServiceException("ipRegionList中的regionId不能为空", RestBusinessCode.RegionIdIsNull.getValue()); } if (null == ipRegion.getGroupId()) { - throw new RestServiceException("service为" + service - + "的中的ip类域配置id为" + regionId + "的配置groupId不能为空", + throw new RestServiceException("ipRegionList中id为" + regionId + "的配置groupId不能为空", RestBusinessCode.RegionsGroupIdIsNull.getValue()); } if (null == ipRegion.getAddrType()) { - throw new RestServiceException("service为" + service - + "的中的ip类域配置id为" + regionId + "的配置addrType不能为空", + throw new RestServiceException("ipRegionList中id为" + regionId + "的配置addrType不能为空", RestBusinessCode.AddrTypeIsNull.getValue()); } if (null == ipRegion.getSrcIp() || ipRegion.getSrcIp().equals("")) { - throw new RestServiceException("service为" + service - + "的中的ip类域配置id为" + regionId + "的配置srcIp不能为空", + throw new RestServiceException("ipRegionList中id为" + regionId + "的配置srcIp不能为空", RestBusinessCode.SrcIpIsNull.getValue()); } if (null == ipRegion.getMaskSrcIp() || ipRegion.getMaskSrcIp().equals("")) { - throw new RestServiceException("service为" + service - + "的中的ip类域配置id为" + regionId + "的配置maskSrcIp不能为空", + throw new RestServiceException("ipRegionList中id为" + regionId + "的配置maskSrcIp不能为空", RestBusinessCode.MaskSrcIpIsNull.getValue()); } if (null == ipRegion.getSrcPort() || ipRegion.getSrcPort().equals("")) { - throw new RestServiceException("service为" + service - + "的中的ip类域配置id为" + regionId + "的配置srcPort不能为空", + throw new RestServiceException("ipRegionList中id为" + regionId + "的配置srcPort不能为空", RestBusinessCode.SrcPortIsNull.getValue()); } if (null == ipRegion.getMaskSrcPort() || ipRegion.getMaskSrcPort().equals("")) { - throw new RestServiceException("service为" + service - + "的中的ip类域配置id为" + regionId + "的配置maskSrcPort不能为空", + throw new RestServiceException("ipRegionList中id为" + regionId + "的配置maskSrcPort不能为空", RestBusinessCode.MaskSrcPortIsNull.getValue()); } if (null == ipRegion.getDstIp() || ipRegion.getDstIp().equals("")) { - throw new RestServiceException("service为" + service - + "的中的ip类域配置id为" + regionId + "的配置dstIp不能为空", + throw new RestServiceException("ipRegionList中id为" + regionId + "的配置dstIp不能为空", RestBusinessCode.DstIpIsNull.getValue()); } if (null == ipRegion.getMaskDstIp() || ipRegion.getMaskDstIp().equals("")) { - throw new RestServiceException("service为" + service - + "的中的ip类域配置id为" + regionId + "的配置maskDstIp不能为空", + throw new RestServiceException("ipRegionList中id为" + regionId + "的配置maskDstIp不能为空", RestBusinessCode.MaskDstIpIsNull.getValue()); } if (null == ipRegion.getDstPort() || ipRegion.getDstPort().equals("")) { - throw new RestServiceException("service为" + service - + "的中的ip类域配置id为" + regionId + "的配置dstPort不能为空", + throw new RestServiceException("ipRegionList中id为" + regionId + "的配置dstPort不能为空", RestBusinessCode.DstPortIsNull.getValue()); } if (null == ipRegion.getMaskDstPort() || ipRegion.getMaskDstPort().equals("")) { - throw new RestServiceException("service为" + service - + "的中的ip类域配置id为" + regionId + "的配置maskDstPort不能为空", + throw new RestServiceException("ipRegionList中id为" + regionId + "的配置maskDstPort不能为空", RestBusinessCode.MaskDstPortIsNull.getValue()); } if (null == ipRegion.getProtocol()) { - throw new RestServiceException("service为" + service - + "的中的ip类域配置id为" + regionId + "的配置protocol不能为空", + throw new RestServiceException("ipRegionList中id为" + regionId + "的配置protocol不能为空", RestBusinessCode.ProtocolIsNull.getValue()); } if (null == ipRegion.getDirection()) { - throw new RestServiceException("service为" + service - + "的中的ip类域配置id为" + regionId + "的配置direction不能为空", + throw new RestServiceException("ipRegionList中id为" + regionId + "的配置direction不能为空", RestBusinessCode.DirectionIsNull.getValue()); } if (null == ipRegion.getIsValid()) { - throw new RestServiceException("service为" + service - + "的中的ip类域配置id为" + regionId + "的配置isValid不能为空", + throw new RestServiceException("ipRegionList中id为" + regionId + "的配置isValid不能为空", RestBusinessCode.IsValidIsNull.getValue()); } } - public static void valNumRegion(NumRegion numRegion, Integer service) + public static void valNumRegion(NumRegion numRegion) throws Exception { Long regionId = numRegion.getRegionId(); if (null == regionId) { - throw new RestServiceException("service为" + service - + "的中的数值类域配置的regionId不能为空", + throw new RestServiceException("数值类域配置的regionId不能为空", RestBusinessCode.RegionIdIsNull.getValue()); } if (null == numRegion.getGroupId()) { - throw new RestServiceException("service为" + service - + "的中的数值类域配置id为" + regionId + "的配置groupId不能为空", + throw new RestServiceException("数值类域配置id为" + regionId + "的配置groupId不能为空", RestBusinessCode.RegionsGroupIdIsNull.getValue()); } if (null == numRegion.getLowBoundary()) { - throw new RestServiceException("service为" + service - + "的中的数值类域配置id为" + regionId + "的配置lowBoundary不能为空", + throw new RestServiceException("数值类域配置id为" + regionId + "的配置lowBoundary不能为空", RestBusinessCode.LowBoundaryIsNull.getValue()); } if (null == numRegion.getUpBoundary()) { - throw new RestServiceException("service为" + service - + "的中的数值类域配置id为" + regionId + "的配置upBoundary不能为空", + throw new RestServiceException("数值类域配置id为" + regionId + "的配置upBoundary不能为空", RestBusinessCode.UpBoundaryIsNull.getValue()); } } - public static void valStrRegion(StrRegion strRegion, Integer service, - boolean isDirtrict) throws Exception { + public static void valStrRegion(StrRegion strRegion) throws Exception { Long regionId = strRegion.getRegionId(); if (null == regionId) { - throw new RestServiceException("service为" + service - + "的中的字符串类域配置的regionId不能为空", + throw new RestServiceException("strRegionList中regionId不能为空", RestBusinessCode.RegionIdIsNull.getValue()); } if (null == strRegion.getGroupId()) { - throw new RestServiceException("service为" + service - + "的中的字符串类域配置id为" + regionId + "的配置groupId不能为空", + throw new RestServiceException("strRegionList中id为" + regionId + "的配置groupId不能为空", RestBusinessCode.RegionsGroupIdIsNull.getValue()); } - if (isDirtrict - && (null == strRegion.getDistrict() || strRegion.getDistrict() - .equals(""))) { - throw new RestServiceException("service为" + service - + "的中的字符串类域配置id为" + regionId + "的配置district不能为空", - RestBusinessCode.DistrictIsNull.getValue()); - } if (null == strRegion.getKeywords() || strRegion.getKeywords().equals("")) { - throw new RestServiceException("service为" + service - + "的中的字符串类域配置id为" + regionId + "的配置keywords不能为空", + throw new RestServiceException("strRegionList中id为" + regionId + "的配置keywords不能为空", RestBusinessCode.KeywordsIsNull.getValue()); } if (null == strRegion.getExprType()) { - throw new RestServiceException("service为" + service - + "的中的字符串类域配置id为" + regionId + "的配置exprType不能为空", + throw new RestServiceException("strRegionList中id为" + regionId + "的配置exprType不能为空", RestBusinessCode.ExprTypeIsNull.getValue()); } if (null == strRegion.getMatchMethod()) { - throw new RestServiceException("service为" + service - + "的中的字符串类域配置id为" + regionId + "的配置matchMethod不能为空", + throw new RestServiceException("strRegionList中id为" + regionId + "的配置matchMethod不能为空", RestBusinessCode.MatchMethodIsNull.getValue()); } if (null == strRegion.getIsHexbin()) { - throw new RestServiceException("service为" + service - + "的中的字符串类域配置id为" + regionId + "的配置isHexbin不能为空", + throw new RestServiceException("strRegionList中id为" + regionId + "的配置isHexbin不能为空", RestBusinessCode.MatchMethodIsNull.getValue()); } } - private static void validateIpAndMask(IpRegion ipRegion, Integer service, - String listName) throws Exception { + private static void validateIpAndMask(IpRegion ipRegion) throws Exception { // 源IP信息和目的IP信息格式s为IPV4或IPV6 if (ipRegion.getAddrType().intValue() == 4 || ipRegion.getAddrType().intValue() == 6) { if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getSrcIp(), ipRegion.getAddrType())) { - throw new RestServiceException("service为" + service + "的配置中" - + listName + "中regionId为" + ipRegion.getRegionId() + throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId() + "的域配置srcIp的格式不正确或与addrType不一致", RestBusinessCode.IPUnMatchAddrType.getValue()); } if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskSrcIp(), ipRegion.getAddrType())) { - throw new RestServiceException("service为" + service + "的配置中" - + listName + "中regionId为" + ipRegion.getRegionId() + throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId() + "的域配置maskSrcIp的格式不正确或与addrType不一致", RestBusinessCode.IPUnMatchAddrType.getValue()); } if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getDstIp(), ipRegion.getAddrType())) { - throw new RestServiceException("service为" + service + "的配置中" - + listName + "中regionId为" + ipRegion.getRegionId() + throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId() + "的域配置dstIp的格式不正确或与addrType不一致", RestBusinessCode.IPUnMatchAddrType.getValue()); } if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskDstIp(), ipRegion.getAddrType())) { - throw new RestServiceException("service为" + service + "的配置中" - + listName + "中regionId为" + ipRegion.getRegionId() + throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId() + "的域配置maskDstIp的格式不正确或与addrType不一致", RestBusinessCode.IPUnMatchAddrType.getValue()); } } else if (ipRegion.getAddrType().intValue() == 46) {// 4OVER6:源IP信息格式为IPV4、目的IP信息格式IPV6 if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getSrcIp(), 4)) { - throw new RestServiceException("service为" + service + "的配置中" - + listName + "中regionId为" + ipRegion.getRegionId() + throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId() + "的域配置srcIp的格式不正确或与addrType不一致", RestBusinessCode.IPUnMatchAddrType.getValue()); } if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskSrcIp(), 4)) { - throw new RestServiceException("service为" + service + "的配置中" - + listName + "中regionId为" + ipRegion.getRegionId() + throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId() + "的域配置maskSrcIp的格式不正确或与addrType不一致", RestBusinessCode.IPUnMatchAddrType.getValue()); } if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getDstIp(), 6)) { - throw new RestServiceException("service为" + service + "的配置中" - + listName + "中regionId为" + ipRegion.getRegionId() + throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId() + "的域配置dstIp的格式不正确或与addrType不一致", RestBusinessCode.IPUnMatchAddrType.getValue()); } if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskDstIp(), 6)) { - throw new RestServiceException("service为" + service + "的配置中" - + listName + "中regionId为" + ipRegion.getRegionId() + throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId() + "的域配置maskDstIp的格式不正确或与addrType不一致", RestBusinessCode.IPUnMatchAddrType.getValue()); } } else if (ipRegion.getAddrType().intValue() == 64) {// 6OVER4:源IP信息格式为IPV6、目的IP信息格式IPV4 if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getSrcIp(), 6)) { - throw new RestServiceException("service为" + service + "的配置中" - + listName + "中regionId为" + ipRegion.getRegionId() + throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId() + "的域配置srcIp的格式不正确或与addrType不一致", RestBusinessCode.IPUnMatchAddrType.getValue()); } if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskSrcIp(), 6)) { - throw new RestServiceException("service为" + service + "的配置中" - + listName + "中regionId为" + ipRegion.getRegionId() + throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId() + "的域配置maskSrcIp的格式不正确或与addrType不一致", RestBusinessCode.IPUnMatchAddrType.getValue()); } if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getDstIp(), 4)) { - throw new RestServiceException("service为" + service + "的配置中" - + listName + "中regionId为" + ipRegion.getRegionId() + throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId() + "的域配置dstIp的格式不正确或与addrType不一致", RestBusinessCode.IPUnMatchAddrType.getValue()); } if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskDstIp(), 4)) { - throw new RestServiceException("service为" + service + "的配置中" - + listName + "中regionId为" + ipRegion.getRegionId() + throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId() + "的域配置maskDstIp的格式不正确或与addrType不一致", RestBusinessCode.IPUnMatchAddrType.getValue()); } } else if (ipRegion.getAddrType().intValue() == 10) {// all:符合IP格式即可 if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getSrcIp(), null)) { - throw new RestServiceException("service为" + service + "的配置中" - + listName + "中regionId为" + ipRegion.getRegionId() + throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId() + "的域配置srcIp的格式不正确或与addrType不一致", RestBusinessCode.IPUnMatchAddrType.getValue()); } if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskSrcIp(), null)) { - throw new RestServiceException("service为" + service + "的配置中" - + listName + "中regionId为" + ipRegion.getRegionId() + throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId() + "的域配置maskSrcIp的格式不正确或与addrType不一致", RestBusinessCode.IPUnMatchAddrType.getValue()); } if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getDstIp(), null)) { - throw new RestServiceException("service为" + service + "的配置中" - + listName + "中regionId为" + ipRegion.getRegionId() + throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId() + "的域配置dstIp的格式不正确或与addrType不一致", RestBusinessCode.IPUnMatchAddrType.getValue()); } if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskDstIp(), null)) { - throw new RestServiceException("service为" + service + "的配置中" - + listName + "中regionId为" + ipRegion.getRegionId() + throw new RestServiceException("ipRegionList中中regionId为" + ipRegion.getRegionId() + "的域配置maskDstIp的格式不正确或与addrType不一致", RestBusinessCode.IPUnMatchAddrType.getValue()); } @@ -424,48 +353,41 @@ public class GroupReuseVal { } - public static void serviceIpRegionVal(IpRegion ipRegion, Integer service, - String listName) throws Exception { + public static void serviceIpRegionVal(IpRegion ipRegion) throws Exception { - validateIpAndMask(ipRegion, service, listName); + validateIpAndMask(ipRegion); if (!BasicProvingUtil.isPortOrPortMask(ipRegion.getSrcPort())) { - throw new RestServiceException("service为" + service + "的配置中" - + listName + "中regionId为" + ipRegion.getRegionId() + throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId() + "的域配置srcPort的格式不正确", RestBusinessCode.PortIsNotVal.getValue()); } if (!BasicProvingUtil.isPortOrPortMask(ipRegion.getMaskSrcPort())) { - throw new RestServiceException("service为" + service + "的配置中" - + listName + "中regionId为" + ipRegion.getRegionId() + throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId() + "的域配置maskSrcPort的格式不正确", RestBusinessCode.PortIsNotVal.getValue()); } if (!BasicProvingUtil.isPortOrPortMask(ipRegion.getDstPort())) { - throw new RestServiceException("service为" + service + "的配置中" - + listName + "中regionId为" + ipRegion.getRegionId() + throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId() + "的域配置dstPort的格式不正确", RestBusinessCode.PortIsNotVal.getValue()); } if (!BasicProvingUtil.isPortOrPortMask(ipRegion.getMaskDstPort())) { // if (!BasicProvingUtil.isIntType(ipRegion.getMaskDstPort())) { - throw new RestServiceException("service为" + service + "的配置中" - + listName + "中regionId为" + ipRegion.getRegionId() + throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId() + "的域配置maskDstPort的格式不正确", RestBusinessCode.PortIsNotVal.getValue()); } if (ipRegion.getSrcIp().equals(ipRegion.getDstIp())) { - throw new RestServiceException("service为" + service + "的配置中" - + listName + "中regionId为" + ipRegion.getRegionId() + throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId() + "的域配置srcIp和dstIp不能相同", RestBusinessCode.SrcIpEQDstIp.getValue()); } if (ipRegion.getDirection() != 1 && ipRegion.getDirection() != 0) { - throw new RestServiceException("service为" + service + "的配置中" - + listName + "中regionId为" + ipRegion.getRegionId() + throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId() + "的域配置direction的值不正确,只能是0或1", RestBusinessCode.DirectionIsWrongRange.getValue()); } @@ -487,58 +409,49 @@ public class GroupReuseVal { // } } - public static void serviceNumRegionVal(NumRegion numRegion, Integer service) + public static void serviceNumRegionVal(NumRegion numRegion) throws Exception { Long lowBoundary = numRegion.getLowBoundary(); Long upBoundary = numRegion.getUpBoundary(); if (lowBoundary <= upBoundary) { if (lowBoundary > 4294967295l || lowBoundary < 0l) { - throw new RestServiceException("service为" + service - + "的配置中numRegionList中regionId为" + throw new RestServiceException("numRegionList中regionId为" + numRegion.getRegionId() + "的域配置lowBoundary的值不能大于2的32次方减一(4294967295)或者小于0", RestBusinessCode.LowBoundaryIsWrongRange.getValue()); } if (upBoundary > 4294967295l || upBoundary < 0l) { - throw new RestServiceException("service为" + service - + "的配置中numRegionList中regionId为" + throw new RestServiceException("numRegionList中regionId为" + numRegion.getRegionId() + "的域配置upBoundary的值不能大于2的32次方减一(4294967295)或者小于0", RestBusinessCode.UpBoundaryIsWrongRange.getValue()); } } else { - throw new RestServiceException("service为" + service - + "的配置中numRegionList中regionId为" + numRegion.getRegionId() + throw new RestServiceException("numRegionList中regionId为" + numRegion.getRegionId() + "的域配置lowBoundary的值大于upBoundary,应该是小于或等于", RestBusinessCode.LowBoundaryGTUpBoundary.getValue()); } } - public static void serviceStrRegionVal(StrRegion strRegion, - Integer service, boolean isDirtrict) throws Exception { + public static void serviceStrRegionVal(StrRegion strRegion) throws Exception { Integer exprType = strRegion.getExprType(); Integer matchMethod = strRegion.getMatchMethod(); Integer isHexbin = strRegion.getIsHexbin(); if (exprType != 0 && exprType != 1) { - throw new RestServiceException("service为" + service - + "的配置中strRegionList中regionId为" + strRegion.getRegionId() + throw new RestServiceException("strRegionList中regionId为" + strRegion.getRegionId() + "的域配置exprType的值只能是0(无表达式)或者1(与表达式)", RestBusinessCode.ExprTypeIsWrongRange.getValue()); } if (matchMethod != 0 && matchMethod != 1 && matchMethod != 2 && matchMethod != 3) { - throw new RestServiceException("service为" + service - + "的配置中strRegionList中regionId为" + strRegion.getRegionId() + throw new RestServiceException("strRegionList中regionId为" + strRegion.getRegionId() + "的域配置matchMethod的值只能是0(子串匹配),1(右匹配),2(左匹配),3(完全匹配)", RestBusinessCode.MatchMethodIsWrongRange.getValue()); } if (isHexbin != 0 && isHexbin != 1 && isHexbin != 2) { - throw new RestServiceException( - "service为" - + service - + "的配置中strRegionList中regionId为" + throw new RestServiceException("strRegionList中regionId为" + strRegion.getRegionId() + "的域配置isHexbin的值只能是0(大小写不敏感,且非HEX)或者1(HEX)或者2(大小写敏感,且非HEX)", RestBusinessCode.IsHexbinIsWrongRange.getValue()); diff --git a/src/main/java/com/nis/util/ServiceAndRDBIndexReal.java b/src/main/java/com/nis/util/ServiceAndRDBIndexReal.java index 3b3d867..c8a95fa 100644 --- a/src/main/java/com/nis/util/ServiceAndRDBIndexReal.java +++ b/src/main/java/com/nis/util/ServiceAndRDBIndexReal.java @@ -3,6 +3,7 @@ package com.nis.util; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; +import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; @@ -400,12 +401,24 @@ public class ServiceAndRDBIndexReal { public static void setUnMaatSercieNameMap(Map unMaatSercieNameMap) { ServiceAndRDBIndexReal.unMaatSercieNameMap = unMaatSercieNameMap; } - /** * @return the serviceGroupReuseMap */ - public static Map> getServiceGroupReuseMap(Integer service) { - return serviceGroupReuseMap.get(service); + public static Map> getGroupReuseRegionMap() { + Map> groupReuseRegionMap = new HashMap>(); + Iterator iterator = serviceGroupReuseMap.keySet().iterator(); + while (iterator.hasNext()) { + Map> map = serviceGroupReuseMap.get(Integer.valueOf(iterator.next().toString())); + Iterator mapIterator = map.keySet().iterator(); + while (mapIterator.hasNext()) { + String regionName = mapIterator.next().toString(); + if (StringUtil.isEmpty(groupReuseRegionMap.containsKey(regionName))) { + groupReuseRegionMap.put(regionName, map.get(regionName)); + }else{ + groupReuseRegionMap.get(regionName).addAll(map.get(regionName)); + } + } + } + return groupReuseRegionMap; } - } diff --git a/src/main/java/com/nis/web/controller/restful/MmLogSearchController.java b/src/main/java/com/nis/web/controller/restful/MmLogSearchController.java index 376e539..2b1ec18 100644 --- a/src/main/java/com/nis/web/controller/restful/MmLogSearchController.java +++ b/src/main/java/com/nis/web/controller/restful/MmLogSearchController.java @@ -275,7 +275,7 @@ public class MmLogSearchController extends BaseRestController { } @RequestMapping(value = "/mmVoipIpLogs", method = RequestMethod.GET) - @ApiOperation(value = "VOIP IP日志查询", httpMethod = "GET", notes = "对日志功能“VOIP IP日志”提供数据基础查询服务") + @ApiOperation(value = "VoIP IP日志查询", httpMethod = "GET", notes = "对日志功能“VoIP IP日志”提供数据基础查询服务") public Map mmVoipIpLogs(Page page, MmVoipIpLog mmVoipIpLog, Model model, HttpServletRequest request, HttpServletResponse response) { long start = System.currentTimeMillis(); @@ -320,15 +320,15 @@ public class MmLogSearchController extends BaseRestController { auditLogThread.setExceptionInfo(e.getMessage() + " " + e.getCause()); logger.error(e); if (!(e instanceof RestServiceException)) { - e = new RestServiceException(auditLogThread, System.currentTimeMillis() - start, "VOIP IP日志检索失败"); + e = new RestServiceException(auditLogThread, System.currentTimeMillis() - start, "VoIP IP日志检索失败"); } throw ((RestServiceException) e); } - return serviceLogResponse(auditLogThread, System.currentTimeMillis() - start, request, "VOIP IP日志检索成功", + return serviceLogResponse(auditLogThread, System.currentTimeMillis() - start, request, "VoIP IP日志检索成功", logPage, 0); } @RequestMapping(value = "/mmVoipAccountLogs", method = RequestMethod.GET) - @ApiOperation(value = "VOIP Account日志查询", httpMethod = "GET", notes = "对日志功能“VOIP Account日志”提供数据基础查询服务") + @ApiOperation(value = "VoIP Account日志查询", httpMethod = "GET", notes = "对日志功能“VoIP Account日志”提供数据基础查询服务") public Map mmVoipAccountLogs(Page page, MmVoipAccountLog mmVoipLog, Model model, HttpServletRequest request, HttpServletResponse response) { long start = System.currentTimeMillis(); @@ -373,11 +373,11 @@ public class MmLogSearchController extends BaseRestController { auditLogThread.setExceptionInfo(e.getMessage() + " " + e.getCause()); logger.error(e); if (!(e instanceof RestServiceException)) { - e = new RestServiceException(auditLogThread, System.currentTimeMillis() - start, "VOIP Account日志检索失败"); + e = new RestServiceException(auditLogThread, System.currentTimeMillis() - start, "VoIP Account日志检索失败"); } throw ((RestServiceException) e); } - return serviceLogResponse(auditLogThread, System.currentTimeMillis() - start, request, "VOIP Account日志检索成功", + return serviceLogResponse(auditLogThread, System.currentTimeMillis() - start, request, "VoIP Account日志检索成功", logPage, 0); } 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 3aa9bf4..95d9c8b 100644 --- a/src/main/java/com/nis/web/service/restful/ConfigSourcesService.java +++ b/src/main/java/com/nis/web/service/restful/ConfigSourcesService.java @@ -792,25 +792,19 @@ public class ConfigSourcesService extends BaseService { */ public void addGroupReuseSources(AuditLogThread thread, long start, List groupReuseList, StringBuffer sb) throws Exception { - // Map> 存放解析后输入数据 - Map> maatMap = new HashMap>(); - // Map> 存放多分发的数据 - Map> configMap = new HashMap>(); + MaatConfig maatConfig = new MaatConfig(); // 验证 GroupReuseVal.valGroupReuse(groupReuseList, false); for (GroupReuse groupReuse : groupReuseList) { - Integer service = groupReuse.getService(); - MaatConfig maatConfig = new MaatConfig(); - maatConfig.setService(service); - List> dstMaplList = null; + List> dstMapList = null; // 字符串域 List> strongMapList = null; if (!StringUtil.isEmpty(groupReuse.getStrRegionList())) { - dstMaplList = new ArrayList>(); + dstMapList = new ArrayList>(); for (StrRegion region : groupReuse.getStrRegionList()) { if (StringUtil.isEmpty(region.getDistrict())) { - dstMaplList.add(convertObjectToMap(region, StrRegion.class)); + dstMapList.add(convertObjectToMap(region, StrRegion.class)); } else { if (StringUtil.isEmpty(strongMapList)) { strongMapList = new ArrayList>(); @@ -819,75 +813,52 @@ public class ConfigSourcesService extends BaseService { } } } - maatConfig.setStrRegionMapList(dstMaplList); + if (StringUtil.isEmpty(maatConfig.getStrRegionMapList())) { + maatConfig.setStrRegionMapList(dstMapList); + }else{ + maatConfig.getStrRegionMapList().addAll(dstMapList); + } + // 增强字符串域 if (!StringUtil.isEmpty(strongMapList) && strongMapList.size() > 0) { - maatConfig.setStrStrRegionMapList((strongMapList)); + if (StringUtil.isEmpty(maatConfig.getStrStrRegionMapList())) { + maatConfig.setStrStrRegionMapList(strongMapList); + }else{ + maatConfig.getStrStrRegionMapList().addAll(strongMapList); + } } // 数值域 - dstMaplList = null; + dstMapList = null; if (!StringUtil.isEmpty(groupReuse.getNumRegionList())) { - dstMaplList = new ArrayList>(); + dstMapList = new ArrayList>(); for (NumRegion region : groupReuse.getNumRegionList()) { - dstMaplList.add(convertObjectToMap(region, NumRegion.class)); + dstMapList.add(convertObjectToMap(region, NumRegion.class)); } } - maatConfig.setNumRegionMapList(dstMaplList); + + if (StringUtil.isEmpty(maatConfig.getStrRegionMapList())) { + maatConfig.setNumRegionMapList(dstMapList); + }else{ + maatConfig.getNumRegionMapList().addAll(dstMapList); + } // Ip域 - dstMaplList = null; + dstMapList = null; if (!StringUtil.isEmpty(groupReuse.getIpRegionList())) { - dstMaplList = new ArrayList>(); + dstMapList = new ArrayList>(); for (IpRegion region : groupReuse.getIpRegionList()) { - dstMaplList.add(convertObjectToMap(region, IpRegion.class)); + dstMapList.add(convertObjectToMap(region, IpRegion.class)); } } - maatConfig.setIpRegionMapList(dstMaplList); - - // 生效范围IP域 - dstMaplList = null; - if (!StringUtil.isEmpty(groupReuse.getIpClientRangeList())) { - dstMaplList = new ArrayList>(); - for (IpRegion region : groupReuse.getIpClientRangeList()) { - dstMaplList.add(convertObjectToMap(region, IpRegion.class)); - } - } - maatConfig.setIpClientRangeMapList(dstMaplList); - if (maatMap.containsKey(service)) { - maatMap.get(service).add(maatConfig); - } else { - List maatCfgList = new ArrayList(); - maatCfgList.add(maatConfig); - maatMap.put(service, maatCfgList); - + if (StringUtil.isEmpty(maatConfig.getStrRegionMapList())) { + maatConfig.setIpRegionMapList(dstMapList); + }else{ + maatConfig.getIpRegionMapList().addAll(dstMapList); } } // 调用接口入redis - // 根据service分发到各系统 - Iterator serviceIterator = maatMap.keySet().iterator(); - while (serviceIterator.hasNext()) { - Integer service = Integer.valueOf(serviceIterator.next().toString()); - List dbIndexList = ServiceAndRDBIndexReal.getRedisDBByService(service); - if (!StringUtil.isEmpty(dbIndexList) && dbIndexList.size() > 0) { - for (Integer dbIndex : dbIndexList) { - List newMaatConfigList = new ArrayList(); - newMaatConfigList.addAll(maatMap.get(service)); - if (configMap.containsKey(dbIndex)) { - configMap.get(dbIndex).addAll(newMaatConfigList); - } else { - List list = new ArrayList(); - list.addAll(newMaatConfigList); - configMap.put(dbIndex, list); - } - - } - } else { - throw new ServiceRuntimeException(RestBusinessCode.ServiceNoFoundDBIndex.getErrorReason(), - RestBusinessCode.ServiceNoFoundDBIndex.getValue()); - } - } logger.info("---------------调用Redis 分组复用配置新增接口---------------------"); - configRedisService.saveGroupReuseConfig(configMap); + configRedisService.saveGroupReuseConfig(maatConfig); } /** @@ -904,30 +875,22 @@ public class ConfigSourcesService extends BaseService { */ public void deleteGroupReuseSources(AuditLogThread thread, long start, List groupReuseList, Date opTime, StringBuffer sb) throws Exception { - // 按service分类 Map> - Map>> reuseMap = new HashMap>>(); + // Map + Map> reuseMap = new HashMap>(); for (GroupReuse groupReuse : groupReuseList) { // 验证格式 checkGroupReuseForUpdate(groupReuse); - Integer service = groupReuse.getService(); - - if (!reuseMap.containsKey(service)) { - Map> map = new HashMap>(); - reuseMap.put(service, map); - } - // 字符串域 if (!StringUtil.isEmpty(groupReuse.getStrRegionList())) { for (StrRegion region : groupReuse.getStrRegionList()) { - if (reuseMap.get(service).containsKey(region.getGroupId())) { - reuseMap.get(service).get(region.getGroupId()).add(region.getTableName()+","+region.getRegionId()); - }else{ - Map> groupMap = new HashMap>(); + if (reuseMap.containsKey(region.getGroupId())) { + reuseMap.get(region.getGroupId()).add(region.getTableName()+","+region.getRegionId()); + }else { List regionList = new ArrayList(); regionList.add(region.getTableName()+","+region.getRegionId()); - groupMap.put(region.getGroupId(), regionList); + reuseMap.put(region.getGroupId(), regionList); } } } @@ -935,13 +898,12 @@ public class ConfigSourcesService extends BaseService { // 数值域 if (!StringUtil.isEmpty(groupReuse.getNumRegionList())) { for (NumRegion region : groupReuse.getNumRegionList()) { - if (reuseMap.get(service).containsKey(region.getGroupId())) { - reuseMap.get(service).get(region.getGroupId()).add(region.getTableName()+","+region.getRegionId()); - }else{ - Map> groupMap = new HashMap>(); + if (reuseMap.containsKey(region.getGroupId())) { + reuseMap.get(region.getGroupId()).add(region.getTableName()+","+region.getRegionId()); + }else { List regionList = new ArrayList(); regionList.add(region.getTableName()+","+region.getRegionId()); - groupMap.put(region.getGroupId(), regionList); + reuseMap.put(region.getGroupId(), regionList); } } } @@ -949,14 +911,12 @@ public class ConfigSourcesService extends BaseService { // Ip域 if (!StringUtil.isEmpty(groupReuse.getIpRegionList())) { for (IpRegion region : groupReuse.getIpRegionList()) { - if (reuseMap.get(service).containsKey(region.getGroupId())) { - reuseMap.get(service).get(region.getGroupId()).add(region.getTableName()+","+region.getRegionId()); - }else{ - Map> groupMap = new HashMap>(); + if (reuseMap.containsKey(region.getGroupId())) { + reuseMap.get(region.getGroupId()).add(region.getTableName()+","+region.getRegionId()); + }else { List regionList = new ArrayList(); regionList.add(region.getTableName()+","+region.getRegionId()); - groupMap.put(region.getGroupId(), regionList); - reuseMap.put(service, groupMap); + reuseMap.put(region.getGroupId(), regionList); } } } @@ -979,67 +939,61 @@ public class ConfigSourcesService extends BaseService { */ private void checkGroupReuseForUpdate(GroupReuse config) throws Exception { - if (StringUtil.isEmpty(config.getService())) { - throw new RestServiceException(RestBusinessCode.ServiceIsNull.getErrorReason(), - RestBusinessCode.ServiceIsNull.getValue()); - } - - if (!ServiceAndRDBIndexReal.serviceIsReuse(config.getService())) { - throw new RestServiceException("server为空或" + config.getService() + "或不属于分组复用的业务类型", - RestBusinessCode.ServiceIsNullOrNotReuse.getValue()); - } Boolean hasRegionFlag = false; - Map> regTabNameMap = ServiceAndRDBIndexReal.getServiceGroupReuseMap(config.getService()); - if (regTabNameMap.containsKey("numRegion") && !StringUtil.isEmpty(config.getNumRegionList()) + Map> groupReuseRegionMap = ServiceAndRDBIndexReal.getGroupReuseRegionMap(); + if (groupReuseRegionMap.containsKey("numRegion") && !StringUtil.isEmpty(config.getNumRegionList()) && config.getNumRegionList().size() > 0) { hasRegionFlag = true; List numRegionList = config.getNumRegionList(); for (NumRegion numRegion : numRegionList) { - if (!StringUtil.isEmpty(numRegion.getTableName()) - && !CompileVal.type2TableNameIsOk(config.getService(), numRegion.getTableName())) { - throw new RestServiceException("service为" + config.getService() + "的配置中numRegionList中的regionId为" - + numRegion.getRegionId() + "的域配置tableName与业务类型不一致", - RestBusinessCode.TableNameUnmatchService.getValue()); + if (!StringUtil.isEmpty(numRegion.getTableName()) + && groupReuseRegionMap.get("numRegion").contains(numRegion.getTableName())) { + throw new RestServiceException("numRegionList中的regionId为" + + numRegion.getRegionId() + + "的域配置tableName不是分组复用的域表", + RestBusinessCode.TableNameUnReuse + .getValue()); } if (numRegion.getIsValid() != 0) { - throw new RestServiceException("service为" + config.getService() + "的配置中numRegionList中的regionId为" + throw new RestServiceException("numRegionList中的regionId为" + numRegion.getRegionId() + "的域配置在修改时不能为有效", RestBusinessCode.IsValidIsF.getValue()); } } - } else if (regTabNameMap.containsKey("strRegion") && !StringUtil.isEmpty(config.getStrRegionList()) + } else if (groupReuseRegionMap.containsKey("strRegion") && !StringUtil.isEmpty(config.getStrRegionList()) && config.getStrRegionList().size() > 0) { hasRegionFlag = true; List strRegionList = config.getStrRegionList(); for (StrRegion strRegion : strRegionList) { - // if (groupReuse.getIsValid() != 0 && - // !regionGroupIdList.contains(strRegion.getGroupId())) - // { - if (!StringUtil.isEmpty(strRegion.getTableName()) - && !CompileVal.type2TableNameIsOk(config.getService(), strRegion.getTableName())) { - throw new RestServiceException("配置id为" + config.getService() + "的配置中strRegionList中的regionId为" - + strRegion.getRegionId() + "的域配置tableName与业务类型不一致", - RestBusinessCode.TableNameUnmatchService.getValue()); + if (!StringUtil.isEmpty(strRegion.getTableName()) + && groupReuseRegionMap.get("strRegion").contains(strRegion.getTableName())) { + throw new RestServiceException("strRegionList中的regionId为" + + strRegion.getRegionId() + + "的域配置tableName不是分组复用的域表", + RestBusinessCode.TableNameUnReuse + .getValue()); } if (strRegion.getIsValid() != 0) { - throw new RestServiceException("配置id为" + config.getService() + "的配置中strRegionList中的regionId为" + throw new RestServiceException("strRegionList中的regionId为" + strRegion.getRegionId() + "的域配置在修改时不能为有效", RestBusinessCode.IsValidIsF.getValue()); } } - } else if (regTabNameMap.containsKey("ipRegion") && !StringUtil.isEmpty(config.getIpRegionList()) + } else if (groupReuseRegionMap.containsKey("ipRegion") && !StringUtil.isEmpty(config.getIpRegionList()) && config.getIpRegionList().size() > 0) { hasRegionFlag = true; List ipRegionList = config.getIpRegionList(); for (IpRegion ipRegion : ipRegionList) { - if (!StringUtil.isEmpty(ipRegion.getTableName()) - && !CompileVal.type2TableNameIsOk(config.getService(), ipRegion.getTableName())) { - throw new RestServiceException("配置id为" + config.getService() + "的配置中ipRegionList中的regionId为" - + ipRegion.getRegionId() + "的域配置tableName与业务类型不一致", - RestBusinessCode.TableNameUnmatchService.getValue()); - } + if (!StringUtil.isEmpty(ipRegion.getTableName()) + && groupReuseRegionMap.get("ipRegion").contains(ipRegion.getTableName())) { + throw new RestServiceException("ipRegionList中的regionId为" + + ipRegion.getRegionId() + + "的域配置tableName不是分组复用的域表", + RestBusinessCode.TableNameUnReuse + .getValue()); + } if (null == ipRegion.getIsValid() || ipRegion.getIsValid() != 0) { - throw new RestServiceException("service为" + config.getService() + "的配置中ipRegionList中的regionId为" + throw new RestServiceException("ipRegionList中的regionId为" + ipRegion.getRegionId() + "的域配置在修改时不能为有效", RestBusinessCode.IsValidIsF.getValue()); } } @@ -1047,8 +1001,7 @@ public class ConfigSourcesService extends BaseService { if (!hasRegionFlag) { // 所有的域类型都不包括,可能是配置文件配错了 - throw new ServiceRuntimeException( - "service为" + config.getService() + "的" + RestBusinessCode.ReuseRegionIsNull.getErrorReason(), + throw new ServiceRuntimeException(RestBusinessCode.ReuseRegionIsNull.getErrorReason(), RestBusinessCode.ReuseRegionIsNull.getValue()); } }