Просмотр исходного кода

修改分页列表 PageList 对象

reghao 3 лет назад
Родитель
Сommit
f372f4ad3e

+ 38 - 47
jdk/src/main/java/cn/reghao/jutil/jdk/db/PageList.java

@@ -1,6 +1,6 @@
 package cn.reghao.jutil.jdk.db;
 
-import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 
 /**
@@ -11,83 +11,74 @@ import java.util.List;
  */
 public class PageList<T> {
     // 当前页
+    private final int pageNumber;
+    // 每页大小
+    private final int pageSize;
+    // 总页数
+    private final int totalPages;
+    // 总记录数量
+    private final int totalSize;
+    // 是否最后一页
+    private final boolean hasNext;
+    // 当前页元素
+    private final List<T> list;
+
+    // 当前页
+    @Deprecated
     private int page;
     // 当前页大小
+    @Deprecated
     private int size;
     // 根据当前页大小计算得出的总页数
-    private int pages;
-    // 总记录数量
-    private int total;
-    // 每页大小
     @Deprecated
-    private int pageSize;
+    private int pages;
     // 总数量
     @Deprecated
-    private long totalSize;
-    // 总页数
-    @Deprecated
-    private int totalPages;
-    // 是否最后一页
-    private boolean hasNext;
-    private List<T> list;
-
-    public int getPageSize() {
-        return pageSize;
-    }
+    private int total;
 
-    public void setPageSize(int pageSize) {
+    private PageList(int pageNumber, int pageSize, int totalSize, List<T> list) {
+        this.pageNumber = pageNumber;
         this.pageSize = pageSize;
+        this.totalSize = totalSize;
+        this.totalPages = totalSize/pageSize + (totalSize%pageSize != 0 ? 1 : 0);
+        this.list = list;
+        this.hasNext = (total - pageSize*pageNumber > 0);
+
     }
 
-    public long getTotalSize() {
-        return totalSize;
+    public int getPageNumber() {
+        return pageNumber;
     }
 
-    public void setTotalSize(long totalSize) {
-        this.totalSize = totalSize;
+    public int getPageSize() {
+        return pageSize;
     }
 
     public int getTotalPages() {
         return totalPages;
     }
 
-    public void setTotalPages(int totalPages) {
-        this.totalPages = totalPages;
+    public long getTotalSize() {
+        return totalSize;
     }
 
-    public boolean isHasNext() {
+    public boolean hasNext() {
         return hasNext;
     }
 
-    public void setHasNext(boolean hasNext) {
-        this.hasNext = hasNext;
-    }
-
     public List<T> getList() {
         return list;
     }
 
-    public void setList(List<T> list) {
-        this.list = list;
-    }
-
     public static <T> PageList<T> empty() {
-        PageList<T> pageList = new PageList<>();
-        pageList.setPageSize(0);
-        pageList.setTotalSize(0);
-        pageList.setTotalPages(0);
-        pageList.setHasNext(false);
-        pageList.setList(new ArrayList<>());
-        return pageList;
+        return new PageList<>(1, 0, 0, Collections.emptyList());
     }
 
     public static <T> PageList<T> pageList(List<T> list) {
-        PageList<T> pageList = new PageList<>();
-        pageList.setPageSize(list.size());
-        pageList.setTotalSize(list.size());
-        pageList.setTotalPages(list.size());
-        pageList.setHasNext(true);
-        pageList.setList(list);
-        return pageList;
+        return new PageList<>(1, 0, 0, Collections.emptyList());
+    }
+
+    public static <T> PageList<T> pageList(int pageNumber, int pageSize, int total, List<T> list) {
+        return new PageList<>(pageNumber, pageSize, total, list);
     }
 }

+ 1 - 0
jdk/src/main/java/cn/reghao/jutil/jdk/db/Pager.java

@@ -7,6 +7,7 @@ import java.util.List;
  * @author reghao
  * @date 2022-05-31 16:23:04
  */
+@Deprecated
 public class Pager<T> implements Serializable {
     private static final long serialVersionUID = 1L;