/**
* 處理接口返回數據, 獲取分頁後的數據列表
*
* @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;
}