// 声明该类所在的包为 com.utils package com.utils; // 导入 Serializable 接口,用于实现对象的序列化 import java.io.Serializable; // 导入 List 接口,用于存储列表数据 import java.util.List; // 导入 Map 接口,用于存储键值对数据 import java.util.Map; // 导入 MyBatis-Plus 框架的 Page 类,用于分页操作 import com.baomidou.mybatisplus.plugins.Page; // 定义一个公共类 PageUtils,用于处理分页相关的操作,实现 Serializable 接口以便对象可以序列化 public class PageUtils implements Serializable { // 定义序列化版本号,用于在反序列化时验证版本一致性 private static final long serialVersionUID = 1L; // 定义一个长整型变量,用于存储总记录数 private long total; // 定义一个整型变量,用于存储每页显示的记录数 private int pageSize; // 定义一个长整型变量,用于存储总页数 private long totalPage; // 定义一个整型变量,用于存储当前页码 private int currPage; // 定义一个泛型列表,用于存储分页显示的数据 private List list; // 定义一个构造函数,根据传入的列表数据、总记录数、每页记录数和当前页数进行分页信息初始化 public PageUtils(List list, int totalCount, int pageSize, int currPage) { // 将传入的列表数据赋值给类的成员变量 this.list = list; // 将传入的总记录数赋值给类的成员变量 this.total = totalCount; // 将传入的每页记录数赋值给类的成员变量 this.pageSize = pageSize; // 将传入的当前页数赋值给类的成员变量 this.currPage = currPage; // 计算总页数,使用 Math.ceil 方法确保结果向上取整 this.totalPage = (int) Math.ceil((double) totalCount / pageSize); } // 定义一个构造函数,根据 MyBatis-Plus 的 Page 对象进行分页信息初始化 public PageUtils(Page page) { // 获取 Page 对象中的记录列表并赋值给类的成员变量 this.list = page.getRecords(); // 获取 Page 对象中的总记录数并赋值给类的成员变量 this.total = page.getTotal(); // 获取 Page 对象中的每页记录数并赋值给类的成员变量 this.pageSize = page.getSize(); // 获取 Page 对象中的当前页码并赋值给类的成员变量 this.currPage = page.getCurrent(); // 获取 Page 对象中的总页数并赋值给类的成员变量 this.totalPage = page.getPages(); } // 定义一个构造函数,根据参数 Map 生成 Page 对象并进行分页信息初始化 public PageUtils(Map params) { // 根据参数 Map 创建一个 Query 对象,并获取其对应的 Page 对象 Page page = new Query(params).getPage(); // 调用另一个构造函数,使用生成的 Page 对象进行初始化 new PageUtils(page); } // 定义一个公共方法,用于获取每页记录数 public int getPageSize() { return pageSize; } // 定义一个公共方法,用于设置每页记录数 public void setPageSize(int pageSize) { this.pageSize = pageSize; } // 定义一个公共方法,用于获取当前页码 public int getCurrPage() { return currPage; } // 定义一个公共方法,用于设置当前页码 public void setCurrPage(int currPage) { this.currPage = currPage; } // 定义一个公共方法,用于获取列表数据 public List getList() { return list; } // 定义一个公共方法,用于设置列表数据 public void setList(List list) { this.list = list; } // 定义一个公共方法,用于获取总页数 public long getTotalPage() { return totalPage; } // 定义一个公共方法,用于设置总页数 public void setTotalPage(long totalPage) { this.totalPage = totalPage; } // 定义一个公共方法,用于获取总记录数 public long getTotal() { return total; } // 定义一个公共方法,用于设置总记录数 public void setTotal(long total) { this.total = total; } }