|
@@ -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);
|
|
|
+ }
|
|
|
+
|
|
|
+}
|