(improvement)(headless) Remove redundant user dimensions in demo data (#663)

Co-authored-by: jolunoluo
This commit is contained in:
LXW
2024-01-19 21:10:32 +08:00
committed by GitHub
parent 08c184c7b0
commit 1ef1aa53a3
35 changed files with 269 additions and 182 deletions

View File

@@ -1,10 +1,12 @@
package com.tencent.supersonic.headless.api.pojo;
import lombok.Builder;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class FieldParam {
private String fieldName;

View File

@@ -22,12 +22,21 @@ public class Identify {
private List<String> entityNames;
private Integer isCreateDimension = 0;
public Identify(String name, String type, String bizName) {
this.name = name;
this.type = type;
this.bizName = bizName;
}
public Identify(String name, String type, String bizName, Integer isCreateDimension) {
this.name = name;
this.type = type;
this.bizName = bizName;
this.isCreateDimension = isCreateDimension;
}
public String getFieldName() {
return bizName;
}

View File

@@ -12,10 +12,6 @@ import com.tencent.supersonic.common.util.ContextUtils;
import com.tencent.supersonic.common.util.DateModeUtils;
import com.tencent.supersonic.common.util.SqlFilterUtils;
import com.tencent.supersonic.common.util.jsqlparser.SqlParserAddHelper;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import net.sf.jsqlparser.JSQLParserException;
@@ -39,6 +35,11 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.util.Strings;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@Data
@Slf4j
@@ -248,7 +249,7 @@ public class QueryStructReq extends SemanticQueryReq {
//6.Set where
List<Filter> dimensionFilters = queryStructReq.getDimensionFilters();
SqlFilterUtils sqlFilterUtils = ContextUtils.getBean(SqlFilterUtils.class);
String whereClause = sqlFilterUtils.getWhereClause(dimensionFilters, false);
String whereClause = sqlFilterUtils.getWhereClause(dimensionFilters);
String sql = select.toString();
if (StringUtils.isNotBlank(whereClause)) {

View File

@@ -16,6 +16,7 @@ import com.tencent.supersonic.headless.api.request.BatchDownloadReq;
import com.tencent.supersonic.headless.api.request.DownloadStructReq;
import com.tencent.supersonic.headless.api.enums.SemanticType;
import com.tencent.supersonic.headless.api.request.ModelSchemaFilterReq;
import com.tencent.supersonic.headless.api.request.QuerySqlReq;
import com.tencent.supersonic.headless.api.response.DimSchemaResp;
import com.tencent.supersonic.headless.api.response.DimensionResp;
import com.tencent.supersonic.headless.api.response.MetricResp;
@@ -72,7 +73,8 @@ public class DownloadServiceImpl implements DownloadService {
String fileName = String.format("%s_%s.xlsx", "supersonic", DateUtils.format(new Date(), DateUtils.FORMAT));
File file = FileUtils.createTmpFile(fileName);
try {
SemanticQueryResp queryResult = queryService.queryByStructWithAuth(downloadStructReq, user);
QuerySqlReq querySqlReq = downloadStructReq.convert(downloadStructReq);
SemanticQueryResp queryResult = (SemanticQueryResp) queryService.queryBySql(querySqlReq, user);
DataDownload dataDownload = buildDataDownload(queryResult, downloadStructReq);
EasyExcel.write(file).sheet("Sheet1").head(dataDownload.getHeaders()).doWrite(dataDownload.getData());
} catch (RuntimeException e) {

View File

@@ -7,7 +7,6 @@ import com.tencent.supersonic.common.pojo.enums.StatusEnum;
import com.tencent.supersonic.common.util.BeanMapper;
import com.tencent.supersonic.common.util.JsonUtil;
import com.tencent.supersonic.headless.api.enums.DimensionType;
import com.tencent.supersonic.headless.api.enums.IdentifyType;
import com.tencent.supersonic.headless.api.enums.MetricDefineType;
import com.tencent.supersonic.headless.api.enums.SemanticType;
import com.tencent.supersonic.headless.api.pojo.Dim;
@@ -153,18 +152,38 @@ public class ModelConverter {
&& !dim.getType().equalsIgnoreCase(DimensionType.time.name());
}
private static boolean isCreateDimension(Identify identify) {
return identify.getIsCreateDimension() == 1
&& StringUtils.isNotBlank(identify.getName());
}
private static boolean isCreateMetric(Measure measure) {
return measure.getIsCreateMetric() == 1
&& StringUtils.isNotBlank(measure.getName());
}
public static List<Dim> getDimToCreateDimension(ModelDetail modelDetail) {
if (CollectionUtils.isEmpty(modelDetail.getDimensions())) {
return Lists.newArrayList();
}
return modelDetail.getDimensions().stream()
.filter(ModelConverter::isCreateDimension)
.collect(Collectors.toList());
}
public static List<Identify> getIdentityToCreateDimension(ModelDetail modelDetail) {
if (CollectionUtils.isEmpty(modelDetail.getIdentifiers())) {
return Lists.newArrayList();
}
return modelDetail.getIdentifiers().stream()
.filter(ModelConverter::isCreateDimension)
.collect(Collectors.toList());
}
public static List<Measure> getMeasureToCreateMetric(ModelDetail modelDetail) {
if (CollectionUtils.isEmpty(modelDetail.getMeasures())) {
return Lists.newArrayList();
}
return modelDetail.getMeasures().stream()
.filter(ModelConverter::isCreateMetric)
.collect(Collectors.toList());
@@ -179,13 +198,11 @@ public class ModelConverter {
dimensionReqs = dims.stream().filter(dim -> StringUtils.isNotBlank(dim.getName()))
.map(dim -> convert(dim, modelDO)).collect(Collectors.toList());
}
List<Identify> identifies = modelDetail.getIdentifiers();
List<Identify> identifies = getIdentityToCreateDimension(modelDetail);
if (CollectionUtils.isEmpty(identifies)) {
return dimensionReqs;
}
dimensionReqs.addAll(identifies.stream()
.filter(i -> i.getType().equalsIgnoreCase(IdentifyType.primary.name()))
.filter(i -> StringUtils.isNotBlank(i.getName()))
.map(identify -> convert(identify, modelDO)).collect(Collectors.toList()));
return dimensionReqs;
}