From d19476ad076b0b5fe041a902b2b14fcf7da37147 Mon Sep 17 00:00:00 2001 From: junjun Date: Sat, 11 May 2024 17:31:45 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E6=95=B0=E6=8D=AE=E9=9B=86):=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E6=95=B0=E6=8D=AE=E6=BA=90=E6=97=A0=E6=95=88=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E4=B8=8B=EF=BC=8C=E4=BE=9D=E6=97=A7=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=B2=A1=E6=8A=A5=E9=94=99=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dataset/manage/DatasetDataManage.java | 10 +++++++ .../datasource/utils/DatasourceUtils.java | 26 +++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 core/core-backend/src/main/java/io/dataease/datasource/utils/DatasourceUtils.java diff --git a/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetDataManage.java b/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetDataManage.java index 69ac7cd5fa..e82b8aa48e 100644 --- a/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetDataManage.java +++ b/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetDataManage.java @@ -27,6 +27,7 @@ import io.dataease.datasource.dao.auto.mapper.CoreDatasourceMapper; import io.dataease.datasource.manage.EngineManage; import io.dataease.datasource.provider.CalciteProvider; import io.dataease.datasource.request.DatasourceRequest; +import io.dataease.datasource.utils.DatasourceUtils; import io.dataease.dto.dataset.DatasetTableFieldDTO; import io.dataease.engine.constant.ExtFieldConstant; import io.dataease.engine.constant.SQLConstants; @@ -91,6 +92,9 @@ public class DatasetDataManage { if (StringUtils.equalsIgnoreCase("excel", coreDatasource.getType()) || StringUtils.equalsIgnoreCase("api", coreDatasource.getType())) { coreDatasource = engineManage.getDeEngine(); } + if (StringUtils.isNotEmpty(coreDatasource.getStatus()) && "Error".equalsIgnoreCase(coreDatasource.getStatus())) { + DEException.throwException(Translator.get("i18n_invalid_ds")); + } BeanUtils.copyBean(datasourceSchemaDTO, coreDatasource); datasourceSchemaDTO.setSchemaAlias(String.format(SQLConstants.SCHEMA, datasourceSchemaDTO.getId())); @@ -181,6 +185,7 @@ public class DatasetDataManage { buildFieldName(sqlMap, fields); Map dsMap = (Map) sqlMap.get("dsMap"); + DatasourceUtils.checkDsStatus(dsMap); List dsList = new ArrayList<>(); for (Map.Entry next : dsMap.entrySet()) { dsList.add(next.getValue().getType()); @@ -301,6 +306,11 @@ public class DatasetDataManage { } else { BeanUtils.copyBean(datasourceSchemaDTO, coreDatasource); } + + if (StringUtils.isNotEmpty(datasourceSchemaDTO.getStatus()) && "Error".equalsIgnoreCase(datasourceSchemaDTO.getStatus())) { + DEException.throwException(Translator.get("i18n_invalid_ds")); + } + String alias = String.format(SQLConstants.SCHEMA, datasourceSchemaDTO.getId()); datasourceSchemaDTO.setSchemaAlias(alias); diff --git a/core/core-backend/src/main/java/io/dataease/datasource/utils/DatasourceUtils.java b/core/core-backend/src/main/java/io/dataease/datasource/utils/DatasourceUtils.java new file mode 100644 index 0000000000..e336b10c4d --- /dev/null +++ b/core/core-backend/src/main/java/io/dataease/datasource/utils/DatasourceUtils.java @@ -0,0 +1,26 @@ +package io.dataease.datasource.utils; + +import io.dataease.dataset.dto.DatasourceSchemaDTO; +import io.dataease.exception.DEException; +import io.dataease.i18n.Translator; +import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringUtils; + +import java.util.Map; + +/** + * @Author Junjun + */ +public class DatasourceUtils { + public static void checkDsStatus(Map dsMap) { + if (ObjectUtils.isEmpty(dsMap)) { + DEException.throwException(Translator.get("i18n_datasource_delete")); + } + for (Map.Entry next : dsMap.entrySet()) { + DatasourceSchemaDTO ds = next.getValue(); + if (StringUtils.isNotEmpty(ds.getStatus()) && "Error".equalsIgnoreCase(ds.getStatus())) { + DEException.throwException(Translator.get("i18n_invalid_ds")); + } + } + } +}