mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-13 13:07:32 +00:00
(improvement) (semantic) add auth check and exception catch for batch download (#385)
Co-authored-by: jolunoluo
This commit is contained in:
@@ -132,17 +132,35 @@ public class DownloadServiceImpl implements DownloadService {
|
|||||||
MetricSchemaResp metricSchemaResp = metrics.get(0);
|
MetricSchemaResp metricSchemaResp = metrics.get(0);
|
||||||
List<DimSchemaResp> dimensions = getMetricRelaDimensions(metricSchemaResp, dimensionRespMap);
|
List<DimSchemaResp> dimensions = getMetricRelaDimensions(metricSchemaResp, dimensionRespMap);
|
||||||
for (MetricSchemaResp metric : metrics) {
|
for (MetricSchemaResp metric : metrics) {
|
||||||
DataDownload downloadData = getSingleMetricDownloadData(metric, dimensions,
|
try {
|
||||||
batchDownloadReq.getDateInfo(), user);
|
DataDownload downloadData = getSingleMetricDownloadData(metric, dimensions,
|
||||||
WriteSheet writeSheet = EasyExcel.writerSheet("Sheet" + sheetCount)
|
batchDownloadReq.getDateInfo(), user);
|
||||||
.head(downloadData.getHeaders()).build();
|
WriteSheet writeSheet = EasyExcel.writerSheet("Sheet" + sheetCount)
|
||||||
excelWriter.write(downloadData.getData(), writeSheet);
|
.head(downloadData.getHeaders()).build();
|
||||||
|
excelWriter.write(downloadData.getData(), writeSheet);
|
||||||
|
} catch (RuntimeException e) {
|
||||||
|
EasyExcel.write(file).sheet("Sheet1").head(buildErrMessageHead())
|
||||||
|
.doWrite(buildErrMessageData(e.getMessage()));
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
sheetCount++;
|
sheetCount++;
|
||||||
}
|
}
|
||||||
excelWriter.finish();
|
excelWriter.finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<List<String>> buildErrMessageHead() {
|
||||||
|
List<List<String>> headers = Lists.newArrayList();
|
||||||
|
headers.add(Lists.newArrayList("异常提示"));
|
||||||
|
return headers;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<List<String>> buildErrMessageData(String errMsg) {
|
||||||
|
List<List<String>> data = Lists.newArrayList();
|
||||||
|
data.add(Lists.newArrayList(errMsg));
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
public DataDownload getSingleMetricDownloadData(MetricSchemaResp metricSchemaResp, List<DimSchemaResp> dimensions,
|
public DataDownload getSingleMetricDownloadData(MetricSchemaResp metricSchemaResp, List<DimSchemaResp> dimensions,
|
||||||
DateConf dateConf, User user) throws Exception {
|
DateConf dateConf, User user) throws Exception {
|
||||||
QueryResultWithSchemaResp queryResult = getQueryResult(dimensions, metricSchemaResp, dateConf, user);
|
QueryResultWithSchemaResp queryResult = getQueryResult(dimensions, metricSchemaResp, dateConf, user);
|
||||||
@@ -202,6 +220,7 @@ public class DownloadServiceImpl implements DownloadService {
|
|||||||
queryStructReq.setAggregators(Lists.newArrayList(aggregator));
|
queryStructReq.setAggregators(Lists.newArrayList(aggregator));
|
||||||
queryStructReq.setDateInfo(dateConf);
|
queryStructReq.setDateInfo(dateConf);
|
||||||
queryStructReq.setModelId(metricResp.getModelId());
|
queryStructReq.setModelId(metricResp.getModelId());
|
||||||
|
queryStructReq.setLimit(10000L);
|
||||||
return queryService.queryByStructWithAuth(queryStructReq, user);
|
return queryService.queryByStructWithAuth(queryStructReq, user);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user