|
@@ -0,0 +1,114 @@
|
|
|
+package com.caimei.module.base.entity.bo;
|
|
|
+
|
|
|
+import lombok.Builder;
|
|
|
+import lombok.Data;
|
|
|
+
|
|
|
+import java.io.Serializable;
|
|
|
+import java.util.Collection;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+/**
|
|
|
+ * Description
|
|
|
+ *
|
|
|
+ * @author : Charles
|
|
|
+ * @date : 2020/3/9
|
|
|
+ */
|
|
|
+@Data
|
|
|
+public class PageModel<T> implements Serializable {
|
|
|
+ /** 当前页码 */
|
|
|
+ @Builder.Default
|
|
|
+ private int pageNum = 1;
|
|
|
+ /** 每页大小 */
|
|
|
+ @Builder.Default
|
|
|
+ private int pageSize = 10;
|
|
|
+ /** 总记录数 */
|
|
|
+ private int totalRecord;
|
|
|
+ /** 总页数 */
|
|
|
+ private int totalPage;
|
|
|
+ /** 是否有后一页 */
|
|
|
+ private boolean hasNextPage;
|
|
|
+ /** 是否有前一页 */
|
|
|
+ private boolean hasPreviousPage;
|
|
|
+ /** 查询结果 */
|
|
|
+ List<T> results;
|
|
|
+
|
|
|
+ public PageModel(List<T> list) {
|
|
|
+ if (list instanceof com.github.pagehelper.Page) {
|
|
|
+ com.github.pagehelper.Page<T> page = (com.github.pagehelper.Page<T>) list;
|
|
|
+ this.pageNum = page.getPageNum();
|
|
|
+ this.pageSize = page.getPageSize();
|
|
|
+ this.totalRecord = (int) page.getTotal();
|
|
|
+ this.totalPage = page.getPages();
|
|
|
+ setHasPreviousAndNext();
|
|
|
+ this.results = page;
|
|
|
+ } else if (list instanceof Collection) {
|
|
|
+ this.pageNum = 1;
|
|
|
+ this.pageSize = list.size();
|
|
|
+ this.totalRecord = list.size();
|
|
|
+ this.totalPage = 1;
|
|
|
+ this.results = list;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public PageModel(int pageNum, int pageSize, int totalRecord, List<T> results) {
|
|
|
+ super();
|
|
|
+ this.pageNum = pageNum;
|
|
|
+ this.pageSize = pageSize;
|
|
|
+ this.totalRecord = totalRecord;
|
|
|
+ this.totalPage = totalRecord % pageSize == 0 ? totalRecord / pageSize : totalRecord / pageSize + 1;
|
|
|
+ this.results = results;
|
|
|
+ if (this.pageNum < 2) {
|
|
|
+ hasPreviousPage = false;
|
|
|
+ } else {
|
|
|
+ hasPreviousPage = true;
|
|
|
+ }
|
|
|
+ if (this.pageNum < totalPage) {
|
|
|
+ hasNextPage = true;
|
|
|
+ } else {
|
|
|
+ hasNextPage = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public PageModel(int pageNum, int maxSize, int totalRecord, int totalPage,
|
|
|
+ List<T> results) {
|
|
|
+ super();
|
|
|
+ this.pageNum = pageNum;
|
|
|
+ this.pageSize = maxSize;
|
|
|
+ this.totalRecord = totalRecord;
|
|
|
+ this.totalPage = totalPage;
|
|
|
+ this.results = results;
|
|
|
+ if (this.pageNum < 2) {
|
|
|
+ hasPreviousPage = false;
|
|
|
+ } else {
|
|
|
+ hasPreviousPage = true;
|
|
|
+ }
|
|
|
+ if (this.pageNum < totalPage) {
|
|
|
+ hasNextPage = true;
|
|
|
+ } else {
|
|
|
+ hasNextPage = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public PageModel() {super();}
|
|
|
+
|
|
|
+ public void setHasPreviousAndNext() {
|
|
|
+ if (this.pageNum < 2) {
|
|
|
+ hasPreviousPage = false;
|
|
|
+ } else {
|
|
|
+ hasPreviousPage = true;
|
|
|
+ }
|
|
|
+ if (this.pageNum < totalPage) {
|
|
|
+ hasNextPage = true;
|
|
|
+ } else {
|
|
|
+ hasNextPage = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public int countTotalPage() {
|
|
|
+ int total = totalRecord % pageSize == 0 ? totalRecord / pageSize : totalRecord / pageSize + 1;
|
|
|
+ this.setTotalPage(total);
|
|
|
+ return total;
|
|
|
+ }
|
|
|
+
|
|
|
+ private static final long serialVersionUID = 1L;
|
|
|
+}
|