ruoyi-common/src/main/java/com/ruoyi/common/core/page/PagePlus.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableDataInfo.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-common/src/main/java/com/ruoyi/common/utils/PageUtils.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
ruoyi-common/src/main/java/com/ruoyi/common/core/page/PagePlus.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,128 @@ 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; import lombok.experimental.Accessors; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.stream.Collectors; @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; 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) { this(current, size, 0L); } public PagePlus(long current, long size, long total) { this(current, size, total, true); } public PagePlus(long current, long size, boolean isSearchCount) { this(current, size, 0L, isSearchCount); } 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 public String countId() { return this.getCountId(); } @Override public Long maxLimit() { return this.getMaxLimit(); } public PagePlus<T, K> addOrder(OrderItem... items) { this.orders.addAll(Arrays.asList(items)); return this; } public PagePlus<T, K> addOrder(List<OrderItem> items) { this.orders.addAll(items); return this; } @Override public List<OrderItem> orders() { return this.getOrders(); } @Override public boolean optimizeCountSql() { return this.optimizeCountSql; } @Override public boolean isSearchCount() { return this.total < 0L ? false : this.isSearchCount; } public PagePlus<T, K> setSearchCount(boolean isSearchCount) { this.isSearchCount = isSearchCount; return this; } } ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableDataInfo.java
@@ -1,6 +1,7 @@ package com.ruoyi.common.core.page; import lombok.*; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; import java.io.Serializable; @@ -37,7 +38,7 @@ * @param list åè¡¨æ°æ® * @param total æ»è®°å½æ° */ public TableDataInfo(List<T> list, int total) public TableDataInfo(List<T> list, long total) { this.rows = list; this.total = total; ruoyi-common/src/main/java/com/ruoyi/common/utils/PageUtils.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,101 @@ package com.ruoyi.common.utils; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpStatus; import com.baomidou.mybatisplus.core.metadata.OrderItem; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.page.PagePlus; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.utils.sql.SqlUtil; import java.util.List; /** * åé¡µå·¥å · * * @author Lion Li */ public class PageUtils { /** * å½åè®°å½èµ·å§ç´¢å¼ */ public static final String PAGE_NUM = "pageNum"; /** * æ¯é¡µæ¾ç¤ºè®°å½æ° */ public static final String PAGE_SIZE = "pageSize"; /** * æåºå */ public static final String ORDER_BY_COLUMN = "orderByColumn"; /** * æåºçæ¹å "desc" æè "asc". */ public static final String IS_ASC = "isAsc"; public static <T, K> PagePlus<T, K> buildPagePlus() { Integer pageNum = ServletUtils.getParameterToInt(PAGE_NUM); Integer pageSize = ServletUtils.getParameterToInt(PAGE_SIZE); String orderByColumn = ServletUtils.getParameter(ORDER_BY_COLUMN); String isAsc = ServletUtils.getParameter(IS_ASC); PagePlus<T, K> page = new PagePlus<>(pageNum, pageSize); if (StrUtil.isNotBlank(orderByColumn)) { String orderBy = SqlUtil.escapeOrderBySql(orderByColumn); if ("asc".equals(isAsc)) { page.addOrder(OrderItem.asc(orderBy)); } else if ("desc".equals(isAsc)) { page.addOrder(OrderItem.desc(orderBy)); } } return page; } public static <T> Page<T> buildPage() { Integer pageNum = ServletUtils.getParameterToInt(PAGE_NUM); Integer pageSize = ServletUtils.getParameterToInt(PAGE_SIZE); String orderByColumn = ServletUtils.getParameter(ORDER_BY_COLUMN); String isAsc = ServletUtils.getParameter(IS_ASC); Page<T> page = new Page<>(pageNum, pageSize); if (StrUtil.isNotBlank(orderByColumn)) { String orderBy = SqlUtil.escapeOrderBySql(orderByColumn); if ("asc".equals(isAsc)) { page.addOrder(OrderItem.asc(orderBy)); } else if ("desc".equals(isAsc)) { page.addOrder(OrderItem.desc(orderBy)); } } return page; } public static <T, K> TableDataInfo<K> buildDataInfo(PagePlus<T, K> page) { TableDataInfo<K> rspData = new TableDataInfo<>(); rspData.setCode(HttpStatus.HTTP_OK); rspData.setMsg("æ¥è¯¢æå"); rspData.setRows(page.getRecordsVo()); rspData.setTotal(page.getTotal()); return rspData; } public static <T> TableDataInfo<T> buildDataInfo(Page<T> page) { TableDataInfo<T> rspData = new TableDataInfo<>(); rspData.setCode(HttpStatus.HTTP_OK); rspData.setMsg("æ¥è¯¢æå"); rspData.setRows(page.getRecords()); rspData.setTotal(page.getTotal()); return rspData; } public static <T> TableDataInfo<T> buildDataInfo(List<T> list) { TableDataInfo<T> rspData = new TableDataInfo<>(); rspData.setCode(HttpStatus.HTTP_OK); rspData.setMsg("æ¥è¯¢æå"); rspData.setRows(list); rspData.setTotal(list.size()); return rspData; } }