package com.ruoyi.common.utils;

import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.convert.Convert;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.Getter;

import java.util.List;

@Getter
@SuppressWarnings("unused")
public class PageWrapper<T> {

    /**
     * 页数
     */
    private final Integer pageNum;

    /**
     * 每页条数
     */
    private final Integer pageSize;

    /**
     * 总条数
     */
    private final Integer total;

    /**
     * 数据列表
     */
    private final List<T> rows;

    /**
     * 包装page成前端需要的格式
     */
    public PageWrapper(IPage<T> page) {
        this.pageNum = Convert.toInt(page.getPages());
        this.pageSize = Convert.toInt(page.getSize());
        this.total = Convert.toInt(page.getTotal());
        this.rows = page.getRecords();
    }

    /**
     * 包装page成前端需要的格式，并把数据列表转成指定实体
     */
    public PageWrapper(IPage<?> page, Class<T> cls) {
        this.pageNum = Convert.toInt(page.getPages());
        this.pageSize = Convert.toInt(page.getSize());
        this.total = Convert.toInt(page.getTotal());
        this.rows = BeanUtil.copyToList(page.getRecords(), cls);
    }

}
