From c084ac68cfb1ea75717cb3ed962201cafa5a7890 Mon Sep 17 00:00:00 2001 From: junjie Date: Tue, 15 Jun 2021 16:01:30 +0800 Subject: [PATCH] =?UTF-8?q?feat(fix):=E7=9B=B4=E8=BF=9E=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E9=9B=86=E9=99=90=E5=88=B6=E9=A2=84=E8=A7=88=E6=95=B0=E7=9B=AE?= =?UTF-8?q?=EF=BC=9B=E6=95=B0=E6=8D=AE=E6=BA=90=E6=96=87=E5=AD=97=E6=9B=BF?= =?UTF-8?q?=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../provider/mysql/MysqlQueryProvider.java | 5 ++-- .../service/dataset/DataSetTableService.java | 25 +++++++++++-------- frontend/src/lang/en.js | 2 +- frontend/src/lang/tw.js | 2 +- frontend/src/lang/zh.js | 2 +- .../src/views/dataset/data/TabDataPreview.vue | 13 +++++++--- frontend/src/views/system/datasource/form.vue | 5 ++-- .../src/views/system/datasource/index.vue | 7 +++++- 8 files changed, 39 insertions(+), 22 deletions(-) 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 44dd2655e4..13910bb78d 100644 --- a/backend/src/main/java/io/dataease/provider/mysql/MysqlQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/mysql/MysqlQueryProvider.java @@ -68,7 +68,7 @@ public class MysqlQueryProvider extends QueryProvider { @Override public String createSQLPreview(String sql, String orderBy) { - return "SELECT * FROM (" + sqlFix(sql) + ") AS tmp ORDER BY " + orderBy + " LIMIT 0,1000"; + return "SELECT * FROM (" + sqlFix(sql) + ") AS tmp ORDER BY null " + " LIMIT 0,1000"; } @Override @@ -102,7 +102,8 @@ public class MysqlQueryProvider extends QueryProvider { return stringBuilder.toString(); }).toArray(String[]::new); - return MessageFormat.format("SELECT {0} FROM {1} ORDER BY " + (fields.size() > 0 ? fields.get(0).getOriginName() : "null"), StringUtils.join(array, ","), table); +// return MessageFormat.format("SELECT {0} FROM {1} ORDER BY " + (fields.size() > 0 ? fields.get(0).getOriginName() : "null"), StringUtils.join(array, ","), table); + return MessageFormat.format("SELECT {0} FROM {1} ORDER BY null", StringUtils.join(array, ","), table); } @Override 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 583b1aeb55..fc4bf662fa 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -271,8 +271,9 @@ public class DataSetTableService { e.printStackTrace(); } try { - datasourceRequest.setQuery(qp.createQueryCountSQL(table)); - dataSetPreviewPage.setTotal(Integer.valueOf(datasourceProvider.getData(datasourceRequest).get(0)[0])); +// datasourceRequest.setQuery(qp.createQueryCountSQL(table)); +// dataSetPreviewPage.setTotal(Integer.valueOf(datasourceProvider.getData(datasourceRequest).get(0)[0])); + dataSetPreviewPage.setTotal(Integer.parseInt(dataSetTableRequest.getRow())); } catch (Exception e) { e.printStackTrace(); } @@ -294,8 +295,9 @@ public class DataSetTableService { e.printStackTrace(); } try { - datasourceRequest.setQuery(qp.createQueryCountSQLAsTmp(sql)); - dataSetPreviewPage.setTotal(Integer.valueOf(datasourceProvider.getData(datasourceRequest).get(0)[0])); +// datasourceRequest.setQuery(qp.createQueryCountSQLAsTmp(sql)); +// dataSetPreviewPage.setTotal(Integer.valueOf(datasourceProvider.getData(datasourceRequest).get(0)[0])); + dataSetPreviewPage.setTotal(Integer.parseInt(dataSetTableRequest.getRow())); } catch (Exception e) { e.printStackTrace(); } @@ -383,15 +385,16 @@ public class DataSetTableService { DatasourceRequest datasourceRequest = new DatasourceRequest(); datasourceRequest.setDatasource(ds); String sql = new Gson().fromJson(dataSetTableRequest.getInfo(), DataTableInfoDTO.class).getSql(); - // 使用输入的sql先预执行一次,并拿到所有字段 + if (StringUtils.isEmpty(sql)) { throw new Exception(Translator.get("i18n_sql_not_empty")); } - datasourceRequest.setQuery(sql); - List previewFields = datasourceProvider.fetchResultField(datasourceRequest); - // 正式执行 QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); - datasourceRequest.setQuery(qp.createSQLPreview(sql, previewFields.get(0).getFieldName())); + String sqlAsTable = qp.createSQLPreview(sql, null); +// datasourceRequest.setQuery(sqlAsTable); +// List previewFields = datasourceProvider.fetchResultField(datasourceRequest); + // 正式执行 + datasourceRequest.setQuery(sqlAsTable); Map result = datasourceProvider.fetchResultAndField(datasourceRequest); List data = result.get("dataList"); List fields = result.get("fieldList"); @@ -545,7 +548,9 @@ public class DataSetTableService { DatasourceProvider datasourceProvider = ProviderFactory.getProvider(ds.getType()); DatasourceRequest datasourceRequest = new DatasourceRequest(); datasourceRequest.setDatasource(ds); - datasourceRequest.setQuery(new Gson().fromJson(dataSetTableRequest.getInfo(), DataTableInfoDTO.class).getSql()); + QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); + String sqlAsTable = qp.createSQLPreview(new Gson().fromJson(dataSetTableRequest.getInfo(), DataTableInfoDTO.class).getSql(), null); + datasourceRequest.setQuery(sqlAsTable); fields = datasourceProvider.fetchResultField(datasourceRequest); } else if (StringUtils.equalsIgnoreCase(datasetTable.getType(), "excel")) { DataTableInfoDTO dataTableInfoDTO = new Gson().fromJson(dataSetTableRequest.getInfo(), DataTableInfoDTO.class); diff --git a/frontend/src/lang/en.js b/frontend/src/lang/en.js index 1c70f08f19..62d53745bb 100644 --- a/frontend/src/lang/en.js +++ b/frontend/src/lang/en.js @@ -808,7 +808,7 @@ export default { preview_show: 'Display', preview_item: 'items data', preview_total: 'Total', - pls_input_less_9: 'Please input integer less 9', + pls_input_less_5: 'Please input integer less 5', field_edit: 'Edit Field', table_already_add_to: 'This table is already add to', uploading: 'Uploading...', diff --git a/frontend/src/lang/tw.js b/frontend/src/lang/tw.js index 989e5bc3bb..f037155335 100644 --- a/frontend/src/lang/tw.js +++ b/frontend/src/lang/tw.js @@ -808,7 +808,7 @@ export default { preview_show: '顯示', preview_item: '條數據', preview_total: '共', - pls_input_less_9: '請輸入9位以內的正整數', + pls_input_less_5: '請輸入5位以內的正整數', field_edit: '編輯字段', table_already_add_to: '該表已添加至', uploading: '上傳中...', diff --git a/frontend/src/lang/zh.js b/frontend/src/lang/zh.js index 609e5e3edd..5e94313781 100644 --- a/frontend/src/lang/zh.js +++ b/frontend/src/lang/zh.js @@ -808,7 +808,7 @@ export default { preview_show: '显示', preview_item: '条数据', preview_total: '共', - pls_input_less_9: '请输入9位以内的正整数', + pls_input_less_5: '请输入5位以内的正整数', field_edit: '编辑字段', table_already_add_to: '该表已添加至', uploading: '上传中...', diff --git a/frontend/src/views/dataset/data/TabDataPreview.vue b/frontend/src/views/dataset/data/TabDataPreview.vue index a41a88f5c9..551de90bc8 100644 --- a/frontend/src/views/dataset/data/TabDataPreview.vue +++ b/frontend/src/views/dataset/data/TabDataPreview.vue @@ -6,7 +6,7 @@ {{ $t('dataset.showRow') }} - + @@ -36,7 +36,7 @@ - + {{ $t('dataset.preview_total') }} {{ page.total }} @@ -51,6 +51,11 @@ {{ $t('dataset.preview_item') }} + + {{ $t('dataset.preview_show') }} + {{ page.total }} + {{ $t('dataset.preview_item') }} + 8 || isNaN(Number(this.form.row)) || String(this.form.row).includes('.')) { + if (!this.form.row || this.form.row === '' || this.form.row.length > 4 || isNaN(Number(this.form.row)) || String(this.form.row).includes('.')) { this.$message({ - message: this.$t('dataset.pls_input_less_9'), + message: this.$t('dataset.pls_input_less_5'), type: 'error', showClose: true }) diff --git a/frontend/src/views/system/datasource/form.vue b/frontend/src/views/system/datasource/form.vue index 1263890d8b..b1319ba5d4 100644 --- a/frontend/src/views/system/datasource/form.vue +++ b/frontend/src/views/system/datasource/form.vue @@ -13,7 +13,7 @@ @@ -65,7 +65,8 @@ export default { 'configuration.host': [{ required: true, message: this.$t('datasource.please_input_host'), trigger: 'change' }], 'configuration.port': [{ required: true, message: this.$t('datasource.please_input_port'), trigger: 'change' }] }, - allTypes: [{ name: 'mysql', type: 'jdbc' }, { name: 'sqlServer', type: 'jdbc' }] + allTypes: [{ name: 'mysql', label: 'MySQL', type: 'jdbc' }, + { name: 'sqlServer', label: 'SQL Server', type: 'jdbc' }] } }, diff --git a/frontend/src/views/system/datasource/index.vue b/frontend/src/views/system/datasource/index.vue index fcd2c4eaea..6b476a5139 100644 --- a/frontend/src/views/system/datasource/index.vue +++ b/frontend/src/views/system/datasource/index.vue @@ -18,7 +18,12 @@ - + + +