From cc290474c73c7b6ba8e0bf7943760c37988a756b Mon Sep 17 00:00:00 2001 From: mxd <838425805@qq.com> Date: Mon, 7 Mar 2022 20:39:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=9C=80=E5=A4=A7=E9=A1=B5?= =?UTF-8?q?=E6=95=B0=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../boot/starter/MagicModuleConfiguration.java | 4 ++-- .../org/ssssssss/magicapi/core/config/Page.java | 13 +++++++++++++ .../db/provider/DefaultPageProvider.java | 17 +++++++++++------ 3 files changed, 26 insertions(+), 8 deletions(-) diff --git a/magic-api-spring-boot-starter/src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicModuleConfiguration.java b/magic-api-spring-boot-starter/src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicModuleConfiguration.java index b0e00349..593bc7ff 100644 --- a/magic-api-spring-boot-starter/src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicModuleConfiguration.java +++ b/magic-api-spring-boot-starter/src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicModuleConfiguration.java @@ -111,8 +111,8 @@ public class MagicModuleConfiguration { @ConditionalOnMissingBean(PageProvider.class) public PageProvider pageProvider() { Page pageConfig = properties.getPage(); - logger.info("未找到分页实现,采用默认分页实现,分页配置:(页码={},页大小={},默认首页={},默认页大小={})", pageConfig.getPage(), pageConfig.getSize(), pageConfig.getDefaultPage(), pageConfig.getDefaultSize()); - return new DefaultPageProvider(pageConfig.getPage(), pageConfig.getSize(), pageConfig.getDefaultPage(), pageConfig.getDefaultSize()); + logger.info("未找到分页实现,采用默认分页实现,分页配置:(页码={},页大小={},默认首页={},默认页大小={},最大页大小={})", pageConfig.getPage(), pageConfig.getSize(), pageConfig.getDefaultPage(), pageConfig.getDefaultSize(), pageConfig.getMaxPageSize()); + return new DefaultPageProvider(pageConfig.getPage(), pageConfig.getSize(), pageConfig.getDefaultPage(), pageConfig.getDefaultSize(), pageConfig.getMaxPageSize()); } /** diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/core/config/Page.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/config/Page.java index f1802609..e9b0a0da 100644 --- a/magic-api/src/main/java/org/ssssssss/magicapi/core/config/Page.java +++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/config/Page.java @@ -27,6 +27,11 @@ public class Page { */ private long defaultSize = 10; + /** + * 最大页大小, -1 为不限制 + */ + private long maxPageSize = -1; + public String getPage() { return page; } @@ -58,4 +63,12 @@ public class Page { public void setDefaultSize(long defaultSize) { this.defaultSize = defaultSize; } + + public long getMaxPageSize() { + return maxPageSize; + } + + public void setMaxPageSize(long maxPageSize) { + this.maxPageSize = maxPageSize; + } } diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/provider/DefaultPageProvider.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/provider/DefaultPageProvider.java index 345630db..ae4b1df1 100644 --- a/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/provider/DefaultPageProvider.java +++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/provider/DefaultPageProvider.java @@ -24,22 +24,24 @@ public class DefaultPageProvider implements PageProvider { /** * 默认分页大小 */ - private long defaultPageSize = 10; + private final long defaultPageSize; /** * 默认页数 */ - private long defaultPage = 1; + private final long defaultPage; - public DefaultPageProvider(String pageName, String pageSize) { - this(pageName, pageSize, 1, 10); - } + /** + * 最大页数 + */ + private final long maxPageSize; - public DefaultPageProvider(String pageName, String pageSize, long defaultPage, long defaultPageSize) { + public DefaultPageProvider(String pageName, String pageSize, long defaultPage, long defaultPageSize, long maxPageSize) { this.pageName = pageName; this.pageSize = pageSize; this.defaultPageSize = defaultPageSize; this.defaultPage = defaultPage; + this.maxPageSize = maxPageSize; } @@ -48,6 +50,9 @@ public class DefaultPageProvider implements PageProvider { // 改为从脚本中获取 long page = NumberUtils.toLong(Objects.toString(context.eval(this.pageName), null), this.defaultPage); long pageSize = NumberUtils.toLong(Objects.toString(context.eval(this.pageSize), null), this.defaultPageSize); + if(maxPageSize > 0){ + pageSize = Math.min(pageSize, this.maxPageSize); + } // 计算limit以及offset return new Page(pageSize, (page - 1) * pageSize);