根据页码和每页数量手动分页List。
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class CommonalityQuery<T> {
private Integer pageNumber; //页码
private Integer quantity; //每页多少条
private Long count; //总共多少条
private T query; //查询额条件
private List<T> resultList; //返回的查询结果
private Date startTime; //查询的通用时间
private Date endTime; //查询结束时间
}
List<OrderFormSub> subResultList = new ArrayList<>();
for (OrderFormList obj : resultList) {
subResultList.addAll(obj.getOrderFormsSubList());
}
int pageNumber = query.getPageNumber(); // 当前页码
int quantity = query.getQuantity(); // 每页显示的记录数
int totalSize = subResultList.size(); // 总记录数
// 计算最大页数
int maxPageNumber = (totalSize + quantity - 1) / quantity;
// 检查请求的页码是否超过最大页数
if (pageNumber > maxPageNumber) {
// 如果超过了,返回空的结果集
query.setResultList(new ArrayList<>());
} else {
// 计算当前页的起始索引和结束索引
int startIndex = (pageNumber - 1) * quantity;
int endIndex = Math.min(startIndex + quantity, totalSize);
// 获取当前页的子列表
List<OrderFormSub> pagedSubResultList = subResultList.subList(startIndex, endIndex);
// 设置分页后的结果和数量
query.setResultList(pagedSubResultList);
}
query.setCount((long) subResultList.size());
// 返回响应结果
return new ResponseResult<>(200, "查询成功!", query);