Merge remote-tracking branch 'origin/main' into main

This commit is contained in:
wangjiahao 2021-06-15 16:47:51 +08:00
commit 314a100fc5
9 changed files with 40 additions and 23 deletions

View File

@ -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

View File

@ -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<TableFiled> 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<TableFiled> previewFields = datasourceProvider.fetchResultField(datasourceRequest);
// 正式执行
datasourceRequest.setQuery(sqlAsTable);
Map<String, List> result = datasourceProvider.fetchResultAndField(datasourceRequest);
List<String[]> data = result.get("dataList");
List<TableFiled> 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);

View File

@ -112,7 +112,7 @@ public class ExtractDataService {
private String passwd;
private static String creatTableSql = "CREATE TABLE IF NOT EXISTS `TABLE_NAME`" +
"Column_Fields" +
"UNIQUE KEY(dataease_uuid)\n" +
"DUPLICATE KEY(dataease_uuid)\n" +
"DISTRIBUTED BY HASH(dataease_uuid) BUCKETS 10\n" +
"PROPERTIES(\"replication_num\" = \"1\");";

View File

@ -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...',

View File

@ -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: '上傳中...',

View File

@ -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: '上传中...',

View File

@ -6,7 +6,7 @@
<el-form-item>
<span style="width: 100px;">{{ $t('dataset.showRow') }}</span>
<el-input v-model="form.row">
<el-button size="mini" slot="append" icon="el-icon-search" @click="reSearch" />
<el-button slot="append" size="mini" icon="el-icon-search" @click="reSearch" />
</el-input>
</el-form-item>
</el-form>
@ -36,7 +36,7 @@
</ux-table-column>
</ux-grid>
<el-row style="margin-top: 4px;">
<span class="table-count">
<span v-if="table.type === 'excel' || table.type === 'custom'" class="table-count">
<span v-if="page.total <= currentPage.show">
{{ $t('dataset.preview_total') }}
<span class="span-number">{{ page.total }}</span>
@ -51,6 +51,11 @@
{{ $t('dataset.preview_item') }}
</span>
</span>
<span v-if="table.type === 'db' || table.type === 'sql'" class="table-count">
{{ $t('dataset.preview_show') }}
<span class="span-number">{{ page.total }}</span>
{{ $t('dataset.preview_item') }}
</span>
<el-pagination
:current-page="currentPage.page"
:page-sizes="[100]"
@ -129,9 +134,9 @@ export default {
}, 10)
},
reSearch() {
if (!this.form.row || this.form.row === '' || this.form.row.length > 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
})

View File

@ -13,7 +13,7 @@
<el-option
v-for="item in allTypes"
:key="item.name"
:label="item.name"
:label="item.label"
:value="item.name"
/>
</el-select>
@ -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' }]
}
},

View File

@ -18,7 +18,12 @@
<!-- <el-table-column type="selection" fix /> -->
<el-table-column prop="name" :label="$t('commons.name')" />
<el-table-column prop="desc" :label="$t('commons.description')" />
<el-table-column prop="type" :label="$t('datasource.type')" />
<el-table-column prop="type" :label="$t('datasource.type')">
<template slot-scope="scope">
<span v-if="scope.row.type ==='mysql'">MySQL</span>
<span v-if="scope.row.type ==='sqlserver'">SQL Server</span>
</template>
</el-table-column>
<fu-table-operations :buttons="buttons" :label="$t('commons.operating')" fix />
</complex-table>