public static PageInfo<Long> cutPage(SegmentVo vo, List<Long> segmentIds) {
PageInfo<Long> result = new PageInfo<>();
int total = segmentIds.size();
int currentPage = vo.getPageNo();
int pageSize = vo.getPageSize();
List<Long> pageList = new ArrayList<>();
if ( total > pageSize){
int toIndex = pageSize * currentPage;
if (toIndex > total){
toIndex = total;
}
if (total < pageSize * (currentPage - 1)) {
pageList = new ArrayList<>();
} else {
pageList = segmentIds.subList(pageSize * (currentPage - 1), toIndex);
}
} else {
pageList.addAll(segmentIds);
}
result.setRecords(pageList);
result.setTotal((total / pageSize)+(total % pageSize !=0? 1 : 0));
return result;
}
@Data
public class PageInfo<T> implements Serializable {
private List<T> records;
private Integer total;
}