|
@@ -667,6 +667,35 @@ public final class DatabaseContextHolder {
|
|
|
return new Page<>(number, size, counting);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 数据分页处理
|
|
|
+ *
|
|
|
+ * @param paging 分页信息
|
|
|
+ * @param function 分页处理函数
|
|
|
+ * @param <T> 数据类型
|
|
|
+ * @return 分页信息
|
|
|
+ */
|
|
|
+ public static <T> Pagination<T> paging(@NonNull Paging paging, @NonNull Function<IPage<T>, IPage<T>> function) {
|
|
|
+ IPage<T> page = function.apply(page(paging));
|
|
|
+ return page == null || ObjectUtils.isEmpty(page.getRecords()) ? Pagination.empty() : pagination(page);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 数据分页处理
|
|
|
+ *
|
|
|
+ * @param paging 分页信息
|
|
|
+ * @param function 分页处理函数
|
|
|
+ * @param adapter 数据转换适配器
|
|
|
+ * @param <T> 原始数据类型
|
|
|
+ * @param <R> 目标数据类型
|
|
|
+ * @return 分页信息
|
|
|
+ */
|
|
|
+ public static <T, R> Pagination<R> paging(@NonNull Paging paging, @NonNull Function<IPage<T>, IPage<T>> function,
|
|
|
+ @NonNull Function<List<T>, List<R>> adapter) {
|
|
|
+ IPage<T> page = function.apply(page(paging));
|
|
|
+ return page == null || ObjectUtils.isEmpty(page.getRecords()) ? Pagination.empty() : pagination(page, adapter);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 将MyBatis Plus分页参数转换成分页返回参数
|
|
|
*
|
|
@@ -686,7 +715,7 @@ public final class DatabaseContextHolder {
|
|
|
* @param <T> 目标对象类型泛型
|
|
|
* @return 分页返回参数
|
|
|
*/
|
|
|
- public static <T> Pagination<T> pagination(IPage<?> page, Class<T> type) {
|
|
|
+ public static <T> Pagination<T> pagination(IPage<?> page, @NonNull Class<T> type) {
|
|
|
return pagination(page, ObjectUtils.copying((List<?>) ObjectUtils.ifNull(page, IPage::getRecords), type));
|
|
|
}
|
|
|
|
|
@@ -701,7 +730,7 @@ public final class DatabaseContextHolder {
|
|
|
*/
|
|
|
public static <T, R> Pagination<R> pagination(IPage<T> page, @NonNull Function<List<T>, List<R>> adapter) {
|
|
|
List<T> records = ObjectUtils.ifNull(page, IPage::getRecords);
|
|
|
- return pagination(page, CollectionUtils.isEmpty(records) ? Collections.emptyList() : adapter.apply(records));
|
|
|
+ return ObjectUtils.isEmpty(records) ? Pagination.empty() : pagination(page, adapter.apply(records));
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -713,19 +742,9 @@ public final class DatabaseContextHolder {
|
|
|
* @return 分页返回参数
|
|
|
*/
|
|
|
public static <T> Pagination<T> pagination(IPage<?> page, List<T> records) {
|
|
|
- return page == null ? null : Pagination.<T>builder().total(page.getTotal()).pages(page.getPages())
|
|
|
- .records(records).build();
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 分页记录转换
|
|
|
- *
|
|
|
- * @param page 原始分页信息
|
|
|
- * @param records 分页数据列表
|
|
|
- * @param <T> 目标对象类型泛型
|
|
|
- * @return 分页返回参数
|
|
|
- */
|
|
|
- public static <T> Pagination<T> pagination(Pagination<?> page, List<T> records) {
|
|
|
- return page == null ? null : page.convert(records);
|
|
|
+ if (page == null || ObjectUtils.isEmpty(records)) {
|
|
|
+ return Pagination.empty();
|
|
|
+ }
|
|
|
+ return Pagination.<T>builder().total(page.getTotal()).pages(page.getPages()).records(records).build();
|
|
|
}
|
|
|
}
|