从若依框架中自带的PageUtils类中拷贝
若依框架自带的
import com.github.pagehelper.PageHelper;
import com.liary.common.core.page.PageDomain;
import com.liary.common.core.page.TableSupport;
import com.liary.common.utils.sql.SqlUtil;
/**
* 分页工具类
*
* @author liary
*/
public class PageUtils extends PageHelper
{
/**
* 设置请求分页数据
*/
public static void startPage()
{
PageDomain pageDomain = TableSupport.buildPageRequest();
Integer pageNum = pageDomain.getPageNum();
Integer pageSize = pageDomain.getPageSize();
String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
Boolean reasonable = pageDomain.getReasonable();
PageHelper.startPage(pageNum, pageSize, orderBy).setReasonable(reasonable);
}
/**
* 清理分页的线程变量
*/
public static void clearPage()
{
PageHelper.clearPage();
}
}
自定义的分页工具类
package com.liary.common.utils.page;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageInfo;
import com.liary.common.core.page.TableDataInfo;
import java.util.List;
/**
* 分页工具类
*
* @author admin
* @date 2024/03/20
*/
public class PaginationUtil {
/**
* 获取页面信息
*
* @param list 列表
* @param currentPage 当前页面
* @param pageSize 页面大小
* @return {@link TableDataInfo}
*/
public static <T> TableDataInfo getPageInfo(List<T> list, Integer currentPage, Integer pageSize) {
int total = list.size();
if (total > pageSize) {
int toIndex = pageSize * currentPage;
if (toIndex > total) {
toIndex = total;
}
list = list.subList(pageSize * (currentPage - 1), toIndex);
}
Page<T> page = new Page<>(currentPage, pageSize);
page.addAll(list);
page.setPages((total + pageSize - 1) / pageSize);
page.setTotal(total);
PageInfo<T> pageInfo = new PageInfo<>(page);
TableDataInfo rspData = new TableDataInfo();
rspData.setRows(list);
rspData.setTotal(pageInfo.getTotal());
return rspData;
}
}
== 获取分页参数==
//获取前端的分页参数
PageDomain pageDomain = TableSupport.buildPageRequest();
Integer pageNum = pageDomain.getPageNum();
Integer pageSize = pageDomain.getPageSize();
在分页接口中使用
@PostMapping("/list")
public TableDataInfo list(LiaryTaskDetailDf taskDetailDf) {
//获取前端的分页参数
PageDomain pageDomain = TableSupport.buildPageRequest();
Integer pageNum = pageDomain.getPageNum();
Integer pageSize = pageDomain.getPageSize();
//查询出的集合
List<LiaryTaskDetailDf> list = liaryPregStatisticsService.getPregResultList(taskDetailDf);
//使用自定义分页查询并返回数据
return PaginationUtil.getPageInfo(list, pageNum, pageSize);
}