(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

@@ -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;
}