PageMapperUtil.java 1.0 KB

1234567891011121314151617181920212223242526272829303132
  1. package com.njuzr.eaibackend.utils;
  2. import com.baomidou.mybatisplus.core.metadata.IPage;
  3. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  4. import java.util.function.Function;
  5. import java.util.stream.Collectors;
  6. /**
  7. * @author: Leonezhurui
  8. * @Date: 2024/2/27 - 14:49
  9. * @Package: EAI-Backend
  10. */
  11. public class PageMapperUtil {
  12. /**
  13. * 将分页结果中的每个对象从一种类型转换为另一种类型。
  14. * @param sourcePage 源分页结果
  15. * @param converter 转换函数
  16. * @param <T> 源对象类型
  17. * @param <V> 目标VO类型
  18. * @return 转换后的分页结果
  19. */
  20. public static <T, V> Page<V> convert(IPage<T> sourcePage, Function<T, V> converter) {
  21. Page<V> targetPage = new Page<>();
  22. targetPage.setRecords(sourcePage.getRecords().parallelStream().map(converter).collect(Collectors.toList()));
  23. targetPage.setTotal(sourcePage.getTotal());
  24. targetPage.setCurrent(sourcePage.getCurrent());
  25. targetPage.setSize(sourcePage.getSize());
  26. return targetPage;
  27. }
  28. }