MyBatis-Plus分页工具
public class PageUtil {
public static <T> PageResultDTO<T> convert2PageResult(IPage<T> page) {
PageResultDTO<T> result = new PageResultDTO<>();
result.setPageNum(page.getCurrent());
result.setPageSize(page.getSize());
result.setTotal(Long.valueOf(page.getTotal()));
result.setPages(page.getPages());
result.setList(page.getRecords());
return result;
}
public static <T> Page<T> convert2QueryPage(PageParamDTO baseDTO) {
Page<T> page = new Page<>();
List<OrderItemDTO> orders = baseDTO.getOrders();
if (orders != null && !orders.isEmpty()) {
List<com.baomidou.mybatisplus.core.metadata.OrderItem> orderItemList = orders.stream().map(e -> convertOrderItem(e)).collect(Collectors.toList());
page.setOrders(orderItemList);
}
page.setCurrent(baseDTO.getPageNum());
page.setSize(baseDTO.getPageSize());
if (null != baseDTO.getSearchCount()) {
page.setSearchCount(baseDTO.getSearchCount());
}
return page;
}
private static com.baomidou.mybatisplus.core.metadata.OrderItem convertOrderItem(OrderItemDTO orderItemDTO) {
if (orderItemDTO.isAsc()) {
return com.baomidou.mybatisplus.core.metadata.OrderItem.asc(orderItemDTO.getColumn());
} else {
return com.baomidou.mybatisplus.core.metadata.OrderItem.desc(orderItemDTO.getColumn());
}
}
public static <T, E> PageResultDTO<T> convert2PageResult(IPage page, List<E> sourceList, Class<T> targetClazz) {
PageResultDTO<T> pageResultDTO = setPage(page);
List<T> records = IotBeanUtil.copyList(sourceList, targetClazz);
page.setRecords(records);
pageResultDTO.setList(records);
return pageResultDTO;
}
private static <T> PageResultDTO<T> setPage(IPage page) {
PageResultDTO<T> pageResultDTO = new PageResultDTO<T>();
pageResultDTO.setPageNum(page.getCurrent());
pageResultDTO.setPageSize(page.getSize());
pageResultDTO.setTotal(Long.valueOf(page.getTotal()));
pageResultDTO.setPages(page.getPages());
return pageResultDTO;
}
}