-
pom.xml
-
PageListVO
package com.xx.streammediatranscoding.model; import lombok.Data; import java.util.List; @Data public class PageListVO
{ private List list; PaginationVO pagination; } -
Pagination
package com.xx.streammediatranscoding.model; import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import java.util.List; @Data public class Pagination { private long pageSize=20; private String sort="DESC"; private String sidx=""; private long currentPage=1; @JsonIgnore private long total; @JsonIgnore private long records; public
List setData(List data, long records) { this.total = records; return data; } } -
PaginationVO
package com.xx.streammediatranscoding.model; import lombok.Data; @Data public class PaginationVO { private Long currentPage; private Long pageSize; private Integer total; }
-
PageUtil
public class PageUtil { private PageUtil() { // 私有构造方法,防止实例化 } /** * 执行分页查询并包装成PageListVO * @param pagination 分页信息对象 * @param query 查询逻辑,返回List结果 * @param
数据类型 * @return 组合后的分页结果对象 */ public static PageListVO executePage(Pagination pagination, PageQuery query) { // 设置分页参数 PageHelper.startPage((int) pagination.getCurrentPage(), (int) pagination.getPageSize()); // 执行查询 List resultList = query.query(); // 调用您的分页转换方法 return toPageListVO(pagination, resultList); } // 使用您的toPageListVO方法 public static PageListVO toPageListVO(Pagination pagination, List list) { PageInfo pageInfo = new PageInfo<>(list); // 使用单独的设置语句 pagination.setTotal(pageInfo.getTotal()); pagination.setCurrentPage(pageInfo.getPageNum()); pagination.setPageSize(pageInfo.getPageSize()); pagination.setData(list, pageInfo.getTotal()); PageListVO result = new PageListVO<>(); result.setPagination(JsonUtil.getJsonToBean(pagination, PaginationVO.class)); result.setList(list); return result; } // 分页查询函数式接口 @FunctionalInterface public interface PageQuery { List query(); } }
文章评论