package com.rongyichuang.common.dto;
|
|
import java.util.List;
|
|
/**
|
* 分页响应DTO
|
*/
|
public class PageResponse<T> {
|
|
private List<T> content;
|
private Integer page;
|
private Integer size;
|
private Long total;
|
private Integer totalPages;
|
|
public PageResponse() {}
|
|
public PageResponse(List<T> content, Long total, Integer page, Integer size) {
|
this.content = content;
|
this.page = page;
|
this.size = size;
|
this.total = total;
|
this.totalPages = (int) Math.ceil((double) total / size);
|
}
|
|
// 静态工厂方法
|
public static <T> PageResponse<T> of(List<T> content, Long total, PageRequest pageRequest) {
|
return new PageResponse<>(content, total, pageRequest.getPage(), pageRequest.getSize());
|
}
|
|
// 添加便于GraphQL使用的方法
|
public Long getTotalElements() {
|
return total;
|
}
|
|
public Integer getNumber() {
|
return page;
|
}
|
|
public Boolean getFirst() {
|
return page == 0;
|
}
|
|
public Boolean getLast() {
|
return page >= totalPages - 1;
|
}
|
|
// Getters and Setters
|
public List<T> getContent() {
|
return content;
|
}
|
|
public void setContent(List<T> content) {
|
this.content = content;
|
}
|
|
public Integer getPage() {
|
return page;
|
}
|
|
public void setPage(Integer page) {
|
this.page = page;
|
}
|
|
public Integer getSize() {
|
return size;
|
}
|
|
public void setSize(Integer size) {
|
this.size = size;
|
}
|
|
public Long getTotal() {
|
return total;
|
}
|
|
public void setTotal(Long total) {
|
this.total = total;
|
}
|
|
public Integer getTotalPages() {
|
return totalPages;
|
}
|
|
public void setTotalPages(Integer totalPages) {
|
this.totalPages = totalPages;
|
}
|
}
|