diff --git a/core/core-backend/src/main/java/io/dataease/datasource/manage/DataSourceManage.java b/core/core-backend/src/main/java/io/dataease/datasource/manage/DataSourceManage.java index de85b7132e..663417fa82 100644 --- a/core/core-backend/src/main/java/io/dataease/datasource/manage/DataSourceManage.java +++ b/core/core-backend/src/main/java/io/dataease/datasource/manage/DataSourceManage.java @@ -11,6 +11,7 @@ import io.dataease.datasource.dao.ext.mapper.DataSourceExtMapper; import io.dataease.datasource.dao.ext.po.DataSourceNodePO; import io.dataease.datasource.dto.DatasourceNodeBO; import io.dataease.exception.DEException; +import io.dataease.i18n.Translator; import io.dataease.license.config.XpackInteract; import io.dataease.model.BusiNodeRequest; import io.dataease.model.BusiNodeVO; @@ -73,10 +74,31 @@ public class DataSourceManage { @XpackInteract(value = "datasourceResourceTree", before = false) public void innerSave(CoreDatasource coreDatasource) { + checkName(coreDatasource); coreDatasourceMapper.insert(coreDatasource); coreOptRecentManage.saveOpt(coreDatasource.getId(), OptConstants.OPT_RESOURCE_TYPE.DATASOURCE, OptConstants.OPT_TYPE.NEW); } + public void checkName(CoreDatasource dto) { + QueryWrapper wrapper = new QueryWrapper<>(); + if (ObjectUtils.isNotEmpty(dto.getPid())) { + wrapper.eq("pid", dto.getPid()); + } + if (StringUtils.isNotEmpty(dto.getName())) { + wrapper.eq("name", dto.getName()); + } + if (ObjectUtils.isNotEmpty(dto.getId())) { + wrapper.ne("id", dto.getId()); + } + if (ObjectUtils.isNotEmpty(dto.getType()) && dto.getType().equalsIgnoreCase("folder")) { + wrapper.ne("type", dto.getType()); + } + List list = coreDatasourceMapper.selectList(wrapper); + if (list.size() > 0) { + DEException.throwException(Translator.get("i18n_ds_name_exists")); + } + } + @XpackInteract(value = "datasourceResourceTree", before = false) public void innerEdit(CoreDatasource coreDatasource) { @@ -108,6 +130,7 @@ public class DataSourceManage { sourceData.setUpdateBy(AuthUtils.getUser().getUserId()); sourceData.setPid(dataSourceDTO.getPid()); sourceData.setName(dataSourceDTO.getName()); + checkName(sourceData); coreDatasourceMapper.updateById(sourceData); coreOptRecentManage.saveOpt(sourceData.getId(), OptConstants.OPT_RESOURCE_TYPE.DATASOURCE, OptConstants.OPT_TYPE.UPDATE); }