Merge pull request #9614 from dataease/pr@dev-v2@fix_ds

fix(数据集): 修复数据源无效状态下,依旧查询数据没报错的问题
This commit is contained in:
Junjun 2024-05-11 17:33:16 +08:00 committed by GitHub
commit 502e949048
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 36 additions and 0 deletions

View File

@ -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<Long, DatasourceSchemaDTO> dsMap = (Map<Long, DatasourceSchemaDTO>) sqlMap.get("dsMap");
DatasourceUtils.checkDsStatus(dsMap);
List<String> dsList = new ArrayList<>();
for (Map.Entry<Long, DatasourceSchemaDTO> 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);

View File

@ -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<Long, DatasourceSchemaDTO> dsMap) {
if (ObjectUtils.isEmpty(dsMap)) {
DEException.throwException(Translator.get("i18n_datasource_delete"));
}
for (Map.Entry<Long, DatasourceSchemaDTO> next : dsMap.entrySet()) {
DatasourceSchemaDTO ds = next.getValue();
if (StringUtils.isNotEmpty(ds.getStatus()) && "Error".equalsIgnoreCase(ds.getStatus())) {
DEException.throwException(Translator.get("i18n_invalid_ds"));
}
}
}
}