diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/ViewServiceImpl.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/ViewServiceImpl.java index 07f55f6a4..b11eb12e2 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/ViewServiceImpl.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/ViewServiceImpl.java @@ -203,27 +203,30 @@ public class ViewServiceImpl List allDimensionIds = viewResp.getAllDimensions(); List allMetricIds = viewResp.getAllMetrics(); MetaFilter metaFilter = new MetaFilter(); - metaFilter.setIds(allDimensionIds); - List dimensionResps = dimensionService.getDimensions(metaFilter); - metaFilter.setIds(allMetricIds); - List metricResps = metricService.getMetrics(metaFilter); + if (!CollectionUtils.isEmpty(allDimensionIds)) { + metaFilter.setIds(allDimensionIds); + List dimensionResps = dimensionService.getDimensions(metaFilter); + List duplicateDimensionNames = findDuplicates(dimensionResps, DimensionResp::getName); + List duplicateDimensionBizNames = findDuplicates(dimensionResps, DimensionResp::getBizName); + if (!duplicateDimensionNames.isEmpty()) { + throw new InvalidArgumentException("存在相同的维度名: " + duplicateDimensionNames); + } + if (!duplicateDimensionBizNames.isEmpty()) { + throw new InvalidArgumentException("存在相同的维度英文名: " + duplicateDimensionBizNames); + } + } + if (!CollectionUtils.isEmpty(allMetricIds)) { + metaFilter.setIds(allMetricIds); + List metricResps = metricService.getMetrics(metaFilter); + List duplicateMetricNames = findDuplicates(metricResps, MetricResp::getName); + List duplicateMetricBizNames = findDuplicates(metricResps, MetricResp::getBizName); - List duplicateDimensionNames = findDuplicates(dimensionResps, DimensionResp::getName); - List duplicateDimensionBizNames = findDuplicates(dimensionResps, DimensionResp::getBizName); - - List duplicateMetricNames = findDuplicates(metricResps, MetricResp::getName); - List duplicateMetricBizNames = findDuplicates(metricResps, MetricResp::getBizName); - if (!duplicateDimensionNames.isEmpty()) { - throw new InvalidArgumentException("存在相同的维度名: " + duplicateDimensionNames); - } - if (!duplicateDimensionBizNames.isEmpty()) { - throw new InvalidArgumentException("存在相同的维度英文名: " + duplicateDimensionBizNames); - } - if (!duplicateMetricNames.isEmpty()) { - throw new InvalidArgumentException("存在相同的指标名: " + duplicateMetricNames); - } - if (!duplicateMetricBizNames.isEmpty()) { - throw new InvalidArgumentException("存在相同的指标英文名: " + duplicateMetricBizNames); + if (!duplicateMetricNames.isEmpty()) { + throw new InvalidArgumentException("存在相同的指标名: " + duplicateMetricNames); + } + if (!duplicateMetricBizNames.isEmpty()) { + throw new InvalidArgumentException("存在相同的指标英文名: " + duplicateMetricBizNames); + } } }