(improvement)(Headless) If it is in DETAIL mode and select *, add default metrics and dimensions. (#1186)

This commit is contained in:
lexluo09
2024-06-22 01:28:52 +08:00
committed by GitHub
parent e293be3ebf
commit cfde267a06
8 changed files with 271 additions and 50 deletions

View File

@@ -1,12 +1,18 @@
package com.tencent.supersonic.headless.api.pojo;
import lombok.Data;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
import lombok.Data;
import org.apache.commons.collections.CollectionUtils;
@Data
public class DataSetSchema {
private SchemaElement dataSet;
private Set<SchemaElement> metrics = new HashSet<>();
private Set<SchemaElement> dimensions = new HashSet<>();
@@ -78,4 +84,32 @@ public class DataSetSchema {
return queryConfig.getTagTypeDefaultConfig();
}
public List<SchemaElement> getTagDefaultDimensions() {
TagTypeDefaultConfig tagTypeDefaultConfig = getTagTypeDefaultConfig();
if (Objects.isNull(tagTypeDefaultConfig) || Objects.isNull(tagTypeDefaultConfig.getDefaultDisplayInfo())) {
return new ArrayList<>();
}
if (CollectionUtils.isNotEmpty(tagTypeDefaultConfig.getDefaultDisplayInfo().getMetricIds())) {
return tagTypeDefaultConfig.getDefaultDisplayInfo().getMetricIds()
.stream().map(id -> {
SchemaElement metric = getElement(SchemaElementType.METRIC, id);
return metric;
}).filter(Objects::nonNull).collect(Collectors.toList());
}
return new ArrayList<>();
}
public List<SchemaElement> getTagDefaultMetrics() {
TagTypeDefaultConfig tagTypeDefaultConfig = getTagTypeDefaultConfig();
if (Objects.isNull(tagTypeDefaultConfig) || Objects.isNull(tagTypeDefaultConfig.getDefaultDisplayInfo())) {
return new ArrayList<>();
}
if (CollectionUtils.isNotEmpty(tagTypeDefaultConfig.getDefaultDisplayInfo().getDimensionIds())) {
return tagTypeDefaultConfig.getDefaultDisplayInfo().getDimensionIds().stream()
.map(id -> getElement(SchemaElementType.DIMENSION, id))
.filter(Objects::nonNull).collect(Collectors.toList());
}
return new ArrayList<>();
}
}