瀏覽代碼

分页转换工具

hgw 3 年之前
父節點
當前提交
ce66c43317
共有 1 個文件被更改,包括 70 次插入0 次删除
  1. 70 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/support/PageUtil.java

+ 70 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/support/PageUtil.java

@@ -0,0 +1,70 @@
+package com.yonge.cooleshow.biz.dal.support;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yonge.cooleshow.common.page.PageInfo;
+
+import java.util.Map;
+import java.util.Objects;
+import java.util.Optional;
+
+/**
+ * @author hgw
+ * Created by 2021-12-03
+ */
+public class PageUtil {
+
+    /**
+     * 获取mybatisPlus的分页模型
+     *
+     * @param page 页数
+     * @param rows 查询数
+     * @param <T>  返回的类
+     */
+    public static <T> Page<T> getPage(Integer page, Integer rows) {
+        Integer pageIndex = Optional.ofNullable(page).orElse(1);
+        Integer pageSize = Optional.ofNullable(rows).orElse(20);
+        return new Page<T>(pageIndex, pageSize);
+    }
+
+    /**
+     * 将mybatisPlus的分页模型 转换为本项目的分页模型
+     *
+     * @param source  mybatisPlus的分页模型
+     * @param <T>返回的类
+     */
+    public static <T> PageInfo<T> pageInfo(IPage<T> source) {
+        if (Objects.isNull(source)) {
+            return new PageInfo<>(1, 20);
+        }
+        int total = Integer.parseInt(String.valueOf(source.getTotal()));
+        int limit = Integer.parseInt(String.valueOf(source.getSize()));
+        PageInfo<T> resultPage = new PageInfo<>();
+        resultPage.setRows(source.getRecords());
+        resultPage.setLimit(limit);
+        resultPage.setTotal(total);
+        return resultPage;
+    }
+
+
+    /**
+     * 获取Map中的关键字获取分页数据
+     *
+     * @param param Map<String, Object> param
+     * @param str   关键字
+     * @return Optional
+     */
+    public static <O> Optional<Integer> getPage(Map<String, O> param, String str) {
+        return Optional.ofNullable(param)
+                .map(p -> p.get(str))
+                .map(String::valueOf)
+                .map(Integer::valueOf);
+    }
+
+    public static <O, T> Page<T> getPageInfo(Map<String, O> param) {
+        int pageSize = getPage(param, "rows").orElse(20);
+        int pageIndex = getPage(param, "page").orElse(1);
+        return new Page<>(pageIndex, pageSize);
+    }
+
+}