From 6801490e3b5b32b97c2ef92df9107900af13a25c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Thu, 2 Sep 2021 11:29:50 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E5=88=86=E9=A1=B5=E5=90=88=E7=90=86?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/common/utils/PageUtils.java | 22 ++++++++++++++++++- .../framework/config/MybatisPlusConfig.java | 2 ++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/PageUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/PageUtils.java index 27125ab8f..67cf72cb6 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/PageUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/PageUtils.java @@ -36,6 +36,11 @@ public class PageUtils { */ public static final String IS_ASC = "isAsc"; + /** + * 分页参数合理化 + */ + private static final String REASONABLE = "reasonable"; + /** * 当前记录起始索引 默认值 */ @@ -46,6 +51,11 @@ public class PageUtils { */ public static final int DEFAULT_PAGE_SIZE = Integer.MAX_VALUE; + /** + * 分页参数合理化 默认值 + */ + private static final Boolean DEFAULT_REASONABLE = Boolean.TRUE; + /** * 构建 plus 分页对象 * @param domain 实体 @@ -57,6 +67,11 @@ public class PageUtils { Integer pageSize = ServletUtils.getParameterToInt(PAGE_SIZE, DEFAULT_PAGE_SIZE); String orderByColumn = ServletUtils.getParameter(ORDER_BY_COLUMN); String isAsc = ServletUtils.getParameter(IS_ASC); + Boolean reasonable = ServletUtils.getParameterToBool(REASONABLE, DEFAULT_REASONABLE); + //分页合理化,针对不合理的页码自动处理 + if (reasonable && pageNum <= 0) { + pageNum = 1; + } PagePlus page = new PagePlus<>(pageNum, pageSize); if (StringUtils.isNotBlank(orderByColumn)) { String orderBy = SqlUtil.escapeOrderBySql(orderByColumn); @@ -83,7 +98,12 @@ public class PageUtils { Integer pageSize = ServletUtils.getParameterToInt(PAGE_SIZE, DEFAULT_PAGE_SIZE); String orderByColumn = ServletUtils.getParameter(ORDER_BY_COLUMN, defaultOrderByColumn); String isAsc = ServletUtils.getParameter(IS_ASC, defaultIsAsc); - // 兼容前端排序类型 + Boolean reasonable = ServletUtils.getParameterToBool(REASONABLE, DEFAULT_REASONABLE); + //分页合理化,针对不合理的页码自动处理 + if (reasonable && pageNum <= 0) { + pageNum = 1; + } + // 兼容前端排序类型 if ("ascending".equals(isAsc)) { isAsc = "asc"; } else if ("descending".equals(isAsc)) { diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java index 1246a2954..719fd2ba5 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java @@ -50,6 +50,8 @@ public class MybatisPlusConfig { paginationInnerInterceptor.setDbType(DbType.MYSQL); // 设置最大单页限制数量,默认 500 条,-1 不受限制 paginationInnerInterceptor.setMaxLimit(-1L); + // 分页合理化 + paginationInnerInterceptor.setOverflow(true); return paginationInnerInterceptor; }