package com.youlai.boot.common.result; import com.baomidou.mybatisplus.core.metadata.IPage; import lombok.Data; import java.io.Serializable; import java.util.Collections; import java.util.List; /** * 分页响应结构体 * * @author Ray.Hao * @since 2022/2/18 */ @Data public class PageResult implements Serializable { private String code; private String msg; private PageData data; /** * 构建分页结果(MyBatis-Plus {@link IPage})。 * *

data 为当前页记录列表;page 提供分页元信息。

*/ public static PageResult success(IPage page) { PageResult result = new PageResult<>(); result.setCode(ResultCode.SUCCESS.getCode()); result.setMsg(ResultCode.SUCCESS.getMsg()); List records = (page == null || page.getRecords() == null) ? Collections.emptyList() : page.getRecords(); PageData pageData = new PageData<>(); pageData.setList(records); pageData.setTotal(page != null ? page.getTotal() : 0L); result.setData(pageData); return result; } /** * 构建列表结果(无分页)。 * *

page 置为 null,用于与分页返回区分。

*/ public static PageResult success(List list) { PageResult result = new PageResult<>(); result.setCode(ResultCode.SUCCESS.getCode()); result.setMsg(ResultCode.SUCCESS.getMsg()); PageData pageData = new PageData<>(); pageData.setList(list != null ? list : Collections.emptyList()); pageData.setTotal(0L); result.setData(pageData); return result; } @Data public static class PageData { private List list; private long total; } }