package com.ruoyi.cms.util; import com.ruoyi.cms.domain.dto.PageDTO; import com.ruoyi.cms.domain.vo.PageVO; import java.util.ArrayList; import java.util.List; import java.util.Optional; /** * 分页工具类 * * @author 马宝龙 * @date 2026/6/26 */ public class PageUtil { private PageUtil() { } /** * 返回空分页对象 * * @param 类型 * @return 空分页 */ public static PageVO empty() { return PageVO.builder() .list(new ArrayList<>()) .total(0L) .totalPage(0) .isFirst(true) .isLast(true) .build(); } /** * 初始化分页 * * @param list 内容列表 * @param total 总数 * @param pageNo 页码 * @param pageSize 每页数量 * @param 类型 * @return 分页 */ public static PageVO init(List list, Long total, Integer pageNo, Integer pageSize) { total = Optional.ofNullable(total).orElse(0L); pageNo = Optional.ofNullable(pageNo).orElse(PageDTO.PAGE_NO); pageSize = Optional.ofNullable(pageSize).orElse(PageDTO.PAGE_SIZE); int totalPage = (int) (total / pageSize); int morePage = (int) (total % pageSize); if (morePage > 0) { totalPage += 1; } return PageVO.builder() .list(list) .total(total) .totalPage(totalPage) .isFirst(pageNo.equals(PageDTO.PAGE_NO)) .isLast(pageNo.equals(totalPage)) .build(); } }