diff --git a/common-lib/src/main/java/cn/axzo/foundation/page/PageReq.java b/common-lib/src/main/java/cn/axzo/foundation/page/PageReq.java index 7dfbc4c..b1b7fdb 100644 --- a/common-lib/src/main/java/cn/axzo/foundation/page/PageReq.java +++ b/common-lib/src/main/java/cn/axzo/foundation/page/PageReq.java @@ -7,11 +7,15 @@ import lombok.NoArgsConstructor; import java.util.List; +/** + * 如果作为接口调用的参数使用。建议使用{@link PageReqV2}。支持builder 模式构建参数,对参数构造更友好。 + */ @Data @Builder @NoArgsConstructor @AllArgsConstructor -public class PageReq implements IPageReq{ +@Deprecated +public class PageReq implements IPageReq { Integer page; Integer pageSize; List sort; diff --git a/common-lib/src/main/java/cn/axzo/foundation/page/PageReqV2.java b/common-lib/src/main/java/cn/axzo/foundation/page/PageReqV2.java new file mode 100644 index 0000000..b1ffa4c --- /dev/null +++ b/common-lib/src/main/java/cn/axzo/foundation/page/PageReqV2.java @@ -0,0 +1,47 @@ +package cn.axzo.foundation.page; + +import cn.axzo.foundation.dao.support.wrapper.CriteriaField; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; +import org.apache.commons.lang3.BooleanUtils; + +import java.util.List; + +/** + * 默认分页请求基类: + * 1、支持builder方式构建参数。 + * 2、默认分页大小为1000。 + * 3、支持指定不分页。searchCount = false + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class PageReqV2 implements IPageReq { + private static final Integer DEFAULT_PAGE_SIZE_V2 = 1000; + @CriteriaField(ignore = true) + Integer page; + @CriteriaField(ignore = true) + Integer pageSize; + @CriteriaField(ignore = true) + Boolean searchCount; + @CriteriaField(ignore = true) + List sort; + + @Override + public Integer getPage() { + return page == null || page < 1 ? 1 : page; + } + + @Override + public Integer getPageSize() { + return pageSize == null || pageSize < 1 ? DEFAULT_PAGE_SIZE_V2 : pageSize; + } + + public Boolean isSearchCount() { + // 只要不明确指定 searchCount = false,都要查count信息 + return BooleanUtils.isNotFalse(searchCount); + } +}