diff --git a/backend/src/main/java/io/dataease/plugins/server/RowPermissionsController.java b/backend/src/main/java/io/dataease/plugins/server/RowPermissionsController.java index 378429c9b0..dda5bac8ec 100644 --- a/backend/src/main/java/io/dataease/plugins/server/RowPermissionsController.java +++ b/backend/src/main/java/io/dataease/plugins/server/RowPermissionsController.java @@ -22,7 +22,7 @@ public class RowPermissionsController { rowPermissionService.save(datasetRowPermissions); } - @ApiOperation("分页查询") + @ApiOperation("查询") @PostMapping("/list") public List rowPermissions(@RequestBody XpackSysAuthDetailDTO request) { RowPermissionService rowPermissionService = SpringContextUtil.getBean(RowPermissionService.class); diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java index b777adb765..6b4b6b36c7 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -470,19 +470,24 @@ public class DataSetTableService { public List getCustomFilters(List fields, DatasetTable datasetTable, Long user) { List customFilter = new ArrayList<>(); rowPermissions(datasetTable.getId(), user).forEach(datasetRowPermissions -> { - List lists = JSONObject.parseArray(datasetRowPermissions.getFilter(), ChartCustomFilterItemDTO.class); ChartFieldCustomFilterDTO dto = new ChartFieldCustomFilterDTO(); DatasetTableField field = getFieldById(fields, datasetRowPermissions.getDatasetFieldId()); - lists.forEach(chartCustomFilterDTO -> { - chartCustomFilterDTO.setFieldId(field.getId()); - }); - if (field != null) { - dto.setFilter(lists); - dto.setField(field); - dto.setId(field.getId()); - dto.setLogic(datasetRowPermissions.getLogic()); + dto.setField(field); + dto.setId(field.getId()); + dto.setFilterType(datasetRowPermissions.getFilterType()); + if(datasetRowPermissions.getFilterType().equalsIgnoreCase("logic")){ + List lists = JSONObject.parseArray(datasetRowPermissions.getFilter(), ChartCustomFilterItemDTO.class); + lists.forEach(chartCustomFilterDTO -> { chartCustomFilterDTO.setFieldId(field.getId()); }); + if (field != null) { + dto.setFilter(lists); + dto.setLogic(datasetRowPermissions.getLogic()); + customFilter.add(dto); + } + }else { + dto.setEnumCheckField(Arrays.asList(datasetRowPermissions.getEnumCheckField().split(",").clone())); customFilter.add(dto); } + }); return customFilter; } diff --git a/backend/src/main/resources/db/migration/V29__de1.6.sql b/backend/src/main/resources/db/migration/V29__de1.6.sql index 2c13a86e86..69637e3179 100644 --- a/backend/src/main/resources/db/migration/V29__de1.6.sql +++ b/backend/src/main/resources/db/migration/V29__de1.6.sql @@ -4,8 +4,10 @@ CREATE TABLE `dataset_row_permissions` ( `auth_target_id` bigint(20) DEFAULT NULL COMMENT '权限对象ID', `dataset_id` varchar(64) DEFAULT NULL COMMENT '数据集ID', `dataset_field_id` varchar(64) DEFAULT NULL COMMENT '数据集字段ID', + `filter_type` varchar(64) DEFAULT NULL COMMENT '过滤类型:逻辑、枚举', `logic` varchar(64) DEFAULT NULL COMMENT '与/或', `filter` longtext DEFAULT NULL COMMENT '数值', + `enum_check_field` longtext DEFAULT NULL COMMENT '枚举值', `update_time` bigint(13) NULL DEFAULT NULL, PRIMARY KEY (`id`) )ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; diff --git a/backend/src/main/resources/generatorConfig.xml b/backend/src/main/resources/generatorConfig.xml index 4cb216a624..5de60adbf5 100644 --- a/backend/src/main/resources/generatorConfig.xml +++ b/backend/src/main/resources/generatorConfig.xml @@ -60,8 +60,6 @@ - -
- +