PageDomain.java 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. package com.zd.model.page;
  2. import org.apache.commons.lang3.StringUtils;
  3. import java.util.Optional;
  4. /**
  5. * 分页数据
  6. *
  7. * @author zd
  8. */
  9. public class PageDomain {
  10. /**
  11. * 当前记录起始索引
  12. */
  13. private Integer pageNum;
  14. /**
  15. * 每页显示记录数
  16. */
  17. private Integer pageSize;
  18. /**
  19. * 排序列
  20. */
  21. private String orderByColumn;
  22. /**
  23. * 排序的方向desc或者asc
  24. */
  25. private String isAsc = "asc";
  26. public String getOrderBy() {
  27. if (orderByColumn == null || "".equals(orderByColumn)) {
  28. return "";
  29. }
  30. return toUnderScoreCase(orderByColumn) + " " + isAsc;
  31. }
  32. public Integer getPageNum() {
  33. return Optional.ofNullable(pageNum).orElse(1);
  34. }
  35. public void setPageNum(Integer pageNum) {
  36. this.pageNum = pageNum;
  37. }
  38. public Integer getPageSize() {
  39. return Optional.ofNullable(pageSize).orElse(10);
  40. }
  41. public void setPageSize(Integer pageSize) {
  42. this.pageSize = pageSize;
  43. }
  44. public String getOrderByColumn() {
  45. return orderByColumn;
  46. }
  47. public void setOrderByColumn(String orderByColumn) {
  48. this.orderByColumn = orderByColumn;
  49. }
  50. public String getIsAsc() {
  51. return isAsc;
  52. }
  53. public void setIsAsc(String isAsc) {
  54. if (StringUtils.isNotEmpty(isAsc)) {
  55. // 兼容前端排序类型
  56. if ("ascending".equals(isAsc)) {
  57. isAsc = "asc";
  58. } else if ("descending".equals(isAsc)) {
  59. isAsc = "desc";
  60. }
  61. this.isAsc = isAsc;
  62. }
  63. }
  64. private static String toUnderScoreCase(String str) {
  65. if (str == null) {
  66. return null;
  67. }
  68. StringBuilder sb = new StringBuilder();
  69. // 前置字符是否大写
  70. boolean preCharIsUpperCase = true;
  71. // 当前字符是否大写
  72. boolean curreCharIsUpperCase = true;
  73. // 下一字符是否大写
  74. boolean nexteCharIsUpperCase = true;
  75. for (int i = 0; i < str.length(); i++) {
  76. char c = str.charAt(i);
  77. if (i > 0) {
  78. preCharIsUpperCase = Character.isUpperCase(str.charAt(i - 1));
  79. } else {
  80. preCharIsUpperCase = false;
  81. }
  82. curreCharIsUpperCase = Character.isUpperCase(c);
  83. if (i < (str.length() - 1)) {
  84. nexteCharIsUpperCase = Character.isUpperCase(str.charAt(i + 1));
  85. }
  86. if (preCharIsUpperCase && curreCharIsUpperCase && !nexteCharIsUpperCase) {
  87. sb.append('_');
  88. } else if ((i != 0 && !preCharIsUpperCase) && curreCharIsUpperCase) {
  89. sb.append('_');
  90. }
  91. sb.append(Character.toLowerCase(c));
  92. }
  93. return sb.toString();
  94. }
  95. }