update 分页合理化

This commit is contained in:
疯狂的狮子li 2021-09-02 11:29:50 +08:00
parent 1a695159e3
commit 6801490e3b
2 changed files with 23 additions and 1 deletions

View File

@ -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 <T> 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<T, K> 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)) {

View File

@ -50,6 +50,8 @@ public class MybatisPlusConfig {
paginationInnerInterceptor.setDbType(DbType.MYSQL);
// 设置最大单页限制数量默认 500 -1 不受限制
paginationInnerInterceptor.setMaxLimit(-1L);
// 分页合理化
paginationInnerInterceptor.setOverflow(true);
return paginationInnerInterceptor;
}