1、分组复用域配置添加和删除逻辑修改;

2、VOIP改为VoIP
This commit is contained in:
zhangdongxu
2018-08-29 16:55:04 +08:00
parent bce040fe4f
commit db526cc949
6 changed files with 197 additions and 332 deletions

View File

@@ -25,9 +25,6 @@ public class GroupReuse implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "业务ID", required = true)
private Integer service;
@ApiModelProperty(value = "字符串域分组列表", access = "", required = true) @ApiModelProperty(value = "字符串域分组列表", access = "", required = true)
private List<StrRegion> strRegionList; private List<StrRegion> strRegionList;
@@ -40,21 +37,6 @@ public class GroupReuse implements Serializable {
@ApiModelProperty(value = "生效范围IP域分组列表", required = true) @ApiModelProperty(value = "生效范围IP域分组列表", required = true)
private List<IpRegion> ipClientRangeList; private List<IpRegion> ipClientRangeList;
/**
* @return service
*/
public Integer getService() {
return service;
}
/**
* @param service
* 要设置的 service
*/
public void setService(Integer service) {
this.service = service;
}
/** /**
* @return strRegionList * @return strRegionList
*/ */

View File

@@ -371,6 +371,10 @@ public enum RestBusinessCode {
* 当前编译配置service与域配置tableName的关系不存在 * 当前编译配置service与域配置tableName的关系不存在
*/ */
TableNameUnmatchService(4002101, "当前编译配置service与域配置tableName的关系不存在"), TableNameUnmatchService(4002101, "当前编译配置service与域配置tableName的关系不存在"),
/**
* 域配置中的tableName不是分组复用的域表
*/
TableNameUnReuse(4002102, "域配置中tableName不是分组复用的域表"),
/** /**
*数值域配置的lowBoundary值不在有效范围内 *数值域配置的lowBoundary值不在有效范围内

View File

@@ -17,54 +17,43 @@ public class GroupReuseVal {
public static void valGroupReuse(List<GroupReuse> groupReuseList, public static void valGroupReuse(List<GroupReuse> groupReuseList,
Boolean isUpdate) throws Exception { Boolean isUpdate) throws Exception {
for (GroupReuse groupReuse : groupReuseList) { for (GroupReuse groupReuse : groupReuseList) {
Integer service = groupReuse.getService(); Map<String, List<String>> groupReuseRegionMap = ServiceAndRDBIndexReal
if (StringUtil.isEmpty(service) .getGroupReuseRegionMap();
|| !ServiceAndRDBIndexReal.serviceIsReuse(service)) {
throw new RestServiceException("server为空或" + service
+ "或不属于分组复用的业务类型",
RestBusinessCode.ServiceIsNullOrNotReuse.getValue());
}
Map<String, List<String>> regTabNameMap = ServiceAndRDBIndexReal
.getServiceGroupReuseMap(service);
// 验证各类型域配置 // 验证各类型域配置
Boolean hasRegionFlag = false; Boolean hasRegionFlag = false;
if (regTabNameMap.containsKey("numRegion") if (groupReuseRegionMap.containsKey("numRegion")
&& !StringUtil.isEmpty(groupReuse.getNumRegionList()) && !StringUtil.isEmpty(groupReuse.getNumRegionList())
&& groupReuse.getNumRegionList().size() > 0) { && groupReuse.getNumRegionList().size() > 0) {
hasRegionFlag = true; hasRegionFlag = true;
List<NumRegion> numRegionList = groupReuse.getNumRegionList(); List<NumRegion> numRegionList = groupReuse.getNumRegionList();
for (NumRegion numRegion : numRegionList) { for (NumRegion numRegion : numRegionList) {
if (!StringUtil.isEmpty(numRegion.getTableName()) if (!StringUtil.isEmpty(numRegion.getTableName())
&& !CompileVal.type2TableNameIsOk(service, && groupReuseRegionMap.get("numRegion").contains(numRegion.getTableName())) {
numRegion.getTableName())) { throw new RestServiceException("numRegionList中的regionId为"
throw new RestServiceException("service为" + service
+ "的配置中numRegionList中的regionId为"
+ numRegion.getRegionId() + numRegion.getRegionId()
+ "的域配置tableName与业务类型不一致", + "的域配置tableName不是分组复用的域表",
RestBusinessCode.TableNameUnmatchService RestBusinessCode.TableNameUnReuse
.getValue()); .getValue());
} }
if (!isUpdate && numRegion.getIsValid() != 1) { if (!isUpdate && numRegion.getIsValid() != 1) {
throw new RestServiceException("service为" + service throw new RestServiceException("numRegionList中的regionId为"
+ "的配置中numRegionList中的regionId为"
+ numRegion.getRegionId() + "的域配置在添加时不能为无效", + numRegion.getRegionId() + "的域配置在添加时不能为无效",
RestBusinessCode.IsValidIsT.getValue()); RestBusinessCode.IsValidIsT.getValue());
} }
if (isUpdate && numRegion.getIsValid() != 0) { if (isUpdate && numRegion.getIsValid() != 0) {
throw new RestServiceException("service为" + service throw new RestServiceException("numRegionList中的regionId为"
+ "的配置中numRegionList中的regionId为"
+ numRegion.getRegionId() + "的域配置在修改时不能为有效", + numRegion.getRegionId() + "的域配置在修改时不能为有效",
RestBusinessCode.IsValidIsF.getValue()); RestBusinessCode.IsValidIsF.getValue());
} }
if (!isUpdate && Constants.BASE_VALIDATE) { if (!isUpdate && Constants.BASE_VALIDATE) {
valNumRegion(numRegion, service); valNumRegion(numRegion);
} }
if (!isUpdate && Constants.SERVICE_VALIDATE) { if (!isUpdate && Constants.SERVICE_VALIDATE) {
serviceNumRegionVal(numRegion, service); serviceNumRegionVal(numRegion);
} }
} }
} else if (regTabNameMap.containsKey("strRegion") } else if (groupReuseRegionMap.containsKey("strRegion")
&& !StringUtil.isEmpty(groupReuse.getStrRegionList()) && !StringUtil.isEmpty(groupReuse.getStrRegionList())
&& groupReuse.getStrRegionList().size() > 0) { && groupReuse.getStrRegionList().size() > 0) {
hasRegionFlag = true; hasRegionFlag = true;
@@ -73,41 +62,34 @@ public class GroupReuseVal {
// if (groupReuse.getIsValid() != 0 && // if (groupReuse.getIsValid() != 0 &&
// !regionGroupIdList.contains(strRegion.getGroupId())) // !regionGroupIdList.contains(strRegion.getGroupId()))
// { // {
if (!StringUtil.isEmpty(strRegion.getTableName()) if (!StringUtil.isEmpty(strRegion.getTableName())
&& !CompileVal.type2TableNameIsOk(service, && groupReuseRegionMap.get("strRegion").contains(strRegion.getTableName())) {
strRegion.getTableName())) { throw new RestServiceException("strRegionList中的regionId为"
throw new RestServiceException("配置id为" + service
+ "的配置中strRegionList中的regionId为"
+ strRegion.getRegionId() + strRegion.getRegionId()
+ "的域配置tableName与业务类型不一致", + "的域配置tableName不是分组复用的域表",
RestBusinessCode.TableNameUnmatchService RestBusinessCode.TableNameUnReuse
.getValue()); .getValue());
} }
if (!isUpdate && strRegion.getIsValid() != 1) { if (!isUpdate && strRegion.getIsValid() != 1) {
throw new RestServiceException("配置id为" + service throw new RestServiceException("strRegionList中的regionId为"
+ "的配置中strRegionList中的regionId为"
+ strRegion.getRegionId() + "的域配置在添加时不能为无效", + strRegion.getRegionId() + "的域配置在添加时不能为无效",
RestBusinessCode.IsValidIsT.getValue()); RestBusinessCode.IsValidIsT.getValue());
} }
if (isUpdate && strRegion.getIsValid() != 0) { if (isUpdate && strRegion.getIsValid() != 0) {
throw new RestServiceException("配置id为" + service throw new RestServiceException("strRegionList中的regionId为"
+ "的配置中strRegionList中的regionId为"
+ strRegion.getRegionId() + "的域配置在修改时不能为有效", + strRegion.getRegionId() + "的域配置在修改时不能为有效",
RestBusinessCode.IsValidIsF.getValue()); RestBusinessCode.IsValidIsF.getValue());
} }
if (!isUpdate && Constants.BASE_VALIDATE) { if (!isUpdate && Constants.BASE_VALIDATE) {
valStrRegion(strRegion, service, valStrRegion(strRegion);
ConfigSourcesService.isStrStrongRegion(
strRegion.getTableName(), service));
} }
if (!isUpdate && Constants.SERVICE_VALIDATE) { if (!isUpdate && Constants.SERVICE_VALIDATE) {
serviceStrRegionVal(strRegion, service, serviceStrRegionVal(strRegion);
ConfigSourcesService.isStrStrongRegion(
strRegion.getTableName(), service));
} }
} }
} else if (regTabNameMap.containsKey("ipRegion") } else if (groupReuseRegionMap.containsKey("ipRegion")
&& !StringUtil.isEmpty(groupReuse.getIpRegionList()) && !StringUtil.isEmpty(groupReuse.getIpRegionList())
&& groupReuse.getIpRegionList().size() > 0) { && groupReuse.getIpRegionList().size() > 0) {
hasRegionFlag = true; hasRegionFlag = true;
@@ -115,308 +97,255 @@ public class GroupReuseVal {
for (IpRegion ipRegion : ipRegionList) { for (IpRegion ipRegion : ipRegionList) {
// if (groupReuse.getIsValid() != 0 && // if (groupReuse.getIsValid() != 0 &&
// !regionGroupIdList.contains(ipRegion.getGroupId())) { // !regionGroupIdList.contains(ipRegion.getGroupId())) {
if (!StringUtil.isEmpty(ipRegion.getTableName()) if (!StringUtil.isEmpty(ipRegion.getTableName())
&& !CompileVal.type2TableNameIsOk(service, && groupReuseRegionMap.get("ipRegion").contains(ipRegion.getTableName())) {
ipRegion.getTableName())) { throw new RestServiceException("ipRegionList中的regionId为"
throw new RestServiceException("配置id为" + service
+ "的配置中ipRegionList中的regionId为"
+ ipRegion.getRegionId() + ipRegion.getRegionId()
+ "的域配置tableName与业务类型不一致", + "的域配置tableName不是分组复用的域表",
RestBusinessCode.TableNameUnmatchService RestBusinessCode.TableNameUnReuse
.getValue()); .getValue());
} }
if (!isUpdate if (!isUpdate
&& (null == ipRegion.getIsValid() || ipRegion && (null == ipRegion.getIsValid() || ipRegion
.getIsValid() != 1)) { .getIsValid() != 1)) {
throw new RestServiceException("配置id为" + service throw new RestServiceException("ipRegionList中的regionId为"
+ "的配置中ipRegionList中的regionId为"
+ ipRegion.getRegionId() + "的域配置在添加时不能为无效", + ipRegion.getRegionId() + "的域配置在添加时不能为无效",
RestBusinessCode.IsValidIsT.getValue()); RestBusinessCode.IsValidIsT.getValue());
} }
if (isUpdate if (isUpdate
&& (null == ipRegion.getIsValid() || ipRegion && (null == ipRegion.getIsValid() || ipRegion
.getIsValid() != 0)) { .getIsValid() != 0)) {
throw new RestServiceException("service为" + service throw new RestServiceException("ipRegionList中的regionId为"
+ "的配置中ipRegionList中的regionId为"
+ ipRegion.getRegionId() + "的域配置在修改时不能为有效", + ipRegion.getRegionId() + "的域配置在修改时不能为有效",
RestBusinessCode.IsValidIsF.getValue()); RestBusinessCode.IsValidIsF.getValue());
} }
if (!isUpdate && Constants.BASE_VALIDATE) { if (!isUpdate && Constants.BASE_VALIDATE) {
valIpRegion(ipRegion, service); valIpRegion(ipRegion);
} }
if (!isUpdate && Constants.SERVICE_VALIDATE) { if (!isUpdate && Constants.SERVICE_VALIDATE) {
serviceIpRegionVal(ipRegion, service, "ipRegionList"); serviceIpRegionVal(ipRegion);
} }
} }
} }
if (!hasRegionFlag) { if (!hasRegionFlag) {
// 所有的域类型都不包括,可能是配置文件配错了 // 所有的域类型都不包括,可能是配置文件配错了
throw new ServiceRuntimeException("service为" + service + "" throw new ServiceRuntimeException(RestBusinessCode.ReuseRegionIsNull.getErrorReason(),
+ RestBusinessCode.ReuseRegionIsNull.getErrorReason(),
RestBusinessCode.ReuseRegionIsNull.getValue()); RestBusinessCode.ReuseRegionIsNull.getValue());
} }
} }
} }
public static void valIpRegion(IpRegion ipRegion, Integer service) { public static void valIpRegion(IpRegion ipRegion) {
Long regionId = ipRegion.getRegionId(); Long regionId = ipRegion.getRegionId();
if (null == regionId) { if (null == regionId) {
throw new RestServiceException("service为" + service throw new RestServiceException("ipRegionList中的regionId不能为空",
+ "的中的ip类域配置的regionId不能为空",
RestBusinessCode.RegionIdIsNull.getValue()); RestBusinessCode.RegionIdIsNull.getValue());
} }
if (null == ipRegion.getGroupId()) { if (null == ipRegion.getGroupId()) {
throw new RestServiceException("service为" + service throw new RestServiceException("ipRegionList中id为" + regionId + "的配置groupId不能为空",
+ "的中的ip类域配置id为" + regionId + "的配置groupId不能为空",
RestBusinessCode.RegionsGroupIdIsNull.getValue()); RestBusinessCode.RegionsGroupIdIsNull.getValue());
} }
if (null == ipRegion.getAddrType()) { if (null == ipRegion.getAddrType()) {
throw new RestServiceException("service为" + service throw new RestServiceException("ipRegionList中id为" + regionId + "的配置addrType不能为空",
+ "的中的ip类域配置id为" + regionId + "的配置addrType不能为空",
RestBusinessCode.AddrTypeIsNull.getValue()); RestBusinessCode.AddrTypeIsNull.getValue());
} }
if (null == ipRegion.getSrcIp() || ipRegion.getSrcIp().equals("")) { if (null == ipRegion.getSrcIp() || ipRegion.getSrcIp().equals("")) {
throw new RestServiceException("service为" + service throw new RestServiceException("ipRegionList中id为" + regionId + "的配置srcIp不能为空",
+ "的中的ip类域配置id为" + regionId + "的配置srcIp不能为空",
RestBusinessCode.SrcIpIsNull.getValue()); RestBusinessCode.SrcIpIsNull.getValue());
} }
if (null == ipRegion.getMaskSrcIp() if (null == ipRegion.getMaskSrcIp()
|| ipRegion.getMaskSrcIp().equals("")) { || ipRegion.getMaskSrcIp().equals("")) {
throw new RestServiceException("service为" + service throw new RestServiceException("ipRegionList中id为" + regionId + "的配置maskSrcIp不能为空",
+ "的中的ip类域配置id为" + regionId + "的配置maskSrcIp不能为空",
RestBusinessCode.MaskSrcIpIsNull.getValue()); RestBusinessCode.MaskSrcIpIsNull.getValue());
} }
if (null == ipRegion.getSrcPort() || ipRegion.getSrcPort().equals("")) { if (null == ipRegion.getSrcPort() || ipRegion.getSrcPort().equals("")) {
throw new RestServiceException("service为" + service throw new RestServiceException("ipRegionList中id为" + regionId + "的配置srcPort不能为空",
+ "的中的ip类域配置id为" + regionId + "的配置srcPort不能为空",
RestBusinessCode.SrcPortIsNull.getValue()); RestBusinessCode.SrcPortIsNull.getValue());
} }
if (null == ipRegion.getMaskSrcPort() if (null == ipRegion.getMaskSrcPort()
|| ipRegion.getMaskSrcPort().equals("")) { || ipRegion.getMaskSrcPort().equals("")) {
throw new RestServiceException("service为" + service throw new RestServiceException("ipRegionList中id为" + regionId + "的配置maskSrcPort不能为空",
+ "的中的ip类域配置id为" + regionId + "的配置maskSrcPort不能为空",
RestBusinessCode.MaskSrcPortIsNull.getValue()); RestBusinessCode.MaskSrcPortIsNull.getValue());
} }
if (null == ipRegion.getDstIp() || ipRegion.getDstIp().equals("")) { if (null == ipRegion.getDstIp() || ipRegion.getDstIp().equals("")) {
throw new RestServiceException("service为" + service throw new RestServiceException("ipRegionList中id为" + regionId + "的配置dstIp不能为空",
+ "的中的ip类域配置id为" + regionId + "的配置dstIp不能为空",
RestBusinessCode.DstIpIsNull.getValue()); RestBusinessCode.DstIpIsNull.getValue());
} }
if (null == ipRegion.getMaskDstIp() if (null == ipRegion.getMaskDstIp()
|| ipRegion.getMaskDstIp().equals("")) { || ipRegion.getMaskDstIp().equals("")) {
throw new RestServiceException("service为" + service throw new RestServiceException("ipRegionList中id为" + regionId + "的配置maskDstIp不能为空",
+ "的中的ip类域配置id为" + regionId + "的配置maskDstIp不能为空",
RestBusinessCode.MaskDstIpIsNull.getValue()); RestBusinessCode.MaskDstIpIsNull.getValue());
} }
if (null == ipRegion.getDstPort() || ipRegion.getDstPort().equals("")) { if (null == ipRegion.getDstPort() || ipRegion.getDstPort().equals("")) {
throw new RestServiceException("service为" + service throw new RestServiceException("ipRegionList中id为" + regionId + "的配置dstPort不能为空",
+ "的中的ip类域配置id为" + regionId + "的配置dstPort不能为空",
RestBusinessCode.DstPortIsNull.getValue()); RestBusinessCode.DstPortIsNull.getValue());
} }
if (null == ipRegion.getMaskDstPort() if (null == ipRegion.getMaskDstPort()
|| ipRegion.getMaskDstPort().equals("")) { || ipRegion.getMaskDstPort().equals("")) {
throw new RestServiceException("service为" + service throw new RestServiceException("ipRegionList中id为" + regionId + "的配置maskDstPort不能为空",
+ "的中的ip类域配置id为" + regionId + "的配置maskDstPort不能为空",
RestBusinessCode.MaskDstPortIsNull.getValue()); RestBusinessCode.MaskDstPortIsNull.getValue());
} }
if (null == ipRegion.getProtocol()) { if (null == ipRegion.getProtocol()) {
throw new RestServiceException("service为" + service throw new RestServiceException("ipRegionList中id为" + regionId + "的配置protocol不能为空",
+ "的中的ip类域配置id为" + regionId + "的配置protocol不能为空",
RestBusinessCode.ProtocolIsNull.getValue()); RestBusinessCode.ProtocolIsNull.getValue());
} }
if (null == ipRegion.getDirection()) { if (null == ipRegion.getDirection()) {
throw new RestServiceException("service为" + service throw new RestServiceException("ipRegionList中id为" + regionId + "的配置direction不能为空",
+ "的中的ip类域配置id为" + regionId + "的配置direction不能为空",
RestBusinessCode.DirectionIsNull.getValue()); RestBusinessCode.DirectionIsNull.getValue());
} }
if (null == ipRegion.getIsValid()) { if (null == ipRegion.getIsValid()) {
throw new RestServiceException("service为" + service throw new RestServiceException("ipRegionList中id为" + regionId + "的配置isValid不能为空",
+ "的中的ip类域配置id为" + regionId + "的配置isValid不能为空",
RestBusinessCode.IsValidIsNull.getValue()); RestBusinessCode.IsValidIsNull.getValue());
} }
} }
public static void valNumRegion(NumRegion numRegion, Integer service) public static void valNumRegion(NumRegion numRegion)
throws Exception { throws Exception {
Long regionId = numRegion.getRegionId(); Long regionId = numRegion.getRegionId();
if (null == regionId) { if (null == regionId) {
throw new RestServiceException("service为" + service throw new RestServiceException("数值类域配置的regionId不能为空",
+ "的中的数值类域配置的regionId不能为空",
RestBusinessCode.RegionIdIsNull.getValue()); RestBusinessCode.RegionIdIsNull.getValue());
} }
if (null == numRegion.getGroupId()) { if (null == numRegion.getGroupId()) {
throw new RestServiceException("service" + service throw new RestServiceException("数值类域配置id" + regionId + "的配置groupId不能为空",
+ "的中的数值类域配置id为" + regionId + "的配置groupId不能为空",
RestBusinessCode.RegionsGroupIdIsNull.getValue()); RestBusinessCode.RegionsGroupIdIsNull.getValue());
} }
if (null == numRegion.getLowBoundary()) { if (null == numRegion.getLowBoundary()) {
throw new RestServiceException("service" + service throw new RestServiceException("数值类域配置id" + regionId + "的配置lowBoundary不能为空",
+ "的中的数值类域配置id为" + regionId + "的配置lowBoundary不能为空",
RestBusinessCode.LowBoundaryIsNull.getValue()); RestBusinessCode.LowBoundaryIsNull.getValue());
} }
if (null == numRegion.getUpBoundary()) { if (null == numRegion.getUpBoundary()) {
throw new RestServiceException("service" + service throw new RestServiceException("数值类域配置id" + regionId + "的配置upBoundary不能为空",
+ "的中的数值类域配置id为" + regionId + "的配置upBoundary不能为空",
RestBusinessCode.UpBoundaryIsNull.getValue()); RestBusinessCode.UpBoundaryIsNull.getValue());
} }
} }
public static void valStrRegion(StrRegion strRegion, Integer service, public static void valStrRegion(StrRegion strRegion) throws Exception {
boolean isDirtrict) throws Exception {
Long regionId = strRegion.getRegionId(); Long regionId = strRegion.getRegionId();
if (null == regionId) { if (null == regionId) {
throw new RestServiceException("service为" + service throw new RestServiceException("strRegionList中regionId不能为空",
+ "的中的字符串类域配置的regionId不能为空",
RestBusinessCode.RegionIdIsNull.getValue()); RestBusinessCode.RegionIdIsNull.getValue());
} }
if (null == strRegion.getGroupId()) { if (null == strRegion.getGroupId()) {
throw new RestServiceException("service为" + service throw new RestServiceException("strRegionList中id为" + regionId + "的配置groupId不能为空",
+ "的中的字符串类域配置id为" + regionId + "的配置groupId不能为空",
RestBusinessCode.RegionsGroupIdIsNull.getValue()); 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() if (null == strRegion.getKeywords()
|| strRegion.getKeywords().equals("")) { || strRegion.getKeywords().equals("")) {
throw new RestServiceException("service为" + service throw new RestServiceException("strRegionList中id为" + regionId + "的配置keywords不能为空",
+ "的中的字符串类域配置id为" + regionId + "的配置keywords不能为空",
RestBusinessCode.KeywordsIsNull.getValue()); RestBusinessCode.KeywordsIsNull.getValue());
} }
if (null == strRegion.getExprType()) { if (null == strRegion.getExprType()) {
throw new RestServiceException("service为" + service throw new RestServiceException("strRegionList中id为" + regionId + "的配置exprType不能为空",
+ "的中的字符串类域配置id为" + regionId + "的配置exprType不能为空",
RestBusinessCode.ExprTypeIsNull.getValue()); RestBusinessCode.ExprTypeIsNull.getValue());
} }
if (null == strRegion.getMatchMethod()) { if (null == strRegion.getMatchMethod()) {
throw new RestServiceException("service为" + service throw new RestServiceException("strRegionList中id为" + regionId + "的配置matchMethod不能为空",
+ "的中的字符串类域配置id为" + regionId + "的配置matchMethod不能为空",
RestBusinessCode.MatchMethodIsNull.getValue()); RestBusinessCode.MatchMethodIsNull.getValue());
} }
if (null == strRegion.getIsHexbin()) { if (null == strRegion.getIsHexbin()) {
throw new RestServiceException("service为" + service throw new RestServiceException("strRegionList中id为" + regionId + "的配置isHexbin不能为空",
+ "的中的字符串类域配置id为" + regionId + "的配置isHexbin不能为空",
RestBusinessCode.MatchMethodIsNull.getValue()); RestBusinessCode.MatchMethodIsNull.getValue());
} }
} }
private static void validateIpAndMask(IpRegion ipRegion, Integer service, private static void validateIpAndMask(IpRegion ipRegion) throws Exception {
String listName) throws Exception {
// 源IP信息和目的IP信息格式s为IPV4或IPV6 // 源IP信息和目的IP信息格式s为IPV4或IPV6
if (ipRegion.getAddrType().intValue() == 4 if (ipRegion.getAddrType().intValue() == 4
|| ipRegion.getAddrType().intValue() == 6) { || ipRegion.getAddrType().intValue() == 6) {
if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getSrcIp(), if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getSrcIp(),
ipRegion.getAddrType())) { ipRegion.getAddrType())) {
throw new RestServiceException("service为" + service + "的配置中" throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId()
+ listName + "中regionId为" + ipRegion.getRegionId()
+ "的域配置srcIp的格式不正确或与addrType不一致", + "的域配置srcIp的格式不正确或与addrType不一致",
RestBusinessCode.IPUnMatchAddrType.getValue()); RestBusinessCode.IPUnMatchAddrType.getValue());
} }
if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskSrcIp(), if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskSrcIp(),
ipRegion.getAddrType())) { ipRegion.getAddrType())) {
throw new RestServiceException("service为" + service + "的配置中" throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId()
+ listName + "中regionId为" + ipRegion.getRegionId()
+ "的域配置maskSrcIp的格式不正确或与addrType不一致", + "的域配置maskSrcIp的格式不正确或与addrType不一致",
RestBusinessCode.IPUnMatchAddrType.getValue()); RestBusinessCode.IPUnMatchAddrType.getValue());
} }
if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getDstIp(), if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getDstIp(),
ipRegion.getAddrType())) { ipRegion.getAddrType())) {
throw new RestServiceException("service为" + service + "的配置中" throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId()
+ listName + "中regionId为" + ipRegion.getRegionId()
+ "的域配置dstIp的格式不正确或与addrType不一致", + "的域配置dstIp的格式不正确或与addrType不一致",
RestBusinessCode.IPUnMatchAddrType.getValue()); RestBusinessCode.IPUnMatchAddrType.getValue());
} }
if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskDstIp(), if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskDstIp(),
ipRegion.getAddrType())) { ipRegion.getAddrType())) {
throw new RestServiceException("service为" + service + "的配置中" throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId()
+ listName + "中regionId为" + ipRegion.getRegionId()
+ "的域配置maskDstIp的格式不正确或与addrType不一致", + "的域配置maskDstIp的格式不正确或与addrType不一致",
RestBusinessCode.IPUnMatchAddrType.getValue()); RestBusinessCode.IPUnMatchAddrType.getValue());
} }
} else if (ipRegion.getAddrType().intValue() == 46) {// 4OVER6:源IP信息格式为IPV4、目的IP信息格式IPV6 } else if (ipRegion.getAddrType().intValue() == 46) {// 4OVER6:源IP信息格式为IPV4、目的IP信息格式IPV6
if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getSrcIp(), 4)) { if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getSrcIp(), 4)) {
throw new RestServiceException("service为" + service + "的配置中" throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId()
+ listName + "中regionId为" + ipRegion.getRegionId()
+ "的域配置srcIp的格式不正确或与addrType不一致", + "的域配置srcIp的格式不正确或与addrType不一致",
RestBusinessCode.IPUnMatchAddrType.getValue()); RestBusinessCode.IPUnMatchAddrType.getValue());
} }
if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskSrcIp(), 4)) { if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskSrcIp(), 4)) {
throw new RestServiceException("service为" + service + "的配置中" throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId()
+ listName + "中regionId为" + ipRegion.getRegionId()
+ "的域配置maskSrcIp的格式不正确或与addrType不一致", + "的域配置maskSrcIp的格式不正确或与addrType不一致",
RestBusinessCode.IPUnMatchAddrType.getValue()); RestBusinessCode.IPUnMatchAddrType.getValue());
} }
if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getDstIp(), 6)) { if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getDstIp(), 6)) {
throw new RestServiceException("service为" + service + "的配置中" throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId()
+ listName + "中regionId为" + ipRegion.getRegionId()
+ "的域配置dstIp的格式不正确或与addrType不一致", + "的域配置dstIp的格式不正确或与addrType不一致",
RestBusinessCode.IPUnMatchAddrType.getValue()); RestBusinessCode.IPUnMatchAddrType.getValue());
} }
if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskDstIp(), 6)) { if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskDstIp(), 6)) {
throw new RestServiceException("service为" + service + "的配置中" throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId()
+ listName + "中regionId为" + ipRegion.getRegionId()
+ "的域配置maskDstIp的格式不正确或与addrType不一致", + "的域配置maskDstIp的格式不正确或与addrType不一致",
RestBusinessCode.IPUnMatchAddrType.getValue()); RestBusinessCode.IPUnMatchAddrType.getValue());
} }
} else if (ipRegion.getAddrType().intValue() == 64) {// 6OVER4:源IP信息格式为IPV6、目的IP信息格式IPV4 } else if (ipRegion.getAddrType().intValue() == 64) {// 6OVER4:源IP信息格式为IPV6、目的IP信息格式IPV4
if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getSrcIp(), 6)) { if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getSrcIp(), 6)) {
throw new RestServiceException("service为" + service + "的配置中" throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId()
+ listName + "中regionId为" + ipRegion.getRegionId()
+ "的域配置srcIp的格式不正确或与addrType不一致", + "的域配置srcIp的格式不正确或与addrType不一致",
RestBusinessCode.IPUnMatchAddrType.getValue()); RestBusinessCode.IPUnMatchAddrType.getValue());
} }
if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskSrcIp(), 6)) { if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskSrcIp(), 6)) {
throw new RestServiceException("service为" + service + "的配置中" throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId()
+ listName + "中regionId为" + ipRegion.getRegionId()
+ "的域配置maskSrcIp的格式不正确或与addrType不一致", + "的域配置maskSrcIp的格式不正确或与addrType不一致",
RestBusinessCode.IPUnMatchAddrType.getValue()); RestBusinessCode.IPUnMatchAddrType.getValue());
} }
if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getDstIp(), 4)) { if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getDstIp(), 4)) {
throw new RestServiceException("service为" + service + "的配置中" throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId()
+ listName + "中regionId为" + ipRegion.getRegionId()
+ "的域配置dstIp的格式不正确或与addrType不一致", + "的域配置dstIp的格式不正确或与addrType不一致",
RestBusinessCode.IPUnMatchAddrType.getValue()); RestBusinessCode.IPUnMatchAddrType.getValue());
} }
if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskDstIp(), 4)) { if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskDstIp(), 4)) {
throw new RestServiceException("service为" + service + "的配置中" throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId()
+ listName + "中regionId为" + ipRegion.getRegionId()
+ "的域配置maskDstIp的格式不正确或与addrType不一致", + "的域配置maskDstIp的格式不正确或与addrType不一致",
RestBusinessCode.IPUnMatchAddrType.getValue()); RestBusinessCode.IPUnMatchAddrType.getValue());
} }
} else if (ipRegion.getAddrType().intValue() == 10) {// all:符合IP格式即可 } else if (ipRegion.getAddrType().intValue() == 10) {// all:符合IP格式即可
if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getSrcIp(), null)) { if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getSrcIp(), null)) {
throw new RestServiceException("service为" + service + "的配置中" throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId()
+ listName + "中regionId为" + ipRegion.getRegionId()
+ "的域配置srcIp的格式不正确或与addrType不一致", + "的域配置srcIp的格式不正确或与addrType不一致",
RestBusinessCode.IPUnMatchAddrType.getValue()); RestBusinessCode.IPUnMatchAddrType.getValue());
} }
if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskSrcIp(), null)) { if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskSrcIp(), null)) {
throw new RestServiceException("service为" + service + "的配置中" throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId()
+ listName + "中regionId为" + ipRegion.getRegionId()
+ "的域配置maskSrcIp的格式不正确或与addrType不一致", + "的域配置maskSrcIp的格式不正确或与addrType不一致",
RestBusinessCode.IPUnMatchAddrType.getValue()); RestBusinessCode.IPUnMatchAddrType.getValue());
} }
if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getDstIp(), null)) { if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getDstIp(), null)) {
throw new RestServiceException("service为" + service + "的配置中" throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId()
+ listName + "中regionId为" + ipRegion.getRegionId()
+ "的域配置dstIp的格式不正确或与addrType不一致", + "的域配置dstIp的格式不正确或与addrType不一致",
RestBusinessCode.IPUnMatchAddrType.getValue()); RestBusinessCode.IPUnMatchAddrType.getValue());
} }
if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskDstIp(), null)) { if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskDstIp(), null)) {
throw new RestServiceException("service为" + service + "的配置中" throw new RestServiceException("ipRegionList中中regionId为" + ipRegion.getRegionId()
+ listName + "中regionId为" + ipRegion.getRegionId()
+ "的域配置maskDstIp的格式不正确或与addrType不一致", + "的域配置maskDstIp的格式不正确或与addrType不一致",
RestBusinessCode.IPUnMatchAddrType.getValue()); RestBusinessCode.IPUnMatchAddrType.getValue());
} }
@@ -424,48 +353,41 @@ public class GroupReuseVal {
} }
public static void serviceIpRegionVal(IpRegion ipRegion, Integer service, public static void serviceIpRegionVal(IpRegion ipRegion) throws Exception {
String listName) throws Exception {
validateIpAndMask(ipRegion, service, listName); validateIpAndMask(ipRegion);
if (!BasicProvingUtil.isPortOrPortMask(ipRegion.getSrcPort())) { if (!BasicProvingUtil.isPortOrPortMask(ipRegion.getSrcPort())) {
throw new RestServiceException("service为" + service + "的配置中" throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId()
+ listName + "中regionId为" + ipRegion.getRegionId()
+ "的域配置srcPort的格式不正确", + "的域配置srcPort的格式不正确",
RestBusinessCode.PortIsNotVal.getValue()); RestBusinessCode.PortIsNotVal.getValue());
} }
if (!BasicProvingUtil.isPortOrPortMask(ipRegion.getMaskSrcPort())) { if (!BasicProvingUtil.isPortOrPortMask(ipRegion.getMaskSrcPort())) {
throw new RestServiceException("service为" + service + "的配置中" throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId()
+ listName + "中regionId为" + ipRegion.getRegionId()
+ "的域配置maskSrcPort的格式不正确", + "的域配置maskSrcPort的格式不正确",
RestBusinessCode.PortIsNotVal.getValue()); RestBusinessCode.PortIsNotVal.getValue());
} }
if (!BasicProvingUtil.isPortOrPortMask(ipRegion.getDstPort())) { if (!BasicProvingUtil.isPortOrPortMask(ipRegion.getDstPort())) {
throw new RestServiceException("service为" + service + "的配置中" throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId()
+ listName + "中regionId为" + ipRegion.getRegionId()
+ "的域配置dstPort的格式不正确", + "的域配置dstPort的格式不正确",
RestBusinessCode.PortIsNotVal.getValue()); RestBusinessCode.PortIsNotVal.getValue());
} }
if (!BasicProvingUtil.isPortOrPortMask(ipRegion.getMaskDstPort())) { if (!BasicProvingUtil.isPortOrPortMask(ipRegion.getMaskDstPort())) {
// if (!BasicProvingUtil.isIntType(ipRegion.getMaskDstPort())) { // if (!BasicProvingUtil.isIntType(ipRegion.getMaskDstPort())) {
throw new RestServiceException("service为" + service + "的配置中" throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId()
+ listName + "中regionId为" + ipRegion.getRegionId()
+ "的域配置maskDstPort的格式不正确", + "的域配置maskDstPort的格式不正确",
RestBusinessCode.PortIsNotVal.getValue()); RestBusinessCode.PortIsNotVal.getValue());
} }
if (ipRegion.getSrcIp().equals(ipRegion.getDstIp())) { if (ipRegion.getSrcIp().equals(ipRegion.getDstIp())) {
throw new RestServiceException("service为" + service + "的配置中" throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId()
+ listName + "中regionId为" + ipRegion.getRegionId()
+ "的域配置srcIp和dstIp不能相同", + "的域配置srcIp和dstIp不能相同",
RestBusinessCode.SrcIpEQDstIp.getValue()); RestBusinessCode.SrcIpEQDstIp.getValue());
} }
if (ipRegion.getDirection() != 1 && ipRegion.getDirection() != 0) { if (ipRegion.getDirection() != 1 && ipRegion.getDirection() != 0) {
throw new RestServiceException("service为" + service + "的配置中" throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId()
+ listName + "中regionId为" + ipRegion.getRegionId()
+ "的域配置direction的值不正确,只能是0或1", + "的域配置direction的值不正确,只能是0或1",
RestBusinessCode.DirectionIsWrongRange.getValue()); 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 { throws Exception {
Long lowBoundary = numRegion.getLowBoundary(); Long lowBoundary = numRegion.getLowBoundary();
Long upBoundary = numRegion.getUpBoundary(); Long upBoundary = numRegion.getUpBoundary();
if (lowBoundary <= upBoundary) { if (lowBoundary <= upBoundary) {
if (lowBoundary > 4294967295l || lowBoundary < 0l) { if (lowBoundary > 4294967295l || lowBoundary < 0l) {
throw new RestServiceException("service为" + service throw new RestServiceException("numRegionList中regionId为"
+ "的配置中numRegionList中regionId为"
+ numRegion.getRegionId() + numRegion.getRegionId()
+ "的域配置lowBoundary的值不能大于2的32次方减一(4294967295)或者小于0", + "的域配置lowBoundary的值不能大于2的32次方减一(4294967295)或者小于0",
RestBusinessCode.LowBoundaryIsWrongRange.getValue()); RestBusinessCode.LowBoundaryIsWrongRange.getValue());
} }
if (upBoundary > 4294967295l || upBoundary < 0l) { if (upBoundary > 4294967295l || upBoundary < 0l) {
throw new RestServiceException("service为" + service throw new RestServiceException("numRegionList中regionId为"
+ "的配置中numRegionList中regionId为"
+ numRegion.getRegionId() + numRegion.getRegionId()
+ "的域配置upBoundary的值不能大于2的32次方减一(4294967295)或者小于0", + "的域配置upBoundary的值不能大于2的32次方减一(4294967295)或者小于0",
RestBusinessCode.UpBoundaryIsWrongRange.getValue()); RestBusinessCode.UpBoundaryIsWrongRange.getValue());
} }
} else { } else {
throw new RestServiceException("service为" + service throw new RestServiceException("numRegionList中regionId为" + numRegion.getRegionId()
+ "的配置中numRegionList中regionId为" + numRegion.getRegionId()
+ "的域配置lowBoundary的值大于upBoundary,应该是小于或等于", + "的域配置lowBoundary的值大于upBoundary,应该是小于或等于",
RestBusinessCode.LowBoundaryGTUpBoundary.getValue()); RestBusinessCode.LowBoundaryGTUpBoundary.getValue());
} }
} }
public static void serviceStrRegionVal(StrRegion strRegion, public static void serviceStrRegionVal(StrRegion strRegion) throws Exception {
Integer service, boolean isDirtrict) throws Exception {
Integer exprType = strRegion.getExprType(); Integer exprType = strRegion.getExprType();
Integer matchMethod = strRegion.getMatchMethod(); Integer matchMethod = strRegion.getMatchMethod();
Integer isHexbin = strRegion.getIsHexbin(); Integer isHexbin = strRegion.getIsHexbin();
if (exprType != 0 && exprType != 1) { if (exprType != 0 && exprType != 1) {
throw new RestServiceException("service为" + service throw new RestServiceException("strRegionList中regionId为" + strRegion.getRegionId()
+ "的配置中strRegionList中regionId为" + strRegion.getRegionId()
+ "的域配置exprType的值只能是0(无表达式)或者1(与表达式)", + "的域配置exprType的值只能是0(无表达式)或者1(与表达式)",
RestBusinessCode.ExprTypeIsWrongRange.getValue()); RestBusinessCode.ExprTypeIsWrongRange.getValue());
} }
if (matchMethod != 0 && matchMethod != 1 && matchMethod != 2 if (matchMethod != 0 && matchMethod != 1 && matchMethod != 2
&& matchMethod != 3) { && matchMethod != 3) {
throw new RestServiceException("service为" + service throw new RestServiceException("strRegionList中regionId为" + strRegion.getRegionId()
+ "的配置中strRegionList中regionId为" + strRegion.getRegionId()
+ "的域配置matchMethod的值只能是0(子串匹配),1(右匹配),2(左匹配),3(完全匹配)", + "的域配置matchMethod的值只能是0(子串匹配),1(右匹配),2(左匹配),3(完全匹配)",
RestBusinessCode.MatchMethodIsWrongRange.getValue()); RestBusinessCode.MatchMethodIsWrongRange.getValue());
} }
if (isHexbin != 0 && isHexbin != 1 && isHexbin != 2) { if (isHexbin != 0 && isHexbin != 1 && isHexbin != 2) {
throw new RestServiceException( throw new RestServiceException("strRegionList中regionId为"
"service为"
+ service
+ "的配置中strRegionList中regionId为"
+ strRegion.getRegionId() + strRegion.getRegionId()
+ "的域配置isHexbin的值只能是0(大小写不敏感且非HEX)或者1(HEX)或者2(大小写敏感且非HEX)", + "的域配置isHexbin的值只能是0(大小写不敏感且非HEX)或者1(HEX)或者2(大小写敏感且非HEX)",
RestBusinessCode.IsHexbinIsWrongRange.getValue()); RestBusinessCode.IsHexbinIsWrongRange.getValue());

View File

@@ -3,6 +3,7 @@ package com.nis.util;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
@@ -400,12 +401,24 @@ public class ServiceAndRDBIndexReal {
public static void setUnMaatSercieNameMap(Map<Integer, String> unMaatSercieNameMap) { public static void setUnMaatSercieNameMap(Map<Integer, String> unMaatSercieNameMap) {
ServiceAndRDBIndexReal.unMaatSercieNameMap = unMaatSercieNameMap; ServiceAndRDBIndexReal.unMaatSercieNameMap = unMaatSercieNameMap;
} }
/** /**
* @return the serviceGroupReuseMap * @return the serviceGroupReuseMap
*/ */
public static Map<String, List<String>> getServiceGroupReuseMap(Integer service) { public static Map<String, List<String>> getGroupReuseRegionMap() {
return serviceGroupReuseMap.get(service); Map<String, List<String>> groupReuseRegionMap = new HashMap<String, List<String>>();
Iterator iterator = serviceGroupReuseMap.keySet().iterator();
while (iterator.hasNext()) {
Map<String, List<String>> 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;
} }
} }

View File

@@ -275,7 +275,7 @@ public class MmLogSearchController extends BaseRestController {
} }
@RequestMapping(value = "/mmVoipIpLogs", method = RequestMethod.GET) @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<String, ?> mmVoipIpLogs(Page page, MmVoipIpLog mmVoipIpLog, Model model, HttpServletRequest request, public Map<String, ?> mmVoipIpLogs(Page page, MmVoipIpLog mmVoipIpLog, Model model, HttpServletRequest request,
HttpServletResponse response) { HttpServletResponse response) {
long start = System.currentTimeMillis(); long start = System.currentTimeMillis();
@@ -320,15 +320,15 @@ public class MmLogSearchController extends BaseRestController {
auditLogThread.setExceptionInfo(e.getMessage() + " " + e.getCause()); auditLogThread.setExceptionInfo(e.getMessage() + " " + e.getCause());
logger.error(e); logger.error(e);
if (!(e instanceof RestServiceException)) { 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); throw ((RestServiceException) e);
} }
return serviceLogResponse(auditLogThread, System.currentTimeMillis() - start, request, "VOIP IP日志检索成功", return serviceLogResponse(auditLogThread, System.currentTimeMillis() - start, request, "VoIP IP日志检索成功",
logPage, 0); logPage, 0);
} }
@RequestMapping(value = "/mmVoipAccountLogs", method = RequestMethod.GET) @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<String, ?> mmVoipAccountLogs(Page page, MmVoipAccountLog mmVoipLog, Model model, HttpServletRequest request, public Map<String, ?> mmVoipAccountLogs(Page page, MmVoipAccountLog mmVoipLog, Model model, HttpServletRequest request,
HttpServletResponse response) { HttpServletResponse response) {
long start = System.currentTimeMillis(); long start = System.currentTimeMillis();
@@ -373,11 +373,11 @@ public class MmLogSearchController extends BaseRestController {
auditLogThread.setExceptionInfo(e.getMessage() + " " + e.getCause()); auditLogThread.setExceptionInfo(e.getMessage() + " " + e.getCause());
logger.error(e); logger.error(e);
if (!(e instanceof RestServiceException)) { 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); throw ((RestServiceException) e);
} }
return serviceLogResponse(auditLogThread, System.currentTimeMillis() - start, request, "VOIP Account日志检索成功", return serviceLogResponse(auditLogThread, System.currentTimeMillis() - start, request, "VoIP Account日志检索成功",
logPage, 0); logPage, 0);
} }

