新增最大页数限制
This commit is contained in:
parent
4c63fbdd3e
commit
cc290474c7
@ -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());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user