From 8aa0bf2153f46318a4a60c918fe429cd21b5ec2b Mon Sep 17 00:00:00 2001 From: taojinlong Date: Tue, 31 May 2022 19:03:27 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=A1=8C=E6=9D=83=E9=99=90=E6=9E=9A?= =?UTF-8?q?=E4=B8=BE=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dataset/DataSetTableFieldController.java | 8 +++---- .../service/dataset/DataSetFieldService.java | 4 ++-- .../impl/direct/DirectFieldService.java | 24 +++++++++---------- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/backend/src/main/java/io/dataease/controller/dataset/DataSetTableFieldController.java b/backend/src/main/java/io/dataease/controller/dataset/DataSetTableFieldController.java index dcf6bc6c74..3f75355a5d 100644 --- a/backend/src/main/java/io/dataease/controller/dataset/DataSetTableFieldController.java +++ b/backend/src/main/java/io/dataease/controller/dataset/DataSetTableFieldController.java @@ -159,7 +159,7 @@ public class DataSetTableFieldController { public List multFieldValues(@RequestBody MultFieldValuesRequest multFieldValuesRequest) throws Exception { List results = new ArrayList<>(); for (String fieldId : multFieldValuesRequest.getFieldIds()) { - List fieldValues = dataSetFieldService.fieldValues(fieldId, multFieldValuesRequest.getUserId(), true); + List fieldValues = dataSetFieldService.fieldValues(fieldId, multFieldValuesRequest.getUserId(), true, false); if (CollectionUtil.isNotEmpty(fieldValues)) { results.addAll(fieldValues); } @@ -185,13 +185,13 @@ public class DataSetTableFieldController { DecodedJWT jwt = JWT.decode(linkToken); Long userId = jwt.getClaim("userId").asLong(); multFieldValuesRequest.setUserId(userId); - return dataSetFieldService.fieldValues(multFieldValuesRequest.getFieldIds(), multFieldValuesRequest.getUserId(), true, true); + return dataSetFieldService.fieldValues(multFieldValuesRequest.getFieldIds(), multFieldValuesRequest.getUserId(), true, true,false); } @ApiIgnore @PostMapping("mappingFieldValues") public List mappingFieldValues(@RequestBody MultFieldValuesRequest multFieldValuesRequest) throws Exception { - return dataSetFieldService.fieldValues(multFieldValuesRequest.getFieldIds(), multFieldValuesRequest.getUserId(), true, true); + return dataSetFieldService.fieldValues(multFieldValuesRequest.getFieldIds(), multFieldValuesRequest.getUserId(), true, true, false); } @ApiIgnore @@ -199,7 +199,7 @@ public class DataSetTableFieldController { public List multFieldValuesForPermissions(@RequestBody MultFieldValuesRequest multFieldValuesRequest) throws Exception { List results = new ArrayList<>(); for (String fieldId : multFieldValuesRequest.getFieldIds()) { - List fieldValues = dataSetFieldService.fieldValues(fieldId, multFieldValuesRequest.getUserId(), false); + List fieldValues = dataSetFieldService.fieldValues(fieldId, multFieldValuesRequest.getUserId(), false, true); if (CollectionUtil.isNotEmpty(fieldValues)) { results.addAll(fieldValues); } diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetFieldService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetFieldService.java index 4e5e59449b..e2b580dbe3 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetFieldService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetFieldService.java @@ -5,7 +5,7 @@ import java.util.List; public interface DataSetFieldService { - List fieldValues(String fieldId, Long userId, Boolean userPermissions) throws Exception; + List fieldValues(String fieldId, Long userId, Boolean userPermissions, Boolean rowAndColumnMgm) throws Exception; - List fieldValues(List fieldIds, Long userId, Boolean userPermissions, Boolean needMapping) throws Exception; + List fieldValues(List fieldIds, Long userId, Boolean userPermissions, Boolean needMapping, Boolean rowAndColumnMgm) throws Exception; } diff --git a/backend/src/main/java/io/dataease/service/dataset/impl/direct/DirectFieldService.java b/backend/src/main/java/io/dataease/service/dataset/impl/direct/DirectFieldService.java index 73ecc9f28f..e719621141 100644 --- a/backend/src/main/java/io/dataease/service/dataset/impl/direct/DirectFieldService.java +++ b/backend/src/main/java/io/dataease/service/dataset/impl/direct/DirectFieldService.java @@ -45,14 +45,14 @@ public class DirectFieldService implements DataSetFieldService { private EngineService engineService; @Override - public List fieldValues(String fieldId, Long userId, Boolean userPermissions) throws Exception { + public List fieldValues(String fieldId, Long userId, Boolean userPermissions, Boolean rowAndColumnMgm) throws Exception { List filedIds = new ArrayList<>(); filedIds.add(fieldId); - return fieldValues(filedIds, userId, userPermissions, false); + return fieldValues(filedIds, userId, userPermissions, false, rowAndColumnMgm); } @Override - public List fieldValues(List fieldIds, Long userId, Boolean userPermissions, Boolean needMapping) throws Exception { + public List fieldValues(List fieldIds, Long userId, Boolean userPermissions, Boolean needMapping, Boolean rowAndColumnMgm) throws Exception { String fieldId = fieldIds.get(0); DatasetTableField field = dataSetTableFieldsService.selectByPrimaryKey(fieldId); if (field == null || StringUtils.isEmpty(field.getTableId())) return null; @@ -70,22 +70,15 @@ public class DirectFieldService implements DataSetFieldService { List permissionFields = fields; List customFilter = new ArrayList<>(); - if(userPermissions){ + if (userPermissions) { //列权限 List desensitizationList = new ArrayList<>(); fields = permissionService.filterColumnPermissons(fields, desensitizationList, datasetTable.getId(), userId); - Map fieldMap = fields.stream().collect(Collectors.toMap(DatasetTableField::getId, node -> node)); permissionFields = fieldIds.stream().map(fieldMap::get).collect(Collectors.toList()); - //permissionFields = fields.stream().filter(node -> fieldIds.stream().anyMatch(item -> StringUtils.equals(node.getId(), item))).collect(Collectors.toList()); - if (CollectionUtils.isEmpty(permissionFields)) { return new ArrayList<>(); } - //禁用的 - /*if(!fields.stream().map(DatasetTableField::getId).collect(Collectors.toList()).contains(fieldId)){ - return new ArrayList<>(); - }*/ if (CollectionUtils.isNotEmpty(desensitizationList) && desensitizationList.contains(field.getDataeaseName())) { List results = new ArrayList<>(); results.add(ColumnPermissionConstants.Desensitization_desc); @@ -94,6 +87,13 @@ public class DirectFieldService implements DataSetFieldService { //行权限 customFilter = permissionService.getCustomFilters(fields, datasetTable, userId); } + if (rowAndColumnMgm) { + Map fieldMap = fields.stream().collect(Collectors.toMap(DatasetTableField::getId, node -> node)); + permissionFields = fieldIds.stream().map(fieldMap::get).collect(Collectors.toList()); + if (CollectionUtils.isEmpty(permissionFields)) { + return new ArrayList<>(); + } + } DatasourceRequest datasourceRequest = new DatasourceRequest(); Provider datasourceProvider = null; @@ -148,7 +148,7 @@ public class DirectFieldService implements DataSetFieldService { } - private List buildTreeNode(String [] row, Set pkSet) { + private List buildTreeNode(String[] row, Set pkSet) { List nodes = new ArrayList<>(); List parentPkList = new ArrayList<>(); for (int i = 0; i < row.length; i++) {