SmartPageUtil.java 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. package net.lab1024.smartadmin.util;
  2. import com.baomidou.mybatisplus.core.metadata.IPage;
  3. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  4. import net.lab1024.smartadmin.common.domain.OrderItemDTO;
  5. import net.lab1024.smartadmin.common.domain.PageParamDTO;
  6. import net.lab1024.smartadmin.common.domain.PageResultDTO;
  7. import java.util.List;
  8. import java.util.stream.Collectors;
  9. /**
  10. * 分页工具类
  11. *
  12. * @author GHQ
  13. * @date 2017-12-23 16:40
  14. */
  15. public class SmartPageUtil {
  16. public static <T> PageResultDTO<T> convert2PageResult(IPage<T> page) {
  17. PageResultDTO<T> result = new PageResultDTO<>();
  18. result.setPageNum(page.getCurrent());
  19. result.setPageSize(page.getSize());
  20. result.setTotal(page.getTotal());
  21. result.setPages(page.getPages());
  22. result.setList(page.getRecords());
  23. return result;
  24. }
  25. public static <T> Page<T> convert2QueryPage(PageParamDTO baseDTO) {
  26. Page<T> page = new Page<>();
  27. List<OrderItemDTO> orders = baseDTO.getOrders();
  28. if (orders != null && !orders.isEmpty()) {
  29. List<com.baomidou.mybatisplus.core.metadata.OrderItem> orderItemList = orders.stream().map(SmartPageUtil::convertOrderItem).collect(Collectors.toList());
  30. page.setOrders(orderItemList);
  31. }
  32. page.setCurrent(baseDTO.getPageNum());
  33. page.setSize(baseDTO.getPageSize());
  34. if (null != baseDTO.getSearchCount()) {
  35. page.setSearchCount(baseDTO.getSearchCount());
  36. }
  37. return page;
  38. }
  39. private static com.baomidou.mybatisplus.core.metadata.OrderItem convertOrderItem(OrderItemDTO orderItemDTO) {
  40. if (orderItemDTO.isAsc()) {
  41. return com.baomidou.mybatisplus.core.metadata.OrderItem.asc(orderItemDTO.getColumn());
  42. } else {
  43. return com.baomidou.mybatisplus.core.metadata.OrderItem.desc(orderItemDTO.getColumn());
  44. }
  45. }
  46. /**
  47. * 转换为 PageResultDTO 对象
  48. *
  49. * @param page
  50. * @param sourceList 原list
  51. * @param targetClazz 目标类
  52. * @return
  53. * @author yandanyang
  54. * @date 2018年5月16日 下午6:05:28
  55. */
  56. public static <T, E> PageResultDTO<T> convert2PageResult(IPage page, List<E> sourceList, Class<T> targetClazz) {
  57. PageResultDTO pageResultDTO = setPage(page);
  58. List<T> records = SmartBeanUtil.copyList(sourceList, targetClazz);
  59. page.setRecords(records);
  60. pageResultDTO.setList(records);
  61. return pageResultDTO;
  62. }
  63. /**
  64. * 转换为 PageResultDTO 对象
  65. *
  66. * @param page
  67. * @param sourceList list
  68. * @return
  69. * @author yandanyang
  70. * @date 2018年5月16日 下午6:05:28
  71. */
  72. public static <T, E> PageResultDTO<T> convert2PageResult(IPage page, List<E> sourceList) {
  73. PageResultDTO pageResultDTO = setPage(page);
  74. page.setRecords(sourceList);
  75. pageResultDTO.setList(sourceList);
  76. return pageResultDTO;
  77. }
  78. private static PageResultDTO setPage(IPage page) {
  79. PageResultDTO pageResultDTO = new PageResultDTO();
  80. pageResultDTO.setPageNum(page.getCurrent());
  81. pageResultDTO.setPageSize(page.getSize());
  82. pageResultDTO.setTotal(page.getTotal());
  83. pageResultDTO.setPages(page.getPages());
  84. return pageResultDTO;
  85. }
  86. }