From afc6563a32e717c97889f07609e930fd04f07e7e Mon Sep 17 00:00:00 2001 From: junjie Date: Tue, 18 May 2021 11:24:52 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E9=9D=9E=E7=9B=B4=E8=BF=9E=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E9=9B=86=E5=81=9A=E6=A0=A1=E9=AA=8C=EF=BC=9B=E5=89=8D?= =?UTF-8?q?=E7=AB=AF=E7=99=BB=E9=99=86=E6=A0=B7=E5=BC=8Ffix=20=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=EF=BC=9B=E4=B8=8D=E5=90=8C=E7=94=A8=E6=88=B7=E5=88=9B?= =?UTF-8?q?=E5=BB=BAdb=E7=B1=BB=E5=9E=8B=E6=95=B0=E6=8D=AE=E9=9B=86?= =?UTF-8?q?=E5=8F=AF=E4=BB=A5=E9=80=89=E6=8B=A9=E7=9B=B8=E5=90=8C=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dataset/DataSetTableController.java | 7 +- .../datasource/service/DatasourceService.java | 3 +- .../io/dataease/provider/QueryProvider.java | 4 +- .../provider/doris/DorisQueryProvider.java | 5 + .../provider/mysql/MysqlQueryProvider.java | 5 + .../service/dataset/DataSetTableService.java | 11 + frontend/src/lang/en.js | 3 +- frontend/src/lang/tw.js | 3 +- frontend/src/lang/zh.js | 3 +- .../dataset/common/DatasetGroupSelector.vue | 19 +- frontend/src/views/login/index2.vue | 236 ------------------ frontend/src/views/panel/edit/index.vue | 2 +- 12 files changed, 57 insertions(+), 244 deletions(-) delete mode 100644 frontend/src/views/login/index2.vue 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'