fix(图表): 明细表脱敏字段未显示

This commit is contained in:
wisonic-s 2024-07-01 22:07:12 +08:00
parent 349d98f2a4
commit 6633efd536

View File

@ -104,10 +104,6 @@ public class ChartDataManage {
DEException.throwException(ResultCode.DATA_IS_WRONG.code(), Translator.get("i18n_chart_not_handler") + ": " + view.getRender() + "," + view.getType());
}
AxisFormatResult formatResult = chartHandler.formatAxis(view);
var xAxis = formatResult.getAxisMap().get(ChartAxis.xAxis);
var yAxis = formatResult.getAxisMap().get(ChartAxis.yAxis);
DatasetGroupInfoDTO table = datasetGroupManage.getDatasetGroupInfoDTO(view.getTableId(), null);
if (table == null) {
DEException.throwException(ResultCode.DATA_IS_WRONG.code(), Translator.get("i18n_no_ds"));
@ -122,7 +118,6 @@ public class ChartDataManage {
}
List<ChartViewFieldDTO> allFields = getAllChartFields(view);
formatResult.getContext().put("allFields", allFields);
// column permission
Map<String, ColumnPermissionItem> desensitizationList = new HashMap<>();
List<DatasetTableFieldDTO> columnPermissionFields = permissionManage.filterColumnPermissions(transFields(allFields), desensitizationList, table.getId(), chartExtRequest.getUser());
@ -130,13 +125,18 @@ public class ChartDataManage {
List<DataSetRowPermissionsTreeDTO> rowPermissionsTree = permissionManage.getRowPermissionsTree(table.getId(), chartExtRequest.getUser());
//将没有权限的列删掉
List<String> dataeaseNames = columnPermissionFields.stream().map(DatasetTableFieldDTO::getDataeaseName).collect(Collectors.toList());
dataeaseNames.add("*");
AxisFormatResult formatResult = chartHandler.formatAxis(view);
formatResult.getContext().put("desensitizationList", desensitizationList);
var xAxis = formatResult.getAxisMap().get(ChartAxis.xAxis);
var yAxis = formatResult.getAxisMap().get(ChartAxis.yAxis);
formatResult.getContext().put("allFields", allFields);
var axisMap = formatResult.getAxisMap();
axisMap.forEach((axis, fields) -> {
Iterator<ChartViewFieldDTO> iterator = fields.iterator();
while (iterator.hasNext()) {
ChartViewFieldDTO fieldDTO = iterator.next();
if (desensitizationList.containsKey(fieldDTO.getDataeaseName()) || !dataeaseNames.contains(fieldDTO.getDataeaseName())) {
if (!dataeaseNames.contains(fieldDTO.getDataeaseName())) {
iterator.remove();
}
}
@ -356,7 +356,6 @@ public class ChartDataManage {
filterResult.getContext().put("querySql", querySql);
}
ChartCalcDataResult calcResult = chartHandler.calcChartResult(view, formatResult, filterResult, sqlMap, sqlMeta, calciteProvider);
formatResult.getContext().put("desensitizationList", desensitizationList);
return chartHandler.buildChart(view, calcResult, formatResult, filterResult);
}