@Data
public class RestPage<T> implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
//元素内容
private List<T> content;
//是否有上一页
private boolean first;
//是否有下一页
private boolean last;
//当前页
private int number;
//当页条数
private int numberOfElements;
//页大小
private int size;
//总条数
private long totalElements;
//总页数
private int totalPages;
public RestPage() {
}
@SuppressWarnings({"rawtypes", "unchecked"})
public RestPage(Page page) {
this.content = page.getContent();
this.first = page.isFirst();
this.last = page.isLast();
this.number = page.getNumber();
this.numberOfElements = page.getNumberOfElements();
this.size = page.getSize();
this.totalElements = page.getTotalElements();
this.totalPages = page.getTotalPages();
}
@SuppressWarnings({"rawtypes", "unchecked"})
public RestPage(Page page, List content) {
this.content = content;
this.first = page.isFirst();
this.last = page.isLast();
this.number = page.getNumber();
this.numberOfElements = page.getNumberOfElements();
this.size = page.getSize();
this.totalElements = page.getTotalElements();
this.totalPages = page.getTotalPages();
}
public RestPage(QueryResults queryResults) {
//当前页
long currenPage = queryResults.getOffset()/queryResults.getLimit();
//总页数
long PageCount = queryResults.getTotal()%queryResults.getLimit() == 0?queryResults.getTotal()/queryResults.getLimit():queryResults.getTotal()/queryResults.getLimit()+1;
//是否有上一页
Boolean queryResultsIsFirst = currenPage==0?false:true;
//是否有下一页
Boolean queryResultsIsLast = currenPage+1<PageCount?true:false;
this.content = queryResults.getResults();
this.first = queryResultsIsFirst;
this.last = queryResultsIsLast;
this.number = (int)currenPage;
this.numberOfElements = queryResults.getResults().size();
this.size = (int)queryResults.getLimit();
this.totalElements = queryResults.getTotal();
this.totalPages = (int)PageCount;
}
public RestPage(QueryResults queryResults,List content) {
//当前页
long currenPage = queryResults.getOffset()/queryResults.getLimit();
//总页数
long PageCount = queryResults.getTotal()%queryResults.getLimit() == 0?queryResults.getTotal()/queryResults.getLimit():queryResults.getTotal()/queryResults.getLimit()+1;
//是否有上一页
Boolean queryResultsIsFirst = currenPage==0?false:true;
//是否有下一页
Boolean queryResultsIsLast = currenPage+1<PageCount?true:false;
this.content = content;
this.first = queryResultsIsFirst;
this.last = queryResultsIsLast;
this.number = (int)currenPage;
this.numberOfElements = queryResults.getResults().size();
this.size = (int)queryResults.getLimit();
this.totalElements = queryResults.getTotal();
this.totalPages = (int)PageCount;
}
}