forked from github/dataease
Merge pull request #11049 from dataease/pr@dev-v2@refactor_xpack
refactor: 数据源插件优化
This commit is contained in:
commit
ca1c3c6b58
@ -14,13 +14,14 @@ import io.dataease.datasource.manage.EngineManage;
|
||||
import io.dataease.engine.constant.ExtFieldConstant;
|
||||
import io.dataease.engine.constant.SQLConstants;
|
||||
import io.dataease.exception.DEException;
|
||||
import io.dataease.extensions.datasource.api.PluginManageApi;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableDTO;
|
||||
import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
|
||||
import io.dataease.extensions.datasource.dto.DatasourceSchemaDTO;
|
||||
import io.dataease.extensions.datasource.dto.DsTypeDTO;
|
||||
import io.dataease.extensions.datasource.model.SQLObj;
|
||||
import io.dataease.extensions.datasource.vo.DatasourceConfiguration;
|
||||
import io.dataease.extensions.datasource.vo.PluginDatasourceType;
|
||||
import io.dataease.extensions.datasource.vo.XpackPluginsDatasourceVO;
|
||||
import io.dataease.extensions.view.dto.ChartExtFilterDTO;
|
||||
import io.dataease.extensions.view.dto.ChartExtRequest;
|
||||
import io.dataease.extensions.view.dto.SqlVariableDetails;
|
||||
@ -33,6 +34,7 @@ import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
@ -54,6 +56,9 @@ public class DatasetSQLManage {
|
||||
@Resource
|
||||
private CorePermissionManage corePermissionManage;
|
||||
|
||||
@Autowired(required = false)
|
||||
private PluginManageApi pluginManage;
|
||||
|
||||
private static Logger logger = LoggerFactory.getLogger(DatasetSQLManage.class);
|
||||
|
||||
private List<SqlVariableDetails> filterParameters(ChartExtRequest chartExtRequest, Long datasetTableId) {
|
||||
@ -362,16 +367,30 @@ public class DatasetSQLManage {
|
||||
} else {
|
||||
type = datasourceSchemaDTO.getType();
|
||||
}
|
||||
|
||||
if (Arrays.stream(DatasourceConfiguration.DatasourceType.values()).map(DatasourceConfiguration.DatasourceType::getType).toList().contains(type)) {
|
||||
DatasourceConfiguration.DatasourceType datasourceType = DatasourceConfiguration.DatasourceType.valueOf(type);
|
||||
DsTypeDTO dto = new DsTypeDTO();
|
||||
BeanUtils.copyBean(dto, datasourceType);
|
||||
return dto;
|
||||
} else {
|
||||
PluginDatasourceType.DatasourceType datasourceType = PluginDatasourceType.DatasourceType.valueOf(type);
|
||||
DsTypeDTO dto = new DsTypeDTO();
|
||||
BeanUtils.copyBean(dto, datasourceType);
|
||||
return dto;
|
||||
if (pluginManage != null) {
|
||||
List<XpackPluginsDatasourceVO> xpackPluginsDatasourceVOS = pluginManage.queryPluginDs();
|
||||
List<XpackPluginsDatasourceVO> list = xpackPluginsDatasourceVOS.stream().filter(ele -> StringUtils.equals(ele.getType(), type)).toList();
|
||||
if (ObjectUtils.isNotEmpty(list)) {
|
||||
XpackPluginsDatasourceVO first = list.getFirst();
|
||||
DsTypeDTO dto = new DsTypeDTO();
|
||||
dto.setName(first.getName());
|
||||
dto.setCatalog(first.getCategory());
|
||||
dto.setType(first.getType());
|
||||
dto.setPrefix(first.getPrefix());
|
||||
dto.setSuffix(first.getSuffix());
|
||||
return dto;
|
||||
} else {
|
||||
DEException.throwException("当前数据源插件不存在");
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -32,11 +32,12 @@ import io.dataease.datasource.provider.CalciteProvider;
|
||||
import io.dataease.datasource.provider.ExcelUtils;
|
||||
import io.dataease.engine.constant.SQLConstants;
|
||||
import io.dataease.exception.DEException;
|
||||
import io.dataease.extensions.datasource.api.PluginManageApi;
|
||||
import io.dataease.extensions.datasource.dto.*;
|
||||
import io.dataease.extensions.datasource.factory.ProviderFactory;
|
||||
import io.dataease.extensions.datasource.provider.Provider;
|
||||
import io.dataease.extensions.datasource.vo.DatasourceConfiguration;
|
||||
import io.dataease.extensions.datasource.vo.PluginDatasourceType;
|
||||
import io.dataease.extensions.datasource.vo.XpackPluginsDatasourceVO;
|
||||
import io.dataease.i18n.Translator;
|
||||
import io.dataease.job.schedule.CheckDsStatusJob;
|
||||
import io.dataease.job.schedule.ScheduleManager;
|
||||
@ -55,6 +56,7 @@ import org.apache.commons.lang3.StringUtils;
|
||||
import org.quartz.JobDataMap;
|
||||
import org.quartz.JobKey;
|
||||
import org.quartz.TriggerKey;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
@ -102,6 +104,9 @@ public class DatasourceServer implements DatasourceApi {
|
||||
@Resource
|
||||
private CoreUserManage coreUserManage;
|
||||
|
||||
@Autowired(required = false)
|
||||
private PluginManageApi pluginManage;
|
||||
|
||||
@Override
|
||||
public List<DatasourceDTO> query(String keyWord) {
|
||||
return null;
|
||||
@ -853,8 +858,13 @@ public class DatasourceServer implements DatasourceApi {
|
||||
}
|
||||
|
||||
private void preCheckDs(DatasourceDTO datasource) throws DEException {
|
||||
if (!datasourceTypes().stream().map(DatasourceConfiguration.DatasourceType::getType).toList().contains(datasource.getType())
|
||||
&& !Arrays.stream(PluginDatasourceType.DatasourceType.values()).map(PluginDatasourceType.DatasourceType::getType).toList().contains(datasource.getType())) {
|
||||
List<String> list = datasourceTypes().stream().map(DatasourceConfiguration.DatasourceType::getType).collect(Collectors.toList());
|
||||
if (pluginManage != null) {
|
||||
List<XpackPluginsDatasourceVO> xpackPluginsDatasourceVOS = pluginManage.queryPluginDs();
|
||||
xpackPluginsDatasourceVOS.forEach(ele -> list.add(ele.getType()));
|
||||
}
|
||||
|
||||
if (!list.contains(datasource.getType())) {
|
||||
DEException.throwException("Datasource type not supported.");
|
||||
}
|
||||
}
|
||||
|
@ -1358,6 +1358,8 @@ const svgClass = computed(() => {
|
||||
overflow: hidden;
|
||||
vertical-align: -0.1em;
|
||||
fill: currentcolor;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
@ -0,0 +1,12 @@
|
||||
package io.dataease.extensions.datasource.api;
|
||||
|
||||
import io.dataease.extensions.datasource.vo.XpackPluginsDatasourceVO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author Junjun
|
||||
*/
|
||||
public interface PluginManageApi {
|
||||
List<XpackPluginsDatasourceVO> queryPluginDs();
|
||||
}
|
@ -1,54 +0,0 @@
|
||||
package io.dataease.extensions.datasource.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author Junjun
|
||||
*/
|
||||
@Data
|
||||
public class PluginDatasourceType extends Configuration {
|
||||
private List<String> illegalParameters;
|
||||
private List<String> showTableSqls;
|
||||
|
||||
|
||||
static public enum DatasourceType {
|
||||
hive("hive", "Apache Hive", "DL", "`", "`");
|
||||
|
||||
private String type;
|
||||
private String name;
|
||||
|
||||
private String catalog;
|
||||
private String prefix;
|
||||
private String suffix;
|
||||
|
||||
DatasourceType(String type, String name, String catalog, String prefix, String suffix) {
|
||||
this.type = type;
|
||||
this.name = name;
|
||||
this.catalog = catalog;
|
||||
this.prefix = prefix;
|
||||
this.suffix = suffix;
|
||||
}
|
||||
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public String getCatalog() {
|
||||
return catalog;
|
||||
}
|
||||
|
||||
public String getPrefix() {
|
||||
return prefix;
|
||||
}
|
||||
|
||||
public String getSuffix() {
|
||||
return suffix;
|
||||
}
|
||||
}
|
||||
}
|
@ -23,6 +23,10 @@ public class XpackPluginsDatasourceVO implements Serializable {
|
||||
|
||||
private String extraParams;
|
||||
|
||||
private String prefix;
|
||||
|
||||
private String suffix;
|
||||
|
||||
private Map<String, String> staticMap;
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user