package com.yxy.vwaiter.pojo.VO;
import com.github.pagehelper.Page;
import java.io.Serializable;
import java.util.Collection;
import java.util.List;
/**
-
@Description: 分页数据信息封装类
-
@author WangYaFeng
-
@Date 2018年08月24日 10:34
-
@Version
*/
public class Pagination implements Serializable {
public static final int DEFAULT_PAGE_SIZE = 10;private static final long serialVersionUID = 1188127446407349574L;
private long totalCount = 0;
private int pageSize = 10;
private int pageNo = 1;
private List results;public Pagination() {
}/**
- 构造器
- @param pageNo
-
页码
- @param pageSize
-
每页几条数据
- @param totalCount
-
总共几条数据
*/
public Pagination(int pageNo, int pageSize, long totalCount) {
setPageSize(pageSize);
setPageNo(pageNo);
setTotalCount(totalCount);
}/**
-
@Description: 使用pageHelp 分页拦截器后,可以使用此构造器将分页查询的list(Page)对象直接转换为Pagination对象。
-
@author WangYaFeng
-
@Date 2018年11月30日 9:11
-
@param list 分页查询的list(Page)对象
-
@return
-
@Version 1.3
*/
public Pagination(List list) {
if (list instanceof Page) {
Page page = (Page) list;
setPageNo(page.getPageNum());
setPageSize(page.getPageSize());
setTotalCount(page.getTotal());} else if (list instanceof Collection) {
setPageNo(1);
setPageSize( list.size());
setTotalCount(list.size());
}
if (list instanceof Collection) {
this.results = list;
}
}
/**
- 构造器
- @param pageNo
-
页码
- @param pageSize
-
每页几条数据
- @param totalCount
-
总共几条数据
- @param results
-
分页内容
*/
public Pagination(int pageNo, int pageSize, long totalCount, List results) {
this(pageNo,pageSize,totalCount);
this.results = results;
}/* (non-Javadoc)
- @see net.huaat.commons.paging.IPagination#getPageNo()
*/
public int getPageNo() {
return pageNo;
}
/**
- 设置当前页码
- @param pageNo
*/
public void setPageNo(int pageNo) {
if (pageNo < 1) {
this.pageNo = 1;
} else{
this.pageNo = pageNo;
}
}
/* (non-Javadoc)
- @see net.huaat.commons.paging.IPagination#getPageSize()
*/
public int getPageSize() {
return pageSize;
}
/**
- 设置每页条数
- @param pageSize
*/
public void setPageSize(int pageSize) {
if (pageSize < 1) {
this.pageSize = DEFAULT_PAGE_SIZE;
} else {
this.pageSize = pageSize;
}
}
/* (non-Javadoc)
- @see net.huaat.commons.paging.IPagination#getTotalCount()
*/
public long getTotalCount() {
return totalCount;
}
/**
-
设置记录条数
-
@param totalCount
*/
public void setTotalCount(long totalCount) {
if (totalCount < 0) {
this.totalCount = 0;
} else {
this.totalCount = totalCount;
}int totalPage = getTotalPage();
if(this.pageNo > totalPage){
this.pageNo = totalPage;
}
}
/* (non-Javadoc)
- @see net.huaat.commons.paging.IPagination#getTotalPage()
*/
public int getTotalPage() {
long totalPage = totalCount / pageSize;
if (totalPage == 0 || totalCount % pageSize != 0) {
totalPage++;
}
return (int)totalPage;
}
/* (non-Javadoc)
- @see net.huaat.commons.paging.IPagination#isFirstPage()
*/
public boolean isFirstPage() {
return pageNo <= 1;
}
/* (non-Javadoc)
- @see net.huaat.commons.paging.IPagination#isLastPage()
*/
public boolean isLastPage() {
return pageNo >= getTotalPage();
}
/* (non-Javadoc)
- @see net.huaat.commons.paging.IPagination#getPrePage()
*/
public int getPrePage() {
if (isFirstPage()) {
return pageNo;
} else {
return pageNo - 1;
}
}
/* (non-Javadoc)
- @see net.huaat.commons.paging.IPagination#getNextPage()
*/
public int getNextPage() {
if (isLastPage()) {
return pageNo;
} else {
return pageNo + 1;
}
}
/* (non-Javadoc)
- @see net.huaat.commons.paging.IPagination#getResults()
*/
public List getResults() {
return results;
}
/**
- 设置记录
- @param results
*/
public void setResults(List results) {
this.results = results;
}
/**
- 获取当前也第一条的序号
- @return
*/
public int getCurrPageFirst() {
return (pageNo - 1) * pageSize;
}
}