mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-12 20:51:48 +00:00
(improvement)(headless) Remove redundant user dimensions in demo data (#663)
Co-authored-by: jolunoluo
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user