From ab5b117e00365ad960951660a28fef39d2560b29 Mon Sep 17 00:00:00 2001 From: junjun Date: Fri, 5 Jul 2024 15:39:49 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9Ecopilot=E6=89=80?= =?UTF-8?q?=E9=9C=80=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manage/DatasetTableFieldManage.java | 28 +++++++++++++++++++ .../dataset/server/DatasetFieldServer.java | 5 ++++ .../dataease/api/dataset/DatasetTableApi.java | 4 +++ 3 files changed, 37 insertions(+) diff --git a/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetTableFieldManage.java b/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetTableFieldManage.java index cb5b760ef0..30c1051e7d 100644 --- a/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetTableFieldManage.java +++ b/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetTableFieldManage.java @@ -1,6 +1,7 @@ package io.dataease.dataset.manage; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import io.dataease.api.dataset.union.DatasetGroupInfoDTO; import io.dataease.dataset.dao.auto.entity.CoreDatasetTableField; import io.dataease.dataset.dao.auto.mapper.CoreDatasetTableFieldMapper; import io.dataease.dataset.utils.TableUtils; @@ -9,6 +10,7 @@ import io.dataease.engine.func.FunctionConstant; import io.dataease.engine.utils.Utils; import io.dataease.exception.DEException; import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO; +import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO; import io.dataease.extensions.datasource.model.SQLObj; import io.dataease.extensions.view.dto.ColumnPermissionItem; import io.dataease.i18n.Translator; @@ -35,6 +37,10 @@ public class DatasetTableFieldManage { private CoreDatasetTableFieldMapper coreDatasetTableFieldMapper; @Resource private PermissionManage permissionManage; + @Resource + private DatasetSQLManage datasetSQLManage; + @Resource + private DatasetGroupManage datasetGroupManage; public void save(CoreDatasetTableField coreDatasetTableField) { checkNameLength(coreDatasetTableField.getName()); @@ -199,6 +205,28 @@ public class DatasetTableFieldManage { return map; } + public Map> copilotFields(Long id) throws Exception { + DatasetGroupInfoDTO datasetGroupInfoDTO = datasetGroupManage.get(id, null); + Map sqlMap = datasetSQLManage.getUnionSQLForEdit(datasetGroupInfoDTO, null); + Map dsMap = (Map) sqlMap.get("dsMap"); + boolean crossDs = Utils.isCrossDs(dsMap); + if (crossDs) { + DEException.throwException("跨源数据集不支持该功能"); + } + + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("dataset_group_id", id); + wrapper.eq("checked", true); + wrapper.eq("ext_field", 0); + List list = transDTO(coreDatasetTableFieldMapper.selectList(wrapper)); + List dimensionList = list.stream().filter(ele -> StringUtils.equalsIgnoreCase(ele.getGroupType(), "d")).collect(Collectors.toList()); + List quotaList = list.stream().filter(ele -> StringUtils.equalsIgnoreCase(ele.getGroupType(), "q")).collect(Collectors.toList()); + Map> map = new LinkedHashMap<>(); + map.put("dimensionList", dimensionList); + map.put("quotaList", quotaList); + return map; + } + public List listFieldsWithPermissions(Long id) { List fields = selectByDatasetGroupId(id); Map desensitizationList = new HashMap<>(); diff --git a/core/core-backend/src/main/java/io/dataease/dataset/server/DatasetFieldServer.java b/core/core-backend/src/main/java/io/dataease/dataset/server/DatasetFieldServer.java index fbab37b117..1c5b91b07f 100644 --- a/core/core-backend/src/main/java/io/dataease/dataset/server/DatasetFieldServer.java +++ b/core/core-backend/src/main/java/io/dataease/dataset/server/DatasetFieldServer.java @@ -58,6 +58,11 @@ public class DatasetFieldServer implements DatasetTableApi { return datasetTableFieldManage.listByDQ(id); } + @Override + public Map> copilotFields(Long id) throws Exception { + return datasetTableFieldManage.copilotFields(id); + } + @Override public List listFieldsWithPermissions(Long id) { return datasetTableFieldManage.listFieldsWithPermissionsRemoveAgg(id); diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/dataset/DatasetTableApi.java b/sdk/api/api-base/src/main/java/io/dataease/api/dataset/DatasetTableApi.java index 8ae45e36e8..ff3e80856d 100644 --- a/sdk/api/api-base/src/main/java/io/dataease/api/dataset/DatasetTableApi.java +++ b/sdk/api/api-base/src/main/java/io/dataease/api/dataset/DatasetTableApi.java @@ -52,6 +52,10 @@ public interface DatasetTableApi { @PostMapping("listByDQ/{id}") Map> listByDQ(@PathVariable Long id); + @Operation(summary = "获取copilot字段分组") + @PostMapping("copilotFields/{id}") + Map> copilotFields(@PathVariable Long id) throws Exception; + @Operation(summary = "获取字段") @GetMapping("listWithPermissions/{id}") List listFieldsWithPermissions(@PathVariable Long id);