package com.vincent.rsf.server.common.domain;
|
|
import lombok.Data;
|
|
import java.util.List;
|
|
/**
|
* 通用游标分页返回体。
|
*
|
* <p>对外响应结构刻意保持简单,只暴露游标分页真正需要的 4 个字段,
|
* 不再返回传统页码分页里的 {@code total/current/pages}。</p>
|
*
|
* <p>字段语义约定:</p>
|
* <ul>
|
* <li>{@code records}:当前页实际返回的数据</li>
|
* <li>{@code pageSize}:本次查询最终采用的分页大小(包含默认值回退后的结果)</li>
|
* <li>{@code nextCursor}:下一页应当使用的游标;没有下一页时为 {@code null}</li>
|
* <li>{@code hasNext}:是否还有下一页</li>
|
* </ul>
|
*
|
* <p>这样设计的目的是让 controller 直接 {@code R.ok().add(result)},
|
* 同时让前端只关心“有没有下一页”和“下一页该带什么 cursor”。</p>
|
*/
|
@Data
|
public class CursorPageResult<T> {
|
|
/** 当前页数据列表。 */
|
private List<T> records;
|
|
/** 当前请求最终生效的分页大小。 */
|
private Integer pageSize;
|
|
/**
|
* 下一页要携带的游标值。
|
*
|
* <p>约定取“当前页最后一条记录”的游标字段值。
|
* 如果没有下一页,则返回 null。</p>
|
*/
|
private Long nextCursor;
|
|
/** 是否还存在下一页。 */
|
private Boolean hasNext;
|
}
|