package com.cars.ict.common.utils;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.io.Serializable;
import java.util.List;
/**
* 分页工具类
*
* @author Mark [email protected]
*/
public class PageUtils implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 总记录数
*/
private int totalCount;
/**
* 每页记录数
*/
private int pageSize;
/**
* 总页数
*/
private int totalPage;
/**
* 当前页数
*/
private int currPage;
/**
* 列表数据
*/
private List<?> list;
/**
* 分页
* @param list 列表数据
* @param totalCount 总记录数
* @param pageSize 每页记录数
* @param currPage 当前页数
*/
public PageUtils(List<?> list, int totalCount, int pageSize, int currPage) {
this.list = list;
this.totalCount = totalCount;
this.pageSize = pageSize;
this.currPage = currPage;
this.totalPage = (int)Math.ceil((double)totalCount/pageSize);
}
/**
* 分页
*/
public PageUtils(IPage<?> page) {
this.list = page.getRecords();
this.totalCount = (int)page.getTotal();
this.pageSize = (int)page.getSize();
this.currPage = (int)page.getCurrent();
this.totalPage = (int)page.getPages();
}
public int getTotalCount() {
return totalCount;
}
public void setTotalCount(int totalCount) {
this.totalCount = totalCount;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
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;
}
}
使用示例:
1、controller:
@GetMapping("/stationMonthOrYearList")
public R stationMonthOrYearList(String DEPTCODE, String date, String biaoshi, String yearOrMonth, Integer page, Integer pageSize){
PageUtils pageUtils = energyService.getMonthOrYearList(DEPTCODE, date, biaoshi, yearOrMonth, page, pageSize);
// Map<Integer, EnergyDetailVo> dayDeviceTypeEnergy = energyService.getMonthOrYearList(DEPTCODE, date, biaoshi, yearOrMonth);
return R.ok().setData(pageUtils);
}
2、service:
PageUtils getMonthOrYearList(String deptcode, String date, String biaoshi, String yearOrMonth, Integer page, Integer pageSize);
3、Impl:
.......
List<EnergyDetailVo> ret = ......
得到一个List类型的集合数据,然后使用下面的处理方式就可以实现分页操作了:
① .skip(Integer) 是跳过前几页显示Integer个数量之后的内容。
② new PageUtils( , , , ) 构造参数:第一个是计算后得到的想要分页的这里是List类型的数据,第二个参数是得到的数据的大小,
第三个参数是一页的大小,第四个参数是页码,也就是第几页。
List<EnergyDetailVo> collect = ret.stream().skip((long) (pageNum - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
return new PageUtils(collect, ret.size(), pageSize, pageNum);
分页总结:
1.引入工具类,也可以根据需要自定义工具类。
2.对得到的数据进行封装。
标签:分页,pageSize,currPage,int,list,totalCount,工具,public From: https://www.cnblogs.com/sensenh/p/16892980.html