All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.fengwenyi.api.result.PageResponseVo Maven / Gradle / Ivy

package com.fengwenyi.api.result;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fengwenyi.javalib.jk.IBuilder;

import java.io.Serializable;

/**
 *
 * 分页响应 VO 类 


* *

* 这个类主要是存放分页的一些属性,包含如下字段: *

* *
    *
  • {@code currentPage} :当前页
  • *
  • {@code pageSize} :每页显示条数
  • *
  • {@code totalRows} :总条数
  • *
  • {@code totalPages} :总页数
  • *
  • {@code content} :数据
  • *
* *

* 改动说明:属性与之前保持不变,只是改了类名。另外,增加构建者模式 *

* * @author Erwin Feng * @since 2.4.1 */ @JsonInclude(JsonInclude.Include.NON_NULL) public class PageResponseVo implements Serializable { private static final long serialVersionUID = 7772247147295029134L; /** * 当前页 *

* 将Integer改为Long的原因:假如你的总页数远远大于整数的最大数, * 那么这样就很难处理了。但修改之后,并不会影响我们现有的业务 *

*/ private Long currentPage; /** * 每页显示条数 */ private Integer pageSize; /** * 总条数 */ private Long totalRows; /** * 总页数 */ private Long totalPages; /** * 响应数据 */ private T content; /** * 无参数构造方法 */ public PageResponseVo() { } /** * 构造方法 * @param currentPage 当前页 * @param pageSize 分页大小 * @param totalRows 总行数 * @param totalPages 总页数 * @param content 内容 */ public PageResponseVo(Long currentPage, Integer pageSize, Long totalRows, Long totalPages, T content) { this.currentPage = currentPage; this.pageSize = pageSize; this.totalRows = totalRows; this.totalPages = totalPages; this.content = content; } /** * 获取当前页 * @return 返回当前页 */ public Long getCurrentPage() { return currentPage; } /** * 设置当前页 * @param currentPage 当前页 * @return PageResponseVo */ public PageResponseVo setCurrentPage(Long currentPage) { this.currentPage = currentPage; return this; } /** * 获取分页大小 * @return 分页大小 */ public Integer getPageSize() { return pageSize; } /** * 设置分页大小 * @param pageSize 分页大小 * @return PageResponseVo */ public PageResponseVo setPageSize(Integer pageSize) { this.pageSize = pageSize; return this; } /** * 获取总条数 * @return 总条数 */ public Long getTotalRows() { return totalRows; } /** * 设置总条数 * @param totalRows 总条数 * @return PageResponseVo */ public PageResponseVo setTotalRows(Long totalRows) { this.totalRows = totalRows; return this; } /** * 获取总页数 * @return 总页数 */ public Long getTotalPages() { return totalPages; } /** * 设置总页数 * @param totalPages 总页数 * @return PageResponseVo */ public PageResponseVo setTotalPages(Long totalPages) { this.totalPages = totalPages; return this; } /** * 获取内容 * @return 内容 */ public T getContent() { return content; } /** * 设置内容 * @param content 内容 * @return PageResponseVo */ public PageResponseVo setContent(T content) { this.content = content; return this; } /** * PageResponse构造者,可通过该类构造出PageResponseVo * @param 范型 */ public static class Builder implements IBuilder> { // PageResponseVo 对象 private final PageResponseVo pageResponseVo; /** * 无参数构造方法,new一个 PageResponseVo 对象 */ public Builder() { pageResponseVo = new PageResponseVo<>(); } /** * 设置当前页 * @param currentPage 当前页 * @return Builder */ public Builder currentPage(long currentPage) { this.pageResponseVo.currentPage = currentPage; return this; } /** * 设置分页大小 * @param pageSize 分页大小 * @return Builder */ public Builder pageSize(int pageSize) { this.pageResponseVo.pageSize = pageSize; return this; } /** * 设置总条数 * @param totalRows 总条数 * @return Builder */ public Builder totalRows(long totalRows) { this.pageResponseVo.totalRows = totalRows; return this; } /** * 设置总页数 * @param totalPages 总页数 * @return Builder */ public Builder totalPages(long totalPages) { this.pageResponseVo.totalPages = totalPages; return this; } /** * 给属性赋值完成,调该方法可构造出PageResponseVo的对象 * @return PageResponseVo */ public PageResponseVo build() { return this.pageResponseVo; } } /** * toString方法 * @return 将属性及对应值拼接成字符串 */ @Override public String toString() { return "PageResponseVo{" + "currentPage=" + currentPage + ", pageSize=" + pageSize + ", totalRows=" + totalRows + ", totalPages=" + totalPages + ", content=" + content + '}'; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy