提交 ee3c99e1 authored 作者: junjie's avatar junjie

feat(backend):关联视图表、字段重复关联校验 测试

上级 3e6caadf
package io.dataease.service.dataset; package io.dataease.service.dataset;
import io.dataease.base.domain.DatasetTableUnion; import io.dataease.base.domain.DatasetTableUnion;
import io.dataease.base.domain.DatasetTableUnionExample;
import io.dataease.base.mapper.DatasetTableUnionMapper; import io.dataease.base.mapper.DatasetTableUnionMapper;
import io.dataease.base.mapper.ext.ExtDatasetTableUnionMapper; import io.dataease.base.mapper.ext.ExtDatasetTableUnionMapper;
import io.dataease.commons.utils.AuthUtils; import io.dataease.commons.utils.AuthUtils;
import io.dataease.dto.dataset.DataSetTableUnionDTO; import io.dataease.dto.dataset.DataSetTableUnionDTO;
import io.dataease.i18n.Translator;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -28,6 +31,7 @@ public class DataSetTableUnionService { ...@@ -28,6 +31,7 @@ public class DataSetTableUnionService {
private ExtDatasetTableUnionMapper extDatasetTableUnionMapper; private ExtDatasetTableUnionMapper extDatasetTableUnionMapper;
public DatasetTableUnion save(DatasetTableUnion datasetTableUnion) { public DatasetTableUnion save(DatasetTableUnion datasetTableUnion) {
checkUnion(datasetTableUnion);
if (StringUtils.isEmpty(datasetTableUnion.getId())) { if (StringUtils.isEmpty(datasetTableUnion.getId())) {
datasetTableUnion.setId(UUID.randomUUID().toString()); datasetTableUnion.setId(UUID.randomUUID().toString());
datasetTableUnion.setCreateBy(AuthUtils.getUser().getUsername()); datasetTableUnion.setCreateBy(AuthUtils.getUser().getUsername());
...@@ -71,4 +75,29 @@ public class DataSetTableUnionService { ...@@ -71,4 +75,29 @@ public class DataSetTableUnionService {
sourceList.sort(Comparator.comparing(DatasetTableUnion::getCreateTime)); sourceList.sort(Comparator.comparing(DatasetTableUnion::getCreateTime));
return sourceList; return sourceList;
} }
private void checkUnion(DatasetTableUnion datasetTableUnion) {
DatasetTableUnionExample datasetTableUnionExample = new DatasetTableUnionExample();
DatasetTableUnionExample.Criteria criteria = datasetTableUnionExample.createCriteria();
if (StringUtils.isNotEmpty(datasetTableUnion.getId())) {
criteria.andIdNotEqualTo(datasetTableUnion.getId());
}
criteria.andSourceTableIdEqualTo(datasetTableUnion.getSourceTableId());
criteria.andSourceTableFieldIdEqualTo(datasetTableUnion.getSourceTableFieldId());
criteria.andTargetTableIdEqualTo(datasetTableUnion.getTargetTableId());
criteria.andTargetTableFieldIdEqualTo(datasetTableUnion.getTargetTableFieldId());
List<DatasetTableUnion> sourceResult = datasetTableUnionMapper.selectByExample(datasetTableUnionExample);
datasetTableUnionExample.clear();
if (StringUtils.isNotEmpty(datasetTableUnion.getId())) {
criteria.andIdNotEqualTo(datasetTableUnion.getId());
}
criteria.andSourceTableIdEqualTo(datasetTableUnion.getTargetTableId());
criteria.andSourceTableFieldIdEqualTo(datasetTableUnion.getTargetTableFieldId());
criteria.andTargetTableIdEqualTo(datasetTableUnion.getSourceTableId());
criteria.andTargetTableFieldIdEqualTo(datasetTableUnion.getSourceTableFieldId());
List<DatasetTableUnion> targetResult = datasetTableUnionMapper.selectByExample(datasetTableUnionExample);
if (CollectionUtils.isNotEmpty(sourceResult) || CollectionUtils.isNotEmpty(targetResult)) {
throw new RuntimeException(Translator.get("i18n_union_already_exists"));
}
}
} }
...@@ -235,4 +235,5 @@ i18n_cron_expression_error=Cron expression error ...@@ -235,4 +235,5 @@ i18n_cron_expression_error=Cron expression error
i18n_same_folder_can_not_repeat=Same Folder Can Not Repeat i18n_same_folder_can_not_repeat=Same Folder Can Not Repeat
i18n_default_panel=Default Panel i18n_default_panel=Default Panel
i18n_panel_list=Panel List i18n_panel_list=Panel List
i18n_processing_data=Processing data now, Refresh later i18n_processing_data=Processing data now, Refresh later
\ No newline at end of file i18n_union_already_exists=Union relation already exists
\ No newline at end of file
...@@ -237,3 +237,4 @@ i18n_same_folder_can_not_repeat=相同的目录下名称不能重复 ...@@ -237,3 +237,4 @@ i18n_same_folder_can_not_repeat=相同的目录下名称不能重复
i18n_default_panel=默认仪表盘 i18n_default_panel=默认仪表盘
i18n_panel_list=仪表盘列表 i18n_panel_list=仪表盘列表
i18n_processing_data=正在处理数据,稍后刷新 i18n_processing_data=正在处理数据,稍后刷新
i18n_union_already_exists=关联关系已存在
...@@ -236,4 +236,5 @@ i18n_cron_expression_error=Cron表達式校驗錯誤 ...@@ -236,4 +236,5 @@ i18n_cron_expression_error=Cron表達式校驗錯誤
i18n_same_folder_can_not_repeat=相同的目录下名称不能重复 i18n_same_folder_can_not_repeat=相同的目录下名称不能重复
i18n_default_panel=默认仪表盘 i18n_default_panel=默认仪表盘
i18n_panel_list=仪表盘列表 i18n_panel_list=仪表盘列表
i18n_processing_data=正在處理數據,稍後刷新 i18n_processing_data=正在處理數據,稍後刷新
\ No newline at end of file i18n_union_already_exists=關聯關系已存在
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论