package com.platform.utils;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * MybatisPlus分页工具类
 * 兼容原有的分页，所以不用原来的PageUtils
 *
 * @author lipengjun
 * @email 939961241@qq.com
 * @date 2016年11月4日 下午12:59:00
 */
@Data
public class PageUtilsPlus implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 总记录数
     */
    private Long totalCount;
    /**
     * 每页记录数
     */
    private Long limit;
    /**
     * 总页数
     */
    private Long totalPage;
    /**
     * 当前页数
     */
    private Long page;
    /**
     * 列表数据
     */
    private List<?> list;

    /**
     * 分页
     */
    public static PageUtilsPlus  page(Page<?> page) {
        return page(page.getRecords(),page.getTotal(),page.getSize(),page.getCurrent());
    }
    public static PageUtilsPlus  page(List<?> list,Page<?> page) {
        return page(list,page.getTotal(),page.getSize(),page.getCurrent());
    }
    public static PageUtilsPlus page(IPage<?> page) {
        return page(page.getRecords(),page.getTotal(),page.getSize(),page.getCurrent());
    }
    public static PageUtilsPlus  page(List<?> list,IPage<?> page) {
        return page(list,page.getTotal(),page.getSize(),page.getCurrent());
    }
    public static PageUtilsPlus page(List<?> list,Long totalCount,Long pageSize,Long currPage) {
        PageUtilsPlus pageUtilsPlus = new PageUtilsPlus();
        pageUtilsPlus.setList(list);
        pageUtilsPlus.setTotalCount(totalCount);
        pageUtilsPlus.setLimit(pageSize);
        pageUtilsPlus.setPage(currPage);
        return pageUtilsPlus;
    }

}
