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 32df6747e0..8d7a15d520 100644 --- a/backend/src/main/java/io/dataease/controller/dataset/DataSetTableController.java +++ b/backend/src/main/java/io/dataease/controller/dataset/DataSetTableController.java @@ -8,6 +8,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; +import java.util.Map; /** * @Author gin @@ -50,7 +51,12 @@ public class DataSetTableController { } @PostMapping("getData") - public List getData(@RequestBody DataSetTableRequest dataSetTableRequest) throws Exception { + public List getData(@RequestBody DataSetTableRequest dataSetTableRequest) throws Exception { return dataSetTableService.getData(dataSetTableRequest); } + + @PostMapping("getPreviewData") + public Map getPreviewData(@RequestBody DataSetTableRequest dataSetTableRequest) throws Exception { + return dataSetTableService.getPreviewData(dataSetTableRequest); + } } 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 fbc8f7aa0f..05ab6fd49e 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -19,7 +19,9 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * @Author gin @@ -80,15 +82,26 @@ public class DataSetTableService { return datasourceProvider.getTableFileds(datasourceRequest); } - public List getData(DataSetTableRequest dataSetTableRequest) throws Exception { + public List getData(DataSetTableRequest dataSetTableRequest) throws Exception { Datasource ds = datasourceMapper.selectByPrimaryKey(dataSetTableRequest.getDataSourceId()); DatasourceProvider datasourceProvider = ProviderFactory.getProvider(ds.getType()); DatasourceRequest datasourceRequest = new DatasourceRequest(); datasourceRequest.setDatasource(ds); String table = new Gson().fromJson(dataSetTableRequest.getInfo(), DataTableInfoDTO.class).getTable(); - datasourceRequest.setQuery("SELECT * FROM " + table + " LIMIT 0,100;"); + datasourceRequest.setQuery("SELECT * FROM " + table + ";"); + return datasourceProvider.getData(datasourceRequest); + } - List fields = getFields(dataSetTableRequest); + public Map getPreviewData(DataSetTableRequest dataSetTableRequest) throws Exception { + Datasource ds = datasourceMapper.selectByPrimaryKey(dataSetTableRequest.getDataSourceId()); + DatasourceProvider datasourceProvider = ProviderFactory.getProvider(ds.getType()); + DatasourceRequest datasourceRequest = new DatasourceRequest(); + datasourceRequest.setDatasource(ds); + String table = new Gson().fromJson(dataSetTableRequest.getInfo(), DataTableInfoDTO.class).getTable(); + datasourceRequest.setTable(table); + datasourceRequest.setQuery("SELECT * FROM " + table + " LIMIT 0,10;"); + + List fields = datasourceProvider.getTableFileds(datasourceRequest); List data = datasourceProvider.getData(datasourceRequest); JSONArray jsonArray = new JSONArray(); @@ -100,6 +113,10 @@ public class DataSetTableService { jsonArray.add(jsonObject); }); - return jsonArray; + Map map = new HashMap<>(); + map.put("fields",fields); + map.put("data",jsonArray); + + return map; } } diff --git a/frontend/src/business/components/dataset/data/AddDB.vue b/frontend/src/business/components/dataset/data/AddDB.vue index a5e76bdcfc..bdc47a0553 100644 --- a/frontend/src/business/components/dataset/data/AddDB.vue +++ b/frontend/src/business/components/dataset/data/AddDB.vue @@ -38,7 +38,7 @@ - + { this.table = response.data; - this.initTableFields(); + this.initPreviewData(); }) } }, + initPreviewData() { + if (this.table.id) { + this.$post('/dataset/table/getPreviewData', this.table, response => { + this.fields = response.data.fields; + this.data = response.data.data; + }); + } + }, + initTableFields() { if (this.table.id) { this.$post('/dataset/table/getFields', this.table, response => { - // console.log(response.data); - this.fields = response.data; - this.initTableData(); }); } }, initTableData() { if (this.table.id) { this.$post('/dataset/table/getData', this.table, response => { - // console.log(response.data); - this.data = response.data; - console.log(this.data) }); } },