分页对象封装

513 阅读1分钟

分页返回是开发中常用到的,前后端均基于规范开发,增加开发效率,如果每个项目都封装一个,还会导致类互相转换,造成不必要的资源浪费。

请求参数

package org.onedayday.framework.result;

import lombok.Data;

import java.io.Serializable;

/**
 * @author onedayday
 */
@Data
public class Pager<T> implements Serializable {

    private static final long serialVersionUID = 1L;
    /**
     * 每页显示
     */
    private int size = 10;

    /**
     * 页码
     */
    private int page = 1;

    /**
     * 下标
     */
    private int offset = 0;

    /**
     * 对象泛型
     */
    private T condition;


    public void setPage(int pageNo) {
        if (pageNo > 0) {
            this.page = pageNo;
            recalcOffset();
        }
    }

    /**
     * 重新计算下标
     */
    private void recalcOffset() {
        if (page > 0 && offset == 0) {
            offset = (page - 1) * size;
        }
    }

    public void setSize(int size) {
        if (size > 0) {
            this.size = size;
            recalcOffset();
        }
    }

}

返回值结构

package org.onedayday.framework.result;

import lombok.Data;

import java.io.Serializable;
import java.util.Collections;
import java.util.List;

/**
 * @author onedayday
 */
@Data
public class PagerResult<T> implements Serializable {

    private static final long serialVersionUID = 1L;

    private List<T> list = Collections.emptyList();

    private long total;

}