package com.jshoperx.action.backstage.utils;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.util.List;
/**
* Created with sdywcd@gmail.com
* Author:sdywcd@gmail.com
* Date:15/7/23
* Time:下午5:06
* Note:页面分业模版辅助类
**/
public class PageModel<T>
{
/** 总记录数 **/
private long totalRecord;
/** 分页数据 **/
private List<T> list;
/** 当前页 **/
private int pageNo;
/** 每页大小 **/
private int pageSize;
/** 首页 **/
private int topPages;
/** 上一页 **/
private long previousPageNo;
/** 下一页 **/
private long nextPageNo;
/** 总页数 **/
private long totalPage = 1;
/** 页码开始索引和结束索引 **/
private PageIndex pageIndex;
/** 页码数量 **/
private int pageCode = 10;
/**
* 默认构造方法
*/
public PageModel()
{
}
/**
* 构造方法
* @param pageNo 当前页
* @param pageSize 每页大小
* @param list 结果集
* @param totalRecord 总记录数
*/
public PageModel(int pageNo, int pageSize, List<T> list, long totalRecord)
{
this.pageNo = pageNo;
this.pageSize = pageSize;
this.list = list;
this.totalRecord = totalRecord;
this.totalPage = getTotalpage();
this.pageIndex = PageIndex.getPageIndex(pageCode, pageNo, totalPage);
nextPageNo = getNextPageNo();
previousPageNo = getPreviousPageNo();
topPages = 1;
}
/**
* 总页数
* @return long 总页数
*/
public long getTotalpage()
{
long l = this.totalRecord % this.pageSize == 0 ? this.totalRecord
/ this.pageSize : this.totalRecord / this.pageSize + 1;
return l;
}
/**
* 首页
* @return int 首页
*/
public int getTopPages()
{
return 1;
}
/**
* 尾页
* @return long 尾页
*/
public long getBottomPages()
{
return getTotalpage() == 0 ? 1 : getTotalpage();
}
/**
* 上一页
* @return long 上一页
*/
public long getPreviousPageNo()
{
if (pageNo <= 1)
{
return 1;
}
return pageNo - 1;
}
/**
* 下一页
* @return long 下一页
*/
public long getNextPageNo()
{
if (pageNo >= getTotalpage())
{
return getTotalpage() == 0 ? 1 : getTotalpage();
}
return pageNo + 1;
}
public long getTotalRecord()
{
return totalRecord;
}
public void setTotalRecord(long totalRecord)
{
this.totalRecord = totalRecord;
}
public List<T> getList()
{
return list;
}
public void setList(List<T> list)
{
this.list = list;
}
public int getPageNo()
{
return pageNo;
}
public void setPageNo(int pageNo)
{
this.pageNo = pageNo;
}
public int getPageSize()
{
return pageSize;
}
public void setPageSize(int pageSize)
{
this.pageSize = pageSize;
}
public PageIndex getPageIndex()
{
return pageIndex;
}
public void setPageIndex(PageIndex pageIndex)
{
this.pageIndex = pageIndex;
}
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this, ToStringStyle.MULTI_LINE_STYLE);
}
}