public class PageModel {
    /**
     * 总共记录数
     */
    private int totalRow;
    /**
     * 当前页,默认为1
     */
    private int currentPage = 1;
    /**
     * 页的大小(默认显示10条)
     */
    private int pageSize    = 10;
    /**
     * 当前页的第一条记录的编号
     */
    private int offset      = 0;

    private Object data;


    /**
     * 获取当前页的第一条记录的编号
     *
     * @return
     */
    public int getStartRow() {
        return this.pageSize * (this.currentPage - 1);
    }

    public int getTotalRow() {
        return totalRow;
    }

    public void setTotalRow(int totalRow) {
        this.totalRow = totalRow;
    }

    public int getCurrentPage() {
        return this.currentPage;
    }
    // 获取分页大小

    public int getPageSize() {
        return pageSize;
    }

    // 设置分页大小
    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
        this.offset = getStartRow();
    }

    // 获取当前页记录的开始索引
    public int getBeginIndex() {
        int beginIndex = (currentPage - 1) * pageSize; 
        if (beginIndex < 0) {
            return 0;
        }
        return beginIndex;
    }

    /**
     * 计算总页数
     *
     * @param pageSize
     * @param totalRow
     * @return
     */
    public int countTotalPage(int pageSize, int totalRow) {
        int totalPage = totalRow % pageSize == 0 ? (totalRow / pageSize) : (totalRow / pageSize) + 1;
        return totalPage;
    }

    // 返回前一页的页码
    public int getPreviousPage() {
        if (currentPage - 1 <= 1) {
            return 1;
        } else {
            return currentPage - 1;
        }
    }

    public boolean hasPrevious() {
        return currentPage > 1;
    }

    public boolean isFirst() {
        return currentPage == 1;
    }

    public Object getData() {
        return data;
    }

    public void setData(Object data) {
        this.data = data;
    }

    public void setCurrentPage(int currentPage) {

        this.currentPage = currentPage;
        this.offset = getStartRow();
    }

    public int getOffset() {
        return offset;
    }

    public void setOffset(int offset) {
        this.offset = offset;
    }
}