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.update.UpdateWrapper;
import io.dataease.commons.constants.OptConstants;
import io.dataease.commons.constants.TaskStatus;
import io.dataease.constant.DataSourceType;
import io.dataease.datasource.dao.auto.entity.CoreDatasource;
import io.dataease.datasource.dao.auto.mapper.CoreDatasourceMapper;
@ -74,13 +75,16 @@ public class DataSourceManage {
@XpackInteract(value = "datasourceResourceTree", before = false)
public void innerSave(CoreDatasource coreDatasource) {
checkName(coreDatasource);
public void innerSave(DatasourceDTO dataSourceDTO) {
CoreDatasource coreDatasource = new CoreDatasource();
coreDatasource.setTaskStatus(TaskStatus.WaitingForExecution.name());
BeanUtils.copyBean(coreDatasource, dataSourceDTO);
checkName(dataSourceDTO);
coreDatasourceMapper.insert(coreDatasource);
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<>();
if (ObjectUtils.isNotEmpty(dto.getPid())) {
wrapper.eq("pid", dto.getPid());
@ -91,8 +95,13 @@ public class DataSourceManage {
if (ObjectUtils.isNotEmpty(dto.getId())) {
wrapper.ne("id", dto.getId());
}
if (ObjectUtils.isNotEmpty(dto.getType()) && dto.getType().equalsIgnoreCase("folder")) {
wrapper.ne("type", dto.getType());
if (ObjectUtils.isNotEmpty(dto.getNodeType()) ) {
if(dto.getNodeType().equalsIgnoreCase("folder")){
wrapper.eq("type", dto.getType());
}else {
wrapper.ne("type", "folder");
}
}
List<CoreDatasource> list = coreDatasourceMapper.selectList(wrapper);
if (list.size() > 0) {
@ -131,7 +140,7 @@ public class DataSourceManage {
sourceData.setUpdateBy(AuthUtils.getUser().getUserId());
sourceData.setPid(dataSourceDTO.getPid());
sourceData.setName(dataSourceDTO.getName());
checkName(sourceData);
checkName(dataSourceDTO);
coreDatasourceMapper.updateById(sourceData);
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) {
CoreDatasource coreDatasource = coreDatasourceMapper.selectById(id);
DatasourceDTO dto = new DatasourceDTO();
BeanUtils.copyBean(dto,coreDatasource);
BeanUtils.copyBean(dto, coreDatasource);
return dto;
}
}

View File

@ -217,6 +217,7 @@ public class DatasourceServer implements DatasourceApi {
}
CoreDatasource datasource = datasourceMapper.selectById(dataSourceDTO.getId());
datasource.setName(dataSourceDTO.getName());
dataSourceManage.checkName(dataSourceDTO);
dataSourceManage.innerEdit(datasource);
return dataSourceDTO;
}
@ -229,10 +230,7 @@ public class DatasourceServer implements DatasourceApi {
dataSourceDTO.setType(dataSourceDTO.getNodeType());
dataSourceDTO.setId(IDUtils.snowID());
dataSourceDTO.setConfiguration("");
CoreDatasource coreDatasource = new CoreDatasource();
coreDatasource.setTaskStatus(TaskStatus.WaitingForExecution.name());
BeanUtils.copyBean(coreDatasource, dataSourceDTO);
dataSourceManage.innerSave(coreDatasource);
dataSourceManage.innerSave(dataSourceDTO);
return dataSourceDTO;
}
@ -261,7 +259,7 @@ public class DatasourceServer implements DatasourceApi {
CoreDatasource coreDatasource = new CoreDatasource();
BeanUtils.copyBean(coreDatasource, dataSourceDTO);
dataSourceManage.innerSave(coreDatasource);
dataSourceManage.innerSave(dataSourceDTO);
if (dataSourceDTO.getType().equals(DatasourceConfiguration.DatasourceType.Excel.name())) {
DatasourceRequest datasourceRequest = new DatasourceRequest();
@ -399,6 +397,7 @@ public class DatasourceServer implements DatasourceApi {
}
datasourceSyncManage.deleteSchedule(datasourceTaskServer.selectByDSId(dataSourceDTO.getId()));
datasourceSyncManage.addSchedule(coreDatasourceTask);
dataSourceManage.checkName(dataSourceDTO);
dataSourceManage.innerEdit(requestDatasource);
} else if (dataSourceDTO.getType().equals(DatasourceConfiguration.DatasourceType.Excel.name())) {
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");
dataSourceManage.checkName(dataSourceDTO);
dataSourceManage.innerEdit(requestDatasource);
} else {
datasourceSyncManage.extractExcelData(requestDatasource, "add_scope");
dataSourceManage.checkName(dataSourceDTO);
dataSourceManage.innerEdit(requestDatasource);
}
} else {
checkParams(dataSourceDTO.getConfiguration());
dataSourceManage.checkName(dataSourceDTO);
dataSourceManage.innerEdit(requestDatasource);
calciteProvider.update(dataSourceDTO);
}