From 2af534eea471f4adb104906c7a814bcc66d4d68d Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期一, 13 九月 2021 13:03:58 +0800 Subject: [PATCH] Merge branch 'master' of https://gitee.com/y_project/RuoYi-Vue into dev --- 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