(improvement) (semantic) add auth check and exception catch for batch download (#385)

Co-authored-by: jolunoluo
This commit is contained in:
LXW
2023-11-15 09:58:50 +08:00
committed by GitHub
parent 36c8938ff7
commit 9f09598ccd

View File

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