Merge pull request #10645 from dataease/pr@dev-v2@fixDS

fix: 修复社区版数据源重名校验失败
This commit is contained in:
taojinlong 2024-07-01 13:00:56 +08:00 committed by GitHub
commit 7e50a983c9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 23 additions and 12 deletions

View File

@ -3,6 +3,7 @@ package io.dataease.datasource.manage;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import io.dataease.commons.constants.OptConstants; import io.dataease.commons.constants.OptConstants;
import io.dataease.commons.constants.TaskStatus;
import io.dataease.constant.DataSourceType; import io.dataease.constant.DataSourceType;
import io.dataease.datasource.dao.auto.entity.CoreDatasource; import io.dataease.datasource.dao.auto.entity.CoreDatasource;
import io.dataease.datasource.dao.auto.mapper.CoreDatasourceMapper; import io.dataease.datasource.dao.auto.mapper.CoreDatasourceMapper;
@ -74,13 +75,16 @@ public class DataSourceManage {
@XpackInteract(value = "datasourceResourceTree", before = false) @XpackInteract(value = "datasourceResourceTree", before = false)
public void innerSave(CoreDatasource coreDatasource) { public void innerSave(DatasourceDTO dataSourceDTO) {
checkName(coreDatasource); CoreDatasource coreDatasource = new CoreDatasource();
coreDatasource.setTaskStatus(TaskStatus.WaitingForExecution.name());
BeanUtils.copyBean(coreDatasource, dataSourceDTO);
checkName(dataSourceDTO);
coreDatasourceMapper.insert(coreDatasource); coreDatasourceMapper.insert(coreDatasource);
coreOptRecentManage.saveOpt(coreDatasource.getId(), OptConstants.OPT_RESOURCE_TYPE.DATASOURCE, OptConstants.OPT_TYPE.NEW); coreOptRecentManage.saveOpt(coreDatasource.getId(), OptConstants.OPT_RESOURCE_TYPE.DATASOURCE, OptConstants.OPT_TYPE.NEW);
} }
public void checkName(CoreDatasource dto) { public void checkName(DatasourceDTO dto) {
QueryWrapper<CoreDatasource> wrapper = new QueryWrapper<>(); QueryWrapper<CoreDatasource> wrapper = new QueryWrapper<>();
if (ObjectUtils.isNotEmpty(dto.getPid())) { if (ObjectUtils.isNotEmpty(dto.getPid())) {
wrapper.eq("pid", dto.getPid()); wrapper.eq("pid", dto.getPid());
@ -91,8 +95,13 @@ public class DataSourceManage {
if (ObjectUtils.isNotEmpty(dto.getId())) { if (ObjectUtils.isNotEmpty(dto.getId())) {
wrapper.ne("id", dto.getId()); wrapper.ne("id", dto.getId());
} }
if (ObjectUtils.isNotEmpty(dto.getType()) && dto.getType().equalsIgnoreCase("folder")) { if (ObjectUtils.isNotEmpty(dto.getNodeType()) ) {
wrapper.ne("type", dto.getType()); if(dto.getNodeType().equalsIgnoreCase("folder")){
wrapper.eq("type", dto.getType());
}else {
wrapper.ne("type", "folder");
}
} }
List<CoreDatasource> list = coreDatasourceMapper.selectList(wrapper); List<CoreDatasource> list = coreDatasourceMapper.selectList(wrapper);
if (list.size() > 0) { if (list.size() > 0) {
@ -131,7 +140,7 @@ public class DataSourceManage {
sourceData.setUpdateBy(AuthUtils.getUser().getUserId()); sourceData.setUpdateBy(AuthUtils.getUser().getUserId());
sourceData.setPid(dataSourceDTO.getPid()); sourceData.setPid(dataSourceDTO.getPid());
sourceData.setName(dataSourceDTO.getName()); sourceData.setName(dataSourceDTO.getName());
checkName(sourceData); checkName(dataSourceDTO);
coreDatasourceMapper.updateById(sourceData); coreDatasourceMapper.updateById(sourceData);
coreOptRecentManage.saveOpt(sourceData.getId(), OptConstants.OPT_RESOURCE_TYPE.DATASOURCE, OptConstants.OPT_TYPE.UPDATE); coreOptRecentManage.saveOpt(sourceData.getId(), OptConstants.OPT_RESOURCE_TYPE.DATASOURCE, OptConstants.OPT_TYPE.UPDATE);
} }
@ -139,7 +148,7 @@ public class DataSourceManage {
public DatasourceDTO getDs(Long id) { public DatasourceDTO getDs(Long id) {
CoreDatasource coreDatasource = coreDatasourceMapper.selectById(id); CoreDatasource coreDatasource = coreDatasourceMapper.selectById(id);
DatasourceDTO dto = new DatasourceDTO(); DatasourceDTO dto = new DatasourceDTO();
BeanUtils.copyBean(dto,coreDatasource); BeanUtils.copyBean(dto, coreDatasource);
return dto; return dto;
} }
} }

View File

@ -217,6 +217,7 @@ public class DatasourceServer implements DatasourceApi {
} }
CoreDatasource datasource = datasourceMapper.selectById(dataSourceDTO.getId()); CoreDatasource datasource = datasourceMapper.selectById(dataSourceDTO.getId());
datasource.setName(dataSourceDTO.getName()); datasource.setName(dataSourceDTO.getName());
dataSourceManage.checkName(dataSourceDTO);
dataSourceManage.innerEdit(datasource); dataSourceManage.innerEdit(datasource);
return dataSourceDTO; return dataSourceDTO;
} }
@ -229,10 +230,7 @@ public class DatasourceServer implements DatasourceApi {
dataSourceDTO.setType(dataSourceDTO.getNodeType()); dataSourceDTO.setType(dataSourceDTO.getNodeType());
dataSourceDTO.setId(IDUtils.snowID()); dataSourceDTO.setId(IDUtils.snowID());
dataSourceDTO.setConfiguration(""); dataSourceDTO.setConfiguration("");
CoreDatasource coreDatasource = new CoreDatasource(); dataSourceManage.innerSave(dataSourceDTO);
coreDatasource.setTaskStatus(TaskStatus.WaitingForExecution.name());
BeanUtils.copyBean(coreDatasource, dataSourceDTO);
dataSourceManage.innerSave(coreDatasource);
return dataSourceDTO; return dataSourceDTO;
} }
@ -261,7 +259,7 @@ public class DatasourceServer implements DatasourceApi {
CoreDatasource coreDatasource = new CoreDatasource(); CoreDatasource coreDatasource = new CoreDatasource();
BeanUtils.copyBean(coreDatasource, dataSourceDTO); BeanUtils.copyBean(coreDatasource, dataSourceDTO);
dataSourceManage.innerSave(coreDatasource); dataSourceManage.innerSave(dataSourceDTO);
if (dataSourceDTO.getType().equals(DatasourceConfiguration.DatasourceType.Excel.name())) { if (dataSourceDTO.getType().equals(DatasourceConfiguration.DatasourceType.Excel.name())) {
DatasourceRequest datasourceRequest = new DatasourceRequest(); DatasourceRequest datasourceRequest = new DatasourceRequest();
@ -399,6 +397,7 @@ public class DatasourceServer implements DatasourceApi {
} }
datasourceSyncManage.deleteSchedule(datasourceTaskServer.selectByDSId(dataSourceDTO.getId())); datasourceSyncManage.deleteSchedule(datasourceTaskServer.selectByDSId(dataSourceDTO.getId()));
datasourceSyncManage.addSchedule(coreDatasourceTask); datasourceSyncManage.addSchedule(coreDatasourceTask);
dataSourceManage.checkName(dataSourceDTO);
dataSourceManage.innerEdit(requestDatasource); dataSourceManage.innerEdit(requestDatasource);
} else if (dataSourceDTO.getType().equals(DatasourceConfiguration.DatasourceType.Excel.name())) { } else if (dataSourceDTO.getType().equals(DatasourceConfiguration.DatasourceType.Excel.name())) {
List<String> sourceTables = ExcelUtils.getTables(sourceTableRequest).stream().map(DatasetTableDTO::getTableName).collect(Collectors.toList()); List<String> sourceTables = ExcelUtils.getTables(sourceTableRequest).stream().map(DatasetTableDTO::getTableName).collect(Collectors.toList());
@ -422,13 +421,16 @@ public class DatasourceServer implements DatasourceApi {
} }
} }
datasourceSyncManage.extractExcelData(requestDatasource, "all_scope"); datasourceSyncManage.extractExcelData(requestDatasource, "all_scope");
dataSourceManage.checkName(dataSourceDTO);
dataSourceManage.innerEdit(requestDatasource); dataSourceManage.innerEdit(requestDatasource);
} else { } else {
datasourceSyncManage.extractExcelData(requestDatasource, "add_scope"); datasourceSyncManage.extractExcelData(requestDatasource, "add_scope");
dataSourceManage.checkName(dataSourceDTO);
dataSourceManage.innerEdit(requestDatasource); dataSourceManage.innerEdit(requestDatasource);
} }
} else { } else {
checkParams(dataSourceDTO.getConfiguration()); checkParams(dataSourceDTO.getConfiguration());
dataSourceManage.checkName(dataSourceDTO);
dataSourceManage.innerEdit(requestDatasource); dataSourceManage.innerEdit(requestDatasource);
calciteProvider.update(dataSourceDTO); calciteProvider.update(dataSourceDTO);
} }