PageUtil
package com.jjkj.aj.business.config;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.BeanUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class PageUtil {
/**
* 一页多少条数据
*/
public static final int PAGE_SIZE = 10;
/**
* 数据总数key
*/
public static final String PAGE_COUNT = "totalCount";
/**
* 总共有多少页
*/
public static final String PAGE_PAGES = "pagesCount";
/**
* 一页多少条数
*/
public static final String PAGE_PAGESIZE = "pageSize";
/**
* 当前页数
*/
public static final String PAGE_PAGE = "pageNum";
/**
* 传入当前需要查询的第几页不传默认差寻第一页
*
* @param pageNum 当前页
*/
public static void startPage(Integer pageNum) {
if (pageNum == null) {
pageNum = 1;
}
PageHelper.startPage(pageNum, PAGE_SIZE);
}
/**
* 传入当前需要查询的第几页不传默认差寻第一页
*
* @param pageNum 当前页
* @param size 一页多少数据
*/
public static void startPage(Integer pageNum, Integer size) {
if (pageNum == null) {
pageNum = 1;
}
PageHelper.startPage(pageNum, size);
}
/**
* 查询第1页数据
*/
public static void startPage() {
startPage(null);
}
/**
* 传入list获取分页参数
*
* @param list 数据集合
*
* @return
*/
public static Map<String, Object> getMap(List<?> list) {
Map<String, Object> map = new HashMap<String, Object>();
return setMap(map,list,"list");
}
public static Map<String, Object> setMap(Map<String, Object> map,List<?> list,String listName) {
PageInfo<?> pageInfo = new PageInfo(list);
if (CollectionUtils.isEmpty(list)) {
map.put(PAGE_COUNT, 0);
map.put(PAGE_PAGES, 0);
map.put(PAGE_PAGESIZE, 0);
map.put(PAGE_PAGE, 0);
} else {
map.put(PAGE_COUNT, pageInfo.getTotal());
map.put(PAGE_PAGES, pageInfo.getPages());
map.put(PAGE_PAGESIZE, pageInfo.getPageSize());
// map.put(PAGE_PAGESIZE, PAGE_SIZE);
map.put(PAGE_PAGE, pageInfo.getPageNum());
}
map.put(listName, list);
return map;
}
public static PageData<?> getPage(List<?> list) {
Map<String, Object> map = getMap(list);
PageData<?> dest = new PageData<>(1, 10);
BeanUtils.copyProperties(dest, map);
return dest;
}
public static long getTotalPages(Long count, Long size) {
if (count == null || count == 0) {
return 0;
}
long totalPages = count / size;
if (count % size != 0) {
totalPages++;
}
return totalPages;
}
}
PageData
package com.jjkj.aj.business.config;
import com.fasterxml.jackson.annotation.JsonInclude;
import org.apache.poi.ss.formula.functions.T;
import java.util.ArrayList;
import java.util.List;
@JsonInclude(JsonInclude.Include.NON_NULL)
public class PageData<T> {
/**
* 创建一个新的实例 PageData.
*
* @param page 当前页
* @param pageSize 页面展示数量
*/
public PageData(Integer page, Integer pageSize) {
this.page = page;
this.pageSize = pageSize;
}
// 数据集合
List<T> list = new ArrayList<T>();
/**
* 总页数
*/
private Integer pagesCount = 1;
/**
* 总数量
*/
private Integer totalCount = 0;
/**
* 当前页
*/
private Integer page = 1;
/**
* 页面展示数量
*/
private Integer pageSize = 10;
public Integer getPage() {
return page;
}
public void setPage(Integer page) {
this.page = page;
}
public Integer getPageSize() {
return pageSize;
}
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
public Integer getPagesCount() {
this.pagesCount = ((this.getTotalCount() - 1) / pageSize) + 1;
return pagesCount;
}
public Integer getTotalCount() {
return totalCount;
}
public void setTotalCount(Integer totalCount) {
this.totalCount = totalCount;
}
public List<T> getList() {
return list;
}
public void setList(List<T> list) {
this.list = list;
}
}
使用方式
注意:如上图片的分页是有问题的因为调用了dataMap2Java驼峰方法
在PageUtil里面的这个查询不能进行任何的java逻辑处理,否则分页会失效