From 6b6eda00c8dc72960089f781d881b9292423fde3 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Wed, 25 Oct 2023 16:42:08 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=95=B0=E6=8D=AE=E6=BA=90=E7=A7=BB?= =?UTF-8?q?=E5=8A=A8=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../datasource/server/DatasourceServer.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java b/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java index 954dd2d05c..e7373c95a3 100644 --- a/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java +++ b/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java @@ -19,8 +19,6 @@ import io.dataease.api.permissions.user.vo.UserFormVO; import io.dataease.commons.constants.TaskStatus; import io.dataease.commons.utils.CommonThreadPool; import io.dataease.constant.DataSourceType; -import io.dataease.dataset.dao.auto.entity.CoreDatasetTable; -import io.dataease.dataset.dao.auto.mapper.CoreDatasetTableMapper; import io.dataease.dataset.dto.DatasourceSchemaDTO; import io.dataease.dataset.manage.DatasetDataManage; import io.dataease.dataset.utils.TableUtils; @@ -109,6 +107,14 @@ public class DatasourceServer implements DatasourceApi { private boolean isUpdatingStatus = false; + private void getParents(Long pid, List ids) { + CoreDatasource parent = datasourceMapper.selectById(pid);// 查找父级folder + ids.add(parent.getId()); + if (parent.getPid() != null && parent.getPid() != 0) { + getParents(parent.getPid(), ids); + } + } + public void move(DatasourceDTO dataSourceDTO) throws DEException { switch (dataSourceDTO.getAction()) { case "move" -> { @@ -116,7 +122,12 @@ public class DatasourceServer implements DatasourceApi { DEException.throwException("目录必选!"); } if (Objects.equals(dataSourceDTO.getId(), dataSourceDTO.getPid())) { - DEException.throwException("pid can not equal to id."); + DEException.throwException(Translator.get("i18n_pid_not_eq_id")); + } + List ids = new ArrayList<>(); + getParents(dataSourceDTO.getPid(), ids); + if (ids.contains(dataSourceDTO.getId())) { + DEException.throwException(Translator.get("i18n_pid_not_eq_id")); } dataSourceManage.move(dataSourceDTO); }