#
zhou zhou
1 天以前 523365960513f297024a419f94b2b42eccd9456f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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;
}