JsonPage.java 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package cn.cslg.pas.common;
  2. import com.github.pagehelper.PageInfo;
  3. import lombok.Data;
  4. import java.io.Serializable;
  5. import java.util.List;
  6. /**
  7. * 把封装着分页查询结果和分页信息的PageInfo类转换为本类并返回给前端(本类应和Page\PageInfo一样,既包含分页查询结果又包含分页信息)
  8. *
  9. * @Author chenyu
  10. * @Date 2023/2/16
  11. */
  12. @Data
  13. public class JsonPage implements Serializable {
  14. /**
  15. * 总页数
  16. */
  17. private Integer totalCurrents;
  18. /**
  19. * 总条数
  20. */
  21. private Long totalSizes;
  22. /**
  23. * 当前页 (页码)
  24. */
  25. private Integer current;
  26. /**
  27. * 每页条数
  28. */
  29. private Integer size;
  30. /**
  31. * 分页查询结果
  32. */
  33. private List<Object> list;
  34. // 下面要编写一个能够将PageInfo类型对象转换为JsonPage类型对象的方法
  35. // 如果需要将其他类型对象转换为JsonPage(例如SpringData的Page类型),另外编写方法即可
  36. public static JsonPage restPage(PageInfo pageInfo) {
  37. // 所谓转换的意思就是将pageInfo对象中的信息,赋值给JsonPage类型
  38. JsonPage result = new JsonPage();
  39. // 因为PageInfo和JsonPage同名属性较少,所以手动赋值
  40. result.setTotalSizes(pageInfo.getTotal());
  41. result.setTotalCurrents(pageInfo.getPages());
  42. result.setCurrent(pageInfo.getPageNum());
  43. result.setSize(pageInfo.getPageSize());
  44. // 别忘了最后的分页数据
  45. result.setList(pageInfo.getList());
  46. // 最后返回JsonPage类型对象result
  47. return result;
  48. }
  49. }