博客 / 詳情

返回

java 藉助PageInfo的list通用分頁處理

/**
 * 處理接口返回數據, 獲取分頁後的數據列表
 *
 * @param list     待分頁數據列表
 * @param pageNum  頁碼
 * @param pageSize 頁面數量
 * @return com.github.pagehelper.PageInfo
 * @author chengxianwei
 * @date 2023/1/12
 */
public static <T> PageInfo startPageList(List<T> list, Integer pageNum, Integer pageSize) {
    // 總條數
    int total = list.size();
    // 頁大小
    int size = pageNum * pageSize;
    // 總頁數 總條數 取模 頁大小
    int pages = total % size == 0 ? total / size : total / size + 1;
    // 結束索引 頁大小大於總條數時,為總條數, 否則為頁大小
    int toIndex = size > total ? total : size;

    // 開始索引
    int fromIndex = (pageNum - 1) * pageSize;
    if (fromIndex > toIndex) {
        fromIndex = 1;
    }

    // 截取數據
    List<T> dataList = list.subList(fromIndex, toIndex);

    // 分頁數據
    PageInfo<T> pageInfo = new PageInfo<>(list);
    pageInfo.setTotal(total);
    pageInfo.setPages(pages);
    pageInfo.setPageNum(pageNum);
    pageInfo.setPageSize(pageSize);
    pageInfo.setList(dataList);

    return pageInfo;
}
user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.