Files
shz-dataDashboard/ruoyi-bussiness/src/main/java/com/ruoyi/cms/util/PageUtil.java
2026-06-27 01:58:14 +08:00

68 lines
1.6 KiB
Java

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 <T> 类型
* @return 空分页
*/
public static <T> PageVO<T> empty() {
return PageVO.<T>builder()
.list(new ArrayList<>())
.total(0L)
.totalPage(0)
.isFirst(true)
.isLast(true)
.build();
}
/**
* 初始化分页
*
* @param list 内容列表
* @param total 总数
* @param pageNo 页码
* @param pageSize 每页数量
* @param <T> 类型
* @return 分页
*/
public static <T> PageVO<T> init(List<T> 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.<T>builder()
.list(list)
.total(total)
.totalPage(totalPage)
.isFirst(pageNo.equals(PageDTO.PAGE_NO))
.isLast(pageNo.equals(totalPage))
.build();
}
}