Переглянути джерело

update 优化假分页方法

AprilWind 1 рік тому
батько
коміт
553fca28a2

+ 16 - 0
ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/core/page/TableDataInfo.java

@@ -1,5 +1,6 @@
 package org.dromara.common.mybatis.core.page;
 
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.http.HttpStatus;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import lombok.Data;
@@ -88,4 +89,19 @@ public class TableDataInfo<T> implements Serializable {
         return rspData;
     }
 
+    /**
+     * 根据原始数据列表和分页参数,构建表格分页数据对象(用于假分页)
+     *
+     * @param list 原始数据列表(全部数据)
+     * @param page 分页参数对象(包含当前页码、每页大小等)
+     * @return 构造好的分页结果 TableDataInfo<T>
+     */
+    public static <T> TableDataInfo<T> build(List<T> list, IPage<T> page) {
+        if (CollUtil.isEmpty(list)) {
+            return TableDataInfo.build();
+        }
+        List<T> pageList = CollUtil.page((int) page.getCurrent() - 1, (int) page.getSize(), list);
+        return new TableDataInfo(pageList, list.size());
+    }
+
 }

+ 1 - 7
ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/service/GenTableServiceImpl.java

@@ -9,7 +9,6 @@ import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator;
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.RequiredArgsConstructor;
@@ -168,12 +167,7 @@ public class GenTableServiceImpl implements IGenTableService {
                 return gen;
             }).sorted(Comparator.comparing(GenTable::getCreateTime).reversed())
             .toList();
-
-        IPage<GenTable> page = pageQuery.build();
-        page.setTotal(tables.size());
-        // 手动分页 set数据
-        page.setRecords(CollUtil.page((int) page.getCurrent() - 1, (int) page.getSize(), tables));
-        return TableDataInfo.build(page);
+        return TableDataInfo.build(tables, pageQuery.build());
     }
 
     /**