From 4f35f5acb5a4b1911e5a506648619c6bab253ef1 Mon Sep 17 00:00:00 2001 From: junjun Date: Wed, 21 Dec 2022 12:49:29 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E8=A7=86=E5=9B=BE):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E6=98=8E=E7=BB=86=E8=A1=A8=E7=BB=93=E6=9E=9C=E5=B1=95=E7=A4=BA?= =?UTF-8?q?=E6=9D=A1=E6=95=B0=E4=B8=8E=E5=88=86=E9=A1=B5=E6=A8=A1=E5=BC=8F?= =?UTF-8?q?=E5=86=B2=E7=AA=81=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/chart/ChartViewService.java | 36 ++++++++++++++----- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/backend/src/main/java/io/dataease/service/chart/ChartViewService.java b/backend/src/main/java/io/dataease/service/chart/ChartViewService.java index 24f8b99a41..593e285603 100644 --- a/backend/src/main/java/io/dataease/service/chart/ChartViewService.java +++ b/backend/src/main/java/io/dataease/service/chart/ChartViewService.java @@ -279,6 +279,12 @@ public class ChartViewService { if (result == null) { DataEaseException.throwException(Translator.get("i18n_chart_delete")); } + DatasetTable datasetTable = dataSetTableService.get(result.getTableId()); + if (ObjectUtils.isNotEmpty(datasetTable)) { + result.setDatasetMode(datasetTable.getMode()); + Datasource datasource = datasourceService.get(datasetTable.getDataSourceId()); + result.setDatasourceType(datasource != null ? datasource.getType() : null); + } return result; } catch (Exception e) { e.printStackTrace(); @@ -645,13 +651,23 @@ public class ChartViewService { // 直连明细表分页 Map mapAttr = gson.fromJson(view.getCustomAttr(), Map.class); Map mapSize = (Map) mapAttr.get("size"); - if (StringUtils.equalsIgnoreCase(view.getType(), "table-info") && table.getMode() == 0 && StringUtils.equalsIgnoreCase((String) mapSize.get("tablePageMode"), "page")) { - if (chartExtRequest.getGoPage() == null) { - chartExtRequest.setGoPage(1L); - } - if (chartExtRequest.getPageSize() == null) { - String pageSize = (String) mapSize.get("tablePageSize"); - chartExtRequest.setPageSize(Long.parseLong(pageSize)); + if (StringUtils.equalsIgnoreCase(view.getType(), "table-info") && table.getMode() == 0) { + if (StringUtils.equalsIgnoreCase((String) mapSize.get("tablePageMode"), "page")) { + if (chartExtRequest.getGoPage() == null) { + chartExtRequest.setGoPage(1L); + } + if (chartExtRequest.getPageSize() == null) { + String pageSize = (String) mapSize.get("tablePageSize"); + chartExtRequest.setPageSize(Math.min(Long.parseLong(pageSize), view.getResultCount().longValue())); + } + } else { + if (StringUtils.equalsIgnoreCase(view.getResultMode(), "custom")) { + chartExtRequest.setGoPage(1L); + chartExtRequest.setPageSize(view.getResultCount().longValue()); + } else { + chartExtRequest.setGoPage(null); + chartExtRequest.setPageSize(null); + } } } else { chartExtRequest.setGoPage(null); @@ -910,7 +926,11 @@ public class ChartViewService { String totalPageSql = null; PageInfo pageInfo = new PageInfo(); pageInfo.setGoPage(chartExtRequest.getGoPage()); - pageInfo.setPageSize(chartExtRequest.getPageSize()); + if (StringUtils.equalsIgnoreCase(view.getResultMode(), "custom")) { + pageInfo.setPageSize(Math.min(view.getResultCount() - (chartExtRequest.getGoPage() - 1) * chartExtRequest.getPageSize(), chartExtRequest.getPageSize())); + } else { + pageInfo.setPageSize(chartExtRequest.getPageSize()); + } List detailFieldList = new ArrayList<>(); String detailFieldSql = null;