View File

@@ -792,25 +792,19 @@ public class ConfigSourcesService extends BaseService {
*/ */
public void addGroupReuseSources(AuditLogThread thread, long start, List<GroupReuse> groupReuseList, public void addGroupReuseSources(AuditLogThread thread, long start, List<GroupReuse> groupReuseList,
StringBuffer sb) throws Exception { StringBuffer sb) throws Exception {
// Map<service,List<maat配置>> 存放解析后输入数据 MaatConfig maatConfig = new MaatConfig();
Map<Integer, List<MaatConfig>> maatMap = new HashMap<Integer, List<MaatConfig>>();
// Map<service,List<maat配置>> 存放多分发的数据
Map<Integer, List<MaatConfig>> configMap = new HashMap<Integer, List<MaatConfig>>();
// 验证 // 验证
GroupReuseVal.valGroupReuse(groupReuseList, false); GroupReuseVal.valGroupReuse(groupReuseList, false);
for (GroupReuse groupReuse : groupReuseList) { for (GroupReuse groupReuse : groupReuseList) {
Integer service = groupReuse.getService(); List<Map<String, String>> dstMapList = null;
MaatConfig maatConfig = new MaatConfig();
maatConfig.setService(service);
List<Map<String, String>> dstMaplList = null;
// 字符串域 // 字符串域
List<Map<String, String>> strongMapList = null; List<Map<String, String>> strongMapList = null;
if (!StringUtil.isEmpty(groupReuse.getStrRegionList())) { if (!StringUtil.isEmpty(groupReuse.getStrRegionList())) {
dstMaplList = new ArrayList<Map<String, String>>(); dstMapList = new ArrayList<Map<String, String>>();
for (StrRegion region : groupReuse.getStrRegionList()) { for (StrRegion region : groupReuse.getStrRegionList()) {
if (StringUtil.isEmpty(region.getDistrict())) { if (StringUtil.isEmpty(region.getDistrict())) {
dstMaplList.add(convertObjectToMap(region, StrRegion.class)); dstMapList.add(convertObjectToMap(region, StrRegion.class));
} else { } else {
if (StringUtil.isEmpty(strongMapList)) { if (StringUtil.isEmpty(strongMapList)) {
strongMapList = new ArrayList<Map<String, String>>(); strongMapList = new ArrayList<Map<String, String>>();
@@ -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) { 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())) { if (!StringUtil.isEmpty(groupReuse.getNumRegionList())) {
dstMaplList = new ArrayList<Map<String, String>>(); dstMapList = new ArrayList<Map<String, String>>();
for (NumRegion region : groupReuse.getNumRegionList()) { 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域 // Ip域
dstMaplList = null; dstMapList = null;
if (!StringUtil.isEmpty(groupReuse.getIpRegionList())) { if (!StringUtil.isEmpty(groupReuse.getIpRegionList())) {
dstMaplList = new ArrayList<Map<String, String>>(); dstMapList = new ArrayList<Map<String, String>>();
for (IpRegion region : groupReuse.getIpRegionList()) { for (IpRegion region : groupReuse.getIpRegionList()) {
dstMaplList.add(convertObjectToMap(region, IpRegion.class)); dstMapList.add(convertObjectToMap(region, IpRegion.class));
} }
} }
maatConfig.setIpRegionMapList(dstMaplList); if (StringUtil.isEmpty(maatConfig.getStrRegionMapList())) {
maatConfig.setIpRegionMapList(dstMapList);
// 生效范围IP域
dstMaplList = null;
if (!StringUtil.isEmpty(groupReuse.getIpClientRangeList())) {
dstMaplList = new ArrayList<Map<String, String>>();
for (IpRegion region : groupReuse.getIpClientRangeList()) {
dstMaplList.add(convertObjectToMap(region, IpRegion.class));
}
}
maatConfig.setIpClientRangeMapList(dstMaplList);
if (maatMap.containsKey(service)) {
maatMap.get(service).add(maatConfig);
}else{ }else{
List<MaatConfig> maatCfgList = new ArrayList<MaatConfig>(); maatConfig.getIpRegionMapList().addAll(dstMapList);
maatCfgList.add(maatConfig);
maatMap.put(service, maatCfgList);
} }
} }
// 调用接口入redis // 调用接口入redis
// 根据service分发到各系统
Iterator serviceIterator = maatMap.keySet().iterator();
while (serviceIterator.hasNext()) {
Integer service = Integer.valueOf(serviceIterator.next().toString());
List<Integer> dbIndexList = ServiceAndRDBIndexReal.getRedisDBByService(service);
if (!StringUtil.isEmpty(dbIndexList) && dbIndexList.size() > 0) {
for (Integer dbIndex : dbIndexList) {
List<MaatConfig> newMaatConfigList = new ArrayList<MaatConfig>();
newMaatConfigList.addAll(maatMap.get(service));
if (configMap.containsKey(dbIndex)) {
configMap.get(dbIndex).addAll(newMaatConfigList);
} else {
List<MaatConfig> list = new ArrayList<MaatConfig>();
list.addAll(newMaatConfigList);
configMap.put(dbIndex, list);
}
}
} else {
throw new ServiceRuntimeException(RestBusinessCode.ServiceNoFoundDBIndex.getErrorReason(),
RestBusinessCode.ServiceNoFoundDBIndex.getValue());
}
}
logger.info("---------------调用Redis 分组复用配置新增接口---------------------"); 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<GroupReuse> groupReuseList, Date opTime, public void deleteGroupReuseSources(AuditLogThread thread, long start, List<GroupReuse> groupReuseList, Date opTime,
StringBuffer sb) throws Exception { StringBuffer sb) throws Exception {
// 按service分类 Map<service,Map<groupId,List<"tableName,regionId">> // Map<groupId,List<"tableName,regionId">
Map<Integer, Map<Long, List<String>>> reuseMap = new HashMap<Integer, Map<Long,List<String>>>(); Map<Long, List<String>> reuseMap = new HashMap<Long,List<String>>();
for (GroupReuse groupReuse : groupReuseList) { for (GroupReuse groupReuse : groupReuseList) {
// 验证格式 // 验证格式
checkGroupReuseForUpdate(groupReuse); checkGroupReuseForUpdate(groupReuse);
Integer service = groupReuse.getService();
if (!reuseMap.containsKey(service)) {
Map<Long, List<String>> map = new HashMap<Long, List<String>>();
reuseMap.put(service, map);
}
// 字符串域 // 字符串域
if (!StringUtil.isEmpty(groupReuse.getStrRegionList())) { if (!StringUtil.isEmpty(groupReuse.getStrRegionList())) {
for (StrRegion region : groupReuse.getStrRegionList()) { for (StrRegion region : groupReuse.getStrRegionList()) {
if (reuseMap.get(service).containsKey(region.getGroupId())) { if (reuseMap.containsKey(region.getGroupId())) {
reuseMap.get(service).get(region.getGroupId()).add(region.getTableName()+","+region.getRegionId()); reuseMap.get(region.getGroupId()).add(region.getTableName()+","+region.getRegionId());
}else { }else {
Map<Long, List<String>> groupMap = new HashMap<Long, List<String>>();
List<String> regionList = new ArrayList<String>(); List<String> regionList = new ArrayList<String>();
regionList.add(region.getTableName()+","+region.getRegionId()); 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())) { if (!StringUtil.isEmpty(groupReuse.getNumRegionList())) {
for (NumRegion region : groupReuse.getNumRegionList()) { for (NumRegion region : groupReuse.getNumRegionList()) {
if (reuseMap.get(service).containsKey(region.getGroupId())) { if (reuseMap.containsKey(region.getGroupId())) {
reuseMap.get(service).get(region.getGroupId()).add(region.getTableName()+","+region.getRegionId()); reuseMap.get(region.getGroupId()).add(region.getTableName()+","+region.getRegionId());
}else { }else {
Map<Long, List<String>> groupMap = new HashMap<Long, List<String>>();
List<String> regionList = new ArrayList<String>(); List<String> regionList = new ArrayList<String>();
regionList.add(region.getTableName()+","+region.getRegionId()); 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域 // Ip域
if (!StringUtil.isEmpty(groupReuse.getIpRegionList())) { if (!StringUtil.isEmpty(groupReuse.getIpRegionList())) {
for (IpRegion region : groupReuse.getIpRegionList()) { for (IpRegion region : groupReuse.getIpRegionList()) {
if (reuseMap.get(service).containsKey(region.getGroupId())) { if (reuseMap.containsKey(region.getGroupId())) {
reuseMap.get(service).get(region.getGroupId()).add(region.getTableName()+","+region.getRegionId()); reuseMap.get(region.getGroupId()).add(region.getTableName()+","+region.getRegionId());
}else { }else {
Map<Long, List<String>> groupMap = new HashMap<Long, List<String>>();
List<String> regionList = new ArrayList<String>(); List<String> regionList = new ArrayList<String>();
regionList.add(region.getTableName()+","+region.getRegionId()); regionList.add(region.getTableName()+","+region.getRegionId());
groupMap.put(region.getGroupId(), regionList); reuseMap.put(region.getGroupId(), regionList);
reuseMap.put(service, groupMap);
} }
} }
} }
@@ -979,67 +939,61 @@ public class ConfigSourcesService extends BaseService {
*/ */
private void checkGroupReuseForUpdate(GroupReuse config) throws Exception { 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; Boolean hasRegionFlag = false;
Map<String, List<String>> regTabNameMap = ServiceAndRDBIndexReal.getServiceGroupReuseMap(config.getService()); Map<String, List<String>> groupReuseRegionMap = ServiceAndRDBIndexReal.getGroupReuseRegionMap();
if (regTabNameMap.containsKey("numRegion") && !StringUtil.isEmpty(config.getNumRegionList()) if (groupReuseRegionMap.containsKey("numRegion") && !StringUtil.isEmpty(config.getNumRegionList())
&& config.getNumRegionList().size() > 0) { && config.getNumRegionList().size() > 0) {
hasRegionFlag = true; hasRegionFlag = true;
List<NumRegion> numRegionList = config.getNumRegionList(); List<NumRegion> numRegionList = config.getNumRegionList();
for (NumRegion numRegion : numRegionList) { for (NumRegion numRegion : numRegionList) {
if (!StringUtil.isEmpty(numRegion.getTableName()) if (!StringUtil.isEmpty(numRegion.getTableName())
&& !CompileVal.type2TableNameIsOk(config.getService(), numRegion.getTableName())) { && groupReuseRegionMap.get("numRegion").contains(numRegion.getTableName())) {
throw new RestServiceException("service为" + config.getService() + "的配置中numRegionList中的regionId为" throw new RestServiceException("numRegionList中的regionId为"
+ numRegion.getRegionId() + "的域配置tableName与业务类型不一致", + numRegion.getRegionId()
RestBusinessCode.TableNameUnmatchService.getValue()); + "的域配置tableName不是分组复用的域表",
RestBusinessCode.TableNameUnReuse
.getValue());
} }
if (numRegion.getIsValid() != 0) { if (numRegion.getIsValid() != 0) {
throw new RestServiceException("service为" + config.getService() + "的配置中numRegionList中的regionId为" throw new RestServiceException("numRegionList中的regionId为"
+ numRegion.getRegionId() + "的域配置在修改时不能为有效", RestBusinessCode.IsValidIsF.getValue()); + 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) { && config.getStrRegionList().size() > 0) {
hasRegionFlag = true; hasRegionFlag = true;
List<StrRegion> strRegionList = config.getStrRegionList(); List<StrRegion> strRegionList = config.getStrRegionList();
for (StrRegion strRegion : strRegionList) { for (StrRegion strRegion : strRegionList) {
// if (groupReuse.getIsValid() != 0 &&
// !regionGroupIdList.contains(strRegion.getGroupId()))
// {
if (!StringUtil.isEmpty(strRegion.getTableName()) if (!StringUtil.isEmpty(strRegion.getTableName())
&& !CompileVal.type2TableNameIsOk(config.getService(), strRegion.getTableName())) { && groupReuseRegionMap.get("strRegion").contains(strRegion.getTableName())) {
throw new RestServiceException("配置id为" + config.getService() + "的配置中strRegionList中的regionId为" throw new RestServiceException("strRegionList中的regionId为"
+ strRegion.getRegionId() + "的域配置tableName与业务类型不一致", + strRegion.getRegionId()
RestBusinessCode.TableNameUnmatchService.getValue()); + "的域配置tableName不是分组复用的域表",
RestBusinessCode.TableNameUnReuse
.getValue());
} }
if (strRegion.getIsValid() != 0) { if (strRegion.getIsValid() != 0) {
throw new RestServiceException("配置id为" + config.getService() + "的配置中strRegionList中的regionId为" throw new RestServiceException("strRegionList中的regionId为"
+ strRegion.getRegionId() + "的域配置在修改时不能为有效", RestBusinessCode.IsValidIsF.getValue()); + 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) { && config.getIpRegionList().size() > 0) {
hasRegionFlag = true; hasRegionFlag = true;
List<IpRegion> ipRegionList = config.getIpRegionList(); List<IpRegion> ipRegionList = config.getIpRegionList();
for (IpRegion ipRegion : ipRegionList) { 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) { 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()); + ipRegion.getRegionId() + "的域配置在修改时不能为有效", RestBusinessCode.IsValidIsF.getValue());
} }
} }
@@ -1047,8 +1001,7 @@ public class ConfigSourcesService extends BaseService {
if (!hasRegionFlag) { if (!hasRegionFlag) {
// 所有的域类型都不包括,可能是配置文件配错了 // 所有的域类型都不包括,可能是配置文件配错了
throw new ServiceRuntimeException( throw new ServiceRuntimeException(RestBusinessCode.ReuseRegionIsNull.getErrorReason(),
"service为" + config.getService() + "" + RestBusinessCode.ReuseRegionIsNull.getErrorReason(),
RestBusinessCode.ReuseRegionIsNull.getValue()); RestBusinessCode.ReuseRegionIsNull.getValue());
} }
} }