From dbba894544c8f3c4739a7b8ef2b4a9a902a8ab3b Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期一, 29 十一月 2021 14:01:28 +0800
Subject: [PATCH] 发布 v3.4.0
---
ruoyi-common/src/main/java/com/ruoyi/common/core/page/PagePlus.java | 134 +++++++++++++++++++++++++++-----------------
1 files changed, 81 insertions(+), 53 deletions(-)
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/page/PagePlus.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/page/PagePlus.java
index 7200fc5..79d889c 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/page/PagePlus.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/page/PagePlus.java
@@ -1,6 +1,5 @@
package com.ruoyi.common.core.page;
-import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.metadata.OrderItem;
import lombok.Data;
@@ -10,34 +9,74 @@
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
-import java.util.stream.Collectors;
+/**
+ * 鍒嗛〉 Page 澧炲己瀵硅薄
+ *
+ * @param <T> 鏁版嵁搴撳疄浣�
+ * @param <K> vo瀹炰綋
+ * @author Lion Li
+ */
@Data
@Accessors(chain = true)
public class PagePlus<T,K> implements IPage<T> {
- protected List<T> records;
- protected List<K> recordsVo;
- protected long total;
- protected long size;
- protected long current;
- protected List<OrderItem> orders;
- protected boolean optimizeCountSql;
- protected boolean isSearchCount;
- protected boolean hitCount;
- protected String countId;
- protected Long maxLimit;
+ /**
+ * domain瀹炰綋鍒楄〃
+ */
+ private List<T> records = Collections.emptyList();
+
+ /**
+ * vo瀹炰綋鍒楄〃
+ */
+ private List<K> recordsVo = Collections.emptyList();
+
+ /**
+ * 鎬绘暟
+ */
+ private long total = 0L;
+
+ /**
+ * 椤甸暱搴�
+ */
+ private long size = 10L;
+
+ /**
+ * 褰撳墠椤�
+ */
+ private long current = 1L;
+
+ /**
+ * 鎺掑簭瀛楁淇℃伅
+ */
+ private List<OrderItem> orders = new ArrayList<>();
+
+ /**
+ * 鑷姩浼樺寲 COUNT SQL
+ */
+ private boolean optimizeCountSql = true;
+
+ /**
+ * 鏄惁杩涜 count 鏌ヨ
+ */
+ private boolean isSearchCount = true;
+
+ /**
+ * 鏄惁鍛戒腑count缂撳瓨
+ */
+ private boolean hitCount = false;
+
+ /**
+ * countId
+ */
+ private String countId;
+
+ /**
+ * 鏈�澶imit
+ */
+ private Long maxLimit;
public PagePlus() {
- this.records = Collections.emptyList();
- this.recordsVo = Collections.emptyList();
- this.total = 0L;
- this.size = 10L;
- this.current = 1L;
- this.orders = new ArrayList();
- this.optimizeCountSql = true;
- this.isSearchCount = true;
- this.hitCount = false;
}
public PagePlus(long current, long size) {
@@ -53,35 +92,12 @@
}
public PagePlus(long current, long size, long total, boolean isSearchCount) {
- this.records = Collections.emptyList();
- this.total = 0L;
- this.size = 10L;
- this.current = 1L;
- this.orders = new ArrayList();
- this.optimizeCountSql = true;
- this.isSearchCount = true;
- this.hitCount = false;
if (current > 1L) {
this.current = current;
}
-
this.size = size;
this.total = total;
this.isSearchCount = isSearchCount;
- }
-
- public boolean hasPrevious() {
- return this.current > 1L;
- }
-
- public boolean hasNext() {
- return this.current < this.getPages();
- }
-
- public void recordsToVo(Class<K> kClass) {
- this.recordsVo = this.records.stream()
- .map(any -> BeanUtil.toBean(any, kClass))
- .collect(Collectors.toList());
}
@Override
@@ -114,15 +130,27 @@
return this.optimizeCountSql;
}
- @Override
- public boolean isSearchCount() {
- return this.total < 0L ? false : this.isSearchCount;
- }
+ @Override
+ public long getPages() {
+ // 瑙e喅 github issues/3208
+ return IPage.super.getPages();
+ }
- public PagePlus<T, K> setSearchCount(boolean isSearchCount) {
- this.isSearchCount = isSearchCount;
- return this;
- }
+ public static <T,K> PagePlus<T,K> of(long current, long size) {
+ return of(current, size, 0);
+ }
+
+ public static <T,K> PagePlus<T,K> of(long current, long size, long total) {
+ return of(current, size, total, true);
+ }
+
+ public static <T,K> PagePlus<T,K> of(long current, long size, boolean searchCount) {
+ return of(current, size, 0, searchCount);
+ }
+
+ public static <T,K> PagePlus<T,K> of(long current, long size, long total, boolean searchCount) {
+ return new PagePlus<>(current, size, total, searchCount);
+ }
}
--
Gitblit v1.9.3