package com.doumee.core.model; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.pagehelper.PageInfo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; import java.util.List; /** * @author Eva.Caesar Liu * @since 2025/03/31 16:44 */ @Data @ApiModel("分页对象") public class PageData implements Serializable { @ApiModelProperty("目标页") private long page; @ApiModelProperty("页容量") private long capacity; @ApiModelProperty("总记录数") private long total; @ApiModelProperty("当前页的数据") private List records; public PageData(long page, long capacity) { this.page = page; this.capacity = capacity; } /** * 根据MyBatis Plus分页对象组装 * * @param pageInfo MyBatisPlus分页对象 * @return PageData */ public static PageData from(IPage pageInfo) { PageData pageData = new PageData(pageInfo.getCurrent(), pageInfo.getSize()); pageData.total = pageInfo.getTotal(); pageData.records = pageInfo.getRecords(); return pageData; } /** * 根据MyBatis原生分页对象组装 * * @param pageInfo MyBatis分页对象 * @return PageData */ public static PageData from(PageInfo pageInfo) { PageData pageData = new PageData<>(pageInfo.getPageNum(), pageInfo.getPageSize()); pageData.total = pageInfo.getTotal(); pageData.records = pageInfo.getList(); return pageData; } /** * 处理异常页容量 */ public long getCapacity () { return capacity <= 0 ? 10 : capacity; } /** * 获取总页数 */ @ApiModelProperty("总页数") public long getPageCount(){ if(this.getTotal() % this.getCapacity() == 0){ long pc = this.getTotal()/this.getCapacity(); return pc == 0 ? 1 : pc; } return this.getTotal()/this.getCapacity() + 1; } }