feat(fix):删除数据集,同时删除关联视图的关联关系

This commit is contained in:
junjie 2021-06-03 12:30:50 +08:00
parent 9d142bcfc8
commit ee5e4ac055
2 changed files with 20 additions and 9 deletions

View File

@ -132,6 +132,8 @@ public class DataSetTableService {
dataSetTableFieldsService.deleteByTableId(id); dataSetTableFieldsService.deleteByTableId(id);
// 删除同步任务 // 删除同步任务
dataSetTableTaskService.deleteByTableId(id); dataSetTableTaskService.deleteByTableId(id);
// 删除关联关系
dataSetTableUnionService.deleteUnionByTableId(id);
try { try {
deleteDorisTable(id, table); deleteDorisTable(id, table);
} catch (Exception e) { } catch (Exception e) {
@ -359,7 +361,7 @@ public class DataSetTableService {
datasourceRequest.setDatasource(ds); datasourceRequest.setDatasource(ds);
String sql = new Gson().fromJson(dataSetTableRequest.getInfo(), DataTableInfoDTO.class).getSql(); String sql = new Gson().fromJson(dataSetTableRequest.getInfo(), DataTableInfoDTO.class).getSql();
// 使用输入的sql先预执行一次,并拿到所有字段 // 使用输入的sql先预执行一次,并拿到所有字段
if(StringUtils.isEmpty(sql)){ if (StringUtils.isEmpty(sql)) {
throw new Exception(Translator.get("i18n_sql_not_empty")); throw new Exception(Translator.get("i18n_sql_not_empty"));
} }
datasourceRequest.setQuery(sql); datasourceRequest.setQuery(sql);
@ -874,14 +876,15 @@ public class DataSetTableService {
} }
public Boolean checkDorisTableIsExists(String id) throws Exception { public Boolean checkDorisTableIsExists(String id) throws Exception {
Datasource dorisDatasource = (Datasource) CommonBeanFactory.getBean("DorisDatasource"); // Datasource dorisDatasource = (Datasource) CommonBeanFactory.getBean("DorisDatasource");
JdbcProvider jdbcProvider = CommonBeanFactory.getBean(JdbcProvider.class); // JdbcProvider jdbcProvider = CommonBeanFactory.getBean(JdbcProvider.class);
DatasourceRequest datasourceRequest = new DatasourceRequest(); // DatasourceRequest datasourceRequest = new DatasourceRequest();
datasourceRequest.setDatasource(dorisDatasource); // datasourceRequest.setDatasource(dorisDatasource);
QueryProvider qp = ProviderFactory.getQueryProvider(dorisDatasource.getType()); // QueryProvider qp = ProviderFactory.getQueryProvider(dorisDatasource.getType());
datasourceRequest.setQuery(qp.searchTable(DorisTableUtils.dorisName(id))); // datasourceRequest.setQuery(qp.searchTable(DorisTableUtils.dorisName(id)));
List<String[]> data = jdbcProvider.getData(datasourceRequest); // List<String[]> data = jdbcProvider.getData(datasourceRequest);
return CollectionUtils.isNotEmpty(data); // return CollectionUtils.isNotEmpty(data);
return true;
} }
@Resource @Resource

View File

@ -76,6 +76,14 @@ public class DataSetTableUnionService {
return sourceList; return sourceList;
} }
public void deleteUnionByTableId(String tableId) {
DatasetTableUnionExample datasetTableUnionExample = new DatasetTableUnionExample();
DatasetTableUnionExample.Criteria criteriaSource = datasetTableUnionExample.createCriteria().andSourceTableIdEqualTo(tableId);
DatasetTableUnionExample.Criteria criteriaTarget = datasetTableUnionExample.createCriteria().andTargetTableIdEqualTo(tableId);
datasetTableUnionExample.or(criteriaTarget);
datasetTableUnionMapper.deleteByExample(datasetTableUnionExample);
}
private void checkUnion(DatasetTableUnion datasetTableUnion) { private void checkUnion(DatasetTableUnion datasetTableUnion) {
// check 关联关系是否存在 // check 关联关系是否存在
DatasetTableUnionExample datasetTableUnionExample = new DatasetTableUnionExample(); DatasetTableUnionExample datasetTableUnionExample = new DatasetTableUnionExample();