83 lines
1.8 KiB
Java

package com.example.model;
import java.util.ArrayList;
import java.util.List;
/**
* 分页响应类
*/
public class PageResponse<T> {
private int page;
private int size;
private long total;
private List<T> data;
public PageResponse() {
this.data = new ArrayList<>();
}
public PageResponse(int page, int size, long total, List<T> data) {
this.page = page;
this.size = size;
this.total = total;
this.data = data != null ? data : new ArrayList<>();
}
public static <T> PageResponse<T> of(PageRequest request, long total, List<T> data) {
return new PageResponse<>(request.getPage(), request.getSize(), total, data);
}
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public int getSize() {
return size;
}
public void setSize(int size) {
this.size = size;
}
public long getTotal() {
return total;
}
public void setTotal(long total) {
this.total = total;
}
public List<T> getData() {
return data;
}
public void setData(List<T> data) {
this.data = data != null ? data : new ArrayList<>();
}
public int getTotalPages() {
return size == 0 ? 0 : (int) Math.ceil((double) total / (double) size);
}
public boolean isHasNext() {
return page < getTotalPages();
}
public boolean isHasPrevious() {
return page > 1;
}
@Override
public String toString() {
return "PageResponse{" +
"page=" + page +
", size=" + size +
", total=" + total +
", data=" + data +
'}';
}
}