diff --git a/backend/src/main/java/io/dataease/controller/dataset/DataSetTableController.java b/backend/src/main/java/io/dataease/controller/dataset/DataSetTableController.java index 13b62ff6e3..773aeab52b 100644 --- a/backend/src/main/java/io/dataease/controller/dataset/DataSetTableController.java +++ b/backend/src/main/java/io/dataease/controller/dataset/DataSetTableController.java @@ -34,7 +34,7 @@ public class DataSetTableController { } @PostMapping("delete/{id}") - public void delete(@PathVariable String id)throws Exception { + public void delete(@PathVariable String id) throws Exception { dataSetTableService.delete(id); } @@ -92,4 +92,9 @@ public class DataSetTableController { public Map excelUpload(@RequestParam("file") MultipartFile file) throws Exception { return dataSetTableService.excelSaveAndParse(file); } + + @PostMapping("checkDorisTableIsExists/{id}") + public Boolean checkDorisTableIsExists(@PathVariable String id) throws Exception { + return dataSetTableService.checkDorisTableIsExists(id); + } } diff --git a/backend/src/main/java/io/dataease/datasource/service/DatasourceService.java b/backend/src/main/java/io/dataease/datasource/service/DatasourceService.java index 685339826a..b1db5e4312 100644 --- a/backend/src/main/java/io/dataease/datasource/service/DatasourceService.java +++ b/backend/src/main/java/io/dataease/datasource/service/DatasourceService.java @@ -6,6 +6,7 @@ import io.dataease.base.mapper.*; import io.dataease.base.mapper.ext.ExtDataSourceMapper; import io.dataease.base.mapper.ext.query.GridExample; import io.dataease.commons.exception.DEException; +import io.dataease.commons.utils.AuthUtils; import io.dataease.commons.utils.CommonThreadPool; import io.dataease.controller.sys.base.BaseGridRequest; import io.dataease.datasource.dto.DBTableDTO; @@ -108,7 +109,7 @@ public class DatasourceService { dbTableDTO.setDatasetPath(null); for (DatasetTable datasetTable : datasetTables) { DataTableInfoDTO dataTableInfoDTO = new Gson().fromJson(datasetTable.getInfo(), DataTableInfoDTO.class); - if (StringUtils.equals(name, dataTableInfoDTO.getTable())) { + if (StringUtils.equals(name, dataTableInfoDTO.getTable()) && StringUtils.equals(datasetTable.getCreateBy(), AuthUtils.getUser().getUsername())) { dbTableDTO.setEnableCheck(false); List parents = dataSetGroupService.getParents(datasetTable.getSceneId()); diff --git a/backend/src/main/java/io/dataease/provider/QueryProvider.java b/backend/src/main/java/io/dataease/provider/QueryProvider.java index bf05fecd1f..42f3450ca9 100644 --- a/backend/src/main/java/io/dataease/provider/QueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/QueryProvider.java @@ -11,7 +11,7 @@ import java.util.List; * @Date 2021/5/17 2:42 下午 */ public abstract class QueryProvider { - public abstract Integer transFieldType( String field); + public abstract Integer transFieldType(String field); public abstract String createQueryCountSQL(String table); @@ -30,4 +30,6 @@ public abstract class QueryProvider { public abstract String getSQL(String table, List xAxis, List yAxis, List extFilterRequestList); public abstract String getSQLAsTmp(String table, List xAxis, List yAxis, List extFilterRequestList); + + public abstract String searchTable(String table); } diff --git a/backend/src/main/java/io/dataease/provider/doris/DorisQueryProvider.java b/backend/src/main/java/io/dataease/provider/doris/DorisQueryProvider.java index e5ab95407b..a348aa7e8e 100644 --- a/backend/src/main/java/io/dataease/provider/doris/DorisQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/doris/DorisQueryProvider.java @@ -224,6 +224,11 @@ public class DorisQueryProvider extends QueryProvider { return getSQL(" (" + sql + ") AS tmp ", xAxis, yAxis, extFilterRequestList); } + @Override + public String searchTable(String table) { + return "SELECT table_name FROM information_schema.TABLES WHERE table_name ='" + table + "'"; + } + public String transMysqlFilterTerm(String term) { switch (term) { case "eq": diff --git a/backend/src/main/java/io/dataease/provider/mysql/MysqlQueryProvider.java b/backend/src/main/java/io/dataease/provider/mysql/MysqlQueryProvider.java index f59597becb..be5d697573 100644 --- a/backend/src/main/java/io/dataease/provider/mysql/MysqlQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/mysql/MysqlQueryProvider.java @@ -231,6 +231,11 @@ public class MysqlQueryProvider extends QueryProvider { return getSQL(" (" + sql + ") AS tmp ", xAxis, yAxis, extFilterRequestList); } + @Override + public String searchTable(String table) { + return "SELECT table_name FROM information_schema.TABLES WHERE table_name ='" + table + "'"; + } + public String transMysqlFilterTerm(String term) { switch (term) { case "eq": diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java index ecaef16c91..4e5016ca94 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -788,4 +788,15 @@ public class DataSetTableService { fileOutputStream.close(); return filePath; } + + public Boolean checkDorisTableIsExists(String id) throws Exception { + Datasource dorisDatasource = (Datasource) CommonBeanFactory.getBean("DorisDatasource"); + JdbcProvider jdbcProvider = CommonBeanFactory.getBean(JdbcProvider.class); + DatasourceRequest datasourceRequest = new DatasourceRequest(); + datasourceRequest.setDatasource(dorisDatasource); + QueryProvider qp = ProviderFactory.getQueryProvider(dorisDatasource.getType()); + datasourceRequest.setQuery(qp.searchTable(DorisTableUtils.dorisName(id))); + List data = jdbcProvider.getData(datasourceRequest); + return CollectionUtils.isNotEmpty(data); + } } diff --git a/frontend/src/lang/en.js b/frontend/src/lang/en.js index 5af22e3448..ef55d185a5 100644 --- a/frontend/src/lang/en.js +++ b/frontend/src/lang/en.js @@ -769,7 +769,8 @@ export default { float: 'Decimal', edit_custom_table: 'Edit self help dataset', edit_field: 'Edit Field', - preview_100_data: 'Show 100 lines data' + preview_100_data: 'Show 100 lines data', + invalid_table_check: 'Please sync data first.' }, datasource: { datasource: 'Data Source', diff --git a/frontend/src/lang/tw.js b/frontend/src/lang/tw.js index da2f33b41d..89d4de7d20 100644 --- a/frontend/src/lang/tw.js +++ b/frontend/src/lang/tw.js @@ -769,7 +769,8 @@ export default { float: '小數', edit_custom_table: '編輯自助數據集', edit_field: '編輯自斷', - preview_100_data: '顯示前100行數據' + preview_100_data: '顯示前100行數據', + invalid_table_check: '非直連數據集請先完成數據同步' }, datasource: { datasource: '數據源', diff --git a/frontend/src/lang/zh.js b/frontend/src/lang/zh.js index 6036708098..2a7f143168 100644 --- a/frontend/src/lang/zh.js +++ b/frontend/src/lang/zh.js @@ -769,7 +769,8 @@ export default { float: '小数', edit_custom_table: '编辑自助数据集', edit_field: '编辑字段', - preview_100_data: '显示前100行数据' + preview_100_data: '显示前100行数据', + invalid_table_check: '非直连数据集请先完成数据同步' }, datasource: { datasource: '数据源', diff --git a/frontend/src/views/dataset/common/DatasetGroupSelector.vue b/frontend/src/views/dataset/common/DatasetGroupSelector.vue index d3ce447410..1833b769da 100644 --- a/frontend/src/views/dataset/common/DatasetGroupSelector.vue +++ b/frontend/src/views/dataset/common/DatasetGroupSelector.vue @@ -269,7 +269,24 @@ export default { }) return } - this.$emit('getTable', data) + // check mode=1的数据集是否创建doris表 + if (data.mode === 1) { + post('/dataset/table/checkDorisTableIsExists/' + data.id, {}).then(response => { + if (response.data) { + this.$nextTick(function() { + this.$emit('getTable', data) + }) + } else { + this.$message({ + type: 'error', + message: this.$t('dataset.invalid_table_check'), + showClose: true + }) + } + }) + } else { + this.$emit('getTable', data) + } }, unionDataChange() { diff --git a/frontend/src/views/login/index2.vue b/frontend/src/views/login/index2.vue deleted file mode 100644 index 87ab3de423..0000000000 --- a/frontend/src/views/login/index2.vue +++ /dev/null @@ -1,236 +0,0 @@ - - - - - - - diff --git a/frontend/src/views/panel/edit/index.vue b/frontend/src/views/panel/edit/index.vue index 850e36a2c4..40e2aa03bf 100644 --- a/frontend/src/views/panel/edit/index.vue +++ b/frontend/src/views/panel/edit/index.vue @@ -115,7 +115,7 @@ import { get } from '@/api/panel/panel' // 引入样式 import '@/components/canvas/assets/iconfont/iconfont.css' import '@/components/canvas/styles/animate.css' -// import '@/components/canvas/styles/reset.css' +import '@/components/canvas/styles/reset.css' import { ApplicationContext } from '@/utils/ApplicationContext' import FilterDialog from '../filter/filterDialog'