forked from github/dataease
Merge pull request #9614 from dataease/pr@dev-v2@fix_ds
fix(数据集): 修复数据源无效状态下,依旧查询数据没报错的问题
This commit is contained in:
commit
502e949048
@ -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);
|
||||
|
||||
|
@ -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"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user