package com.common; import com.constants.Constants; import lombok.Data; import org.springframework.beans.BeanUtils; import org.springframework.data.domain.Page; import com.github.pagehelper.PageInfo; import java.util.ArrayList; import java.util.List; /** * 公共分页对象 * +---------------------------------------------------------------------- * | CRMEB [ CRMEB赋能开发者,助力企业发展 ] * +---------------------------------------------------------------------- * | Copyright (c) 2016~2020 https://www.crmeb.com All rights reserved. * +---------------------------------------------------------------------- * | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权 * +---------------------------------------------------------------------- * | Author: CRMEB Team * +---------------------------------------------------------------------- */ @Data public class CommonPage { private Integer page = Constants.DEFAULT_PAGE; private Integer limit = Constants.DEFAULT_LIMIT; private Integer totalPage = 0; private Long total = 0L ; private List list = new ArrayList<>(); /** * 将PageHelper分页后的list转为分页信息 */ public static CommonPage restPage(List list) { CommonPage result = new CommonPage(); PageInfo pageInfo = new PageInfo(list); result.setTotalPage(pageInfo.getPages()); result.setPage(pageInfo.getPageNum()); result.setLimit(pageInfo.getPageSize()); result.setTotal(pageInfo.getTotal()); result.setList(pageInfo.getList()); return result; } /** * 将SpringData分页后的list转为分页信息 */ public static CommonPage restPage(Page pageInfo) { CommonPage result = new CommonPage(); result.setTotalPage(pageInfo.getTotalPages()); result.setPage(pageInfo.getNumber()); result.setLimit(pageInfo.getSize()); result.setTotal(pageInfo.getTotalElements()); result.setList(pageInfo.getContent()); return result; } /** * 将PageHelper分页后的 PageInfo 转为分页信息 */ public static CommonPage restPage(PageInfo pageInfo) { CommonPage result = new CommonPage(); result.setTotalPage(pageInfo.getPages()); result.setPage(pageInfo.getPageNum()); result.setLimit(pageInfo.getPageSize()); result.setTotal(pageInfo.getTotal()); result.setList(pageInfo.getList()); return result; } /** * 对象A复制对象B的分页信息 //TODO 多次数据查询导致分页数据异常解决办法 */ public static PageInfo copyPageInfo(com.github.pagehelper.Page originPageInfo, List list) { PageInfo pageInfo = new PageInfo<>(list); BeanUtils.copyProperties(originPageInfo, pageInfo, "list"); return pageInfo; } /** * 对象A复制对象B的分页信息 //TODO 多次数据查询导致分页数据异常解决办法 */ public static PageInfo copyPageInfo(PageInfo originPageInfo, List list) { PageInfo pageInfo = new PageInfo<>(list); pageInfo.setPages(originPageInfo.getPages()); pageInfo.setPageNum(originPageInfo.getPageNum()); pageInfo.setPageSize(originPageInfo.getPageSize()); pageInfo.setTotal(originPageInfo.getTotal()); pageInfo.setList(list); return pageInfo; } }