From 067029eebe79b39451f4683e99cf32205a579e6a Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期五, 03 九月 2021 17:06:18 +0800
Subject: [PATCH] update 优化分页工具排序处理

---
 ruoyi-common/src/main/java/com/ruoyi/common/utils/PageUtils.java |   56 +++++++++++++++++++++-----------------------------------
 1 files changed, 21 insertions(+), 35 deletions(-)

diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/PageUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/PageUtils.java
index 67cf72c..68167df 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/PageUtils.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/PageUtils.java
@@ -37,11 +37,6 @@
     public static final String IS_ASC = "isAsc";
 
     /**
-     * 鍒嗛〉鍙傛暟鍚堢悊鍖�
-     */
-    private static final String REASONABLE = "reasonable";
-
-    /**
      * 褰撳墠璁板綍璧峰绱㈠紩 榛樿鍊�
      */
     public static final int DEFAULT_PAGE_NUM = 1;
@@ -50,11 +45,6 @@
      * 姣忛〉鏄剧ず璁板綍鏁� 榛樿鍊� 榛樿鏌ュ叏閮�
      */
     public static final int DEFAULT_PAGE_SIZE = Integer.MAX_VALUE;
-
-    /**
-     * 鍒嗛〉鍙傛暟鍚堢悊鍖� 榛樿鍊�
-     */
-    private static final Boolean DEFAULT_REASONABLE = Boolean.TRUE;
 
     /**
      * 鏋勫缓 plus 鍒嗛〉瀵硅薄
@@ -67,20 +57,12 @@
         Integer pageSize = ServletUtils.getParameterToInt(PAGE_SIZE, DEFAULT_PAGE_SIZE);
         String orderByColumn = ServletUtils.getParameter(ORDER_BY_COLUMN);
         String isAsc = ServletUtils.getParameter(IS_ASC);
-        Boolean reasonable = ServletUtils.getParameterToBool(REASONABLE, DEFAULT_REASONABLE);
-        //鍒嗛〉鍚堢悊鍖栵紝閽堝涓嶅悎鐞嗙殑椤电爜鑷姩澶勭悊
-        if (reasonable && pageNum <= 0) {
-            pageNum = 1;
+        if (pageNum <= 0) {
+            pageNum = DEFAULT_PAGE_NUM;
         }
         PagePlus<T, K> page = new PagePlus<>(pageNum, pageSize);
-        if (StringUtils.isNotBlank(orderByColumn)) {
-            String orderBy = SqlUtil.escapeOrderBySql(orderByColumn);
-            if ("asc".equals(isAsc)) {
-                page.addOrder(OrderItem.asc(orderBy));
-            } else if ("desc".equals(isAsc)) {
-                page.addOrder(OrderItem.desc(orderBy));
-            }
-        }
+        OrderItem orderItem = buildOrderItem(orderByColumn, isAsc);
+        page.addOrder(orderItem);
         return page;
     }
 
@@ -98,28 +80,32 @@
         Integer pageSize = ServletUtils.getParameterToInt(PAGE_SIZE, DEFAULT_PAGE_SIZE);
         String orderByColumn = ServletUtils.getParameter(ORDER_BY_COLUMN, defaultOrderByColumn);
         String isAsc = ServletUtils.getParameter(IS_ASC, defaultIsAsc);
-        Boolean reasonable = ServletUtils.getParameterToBool(REASONABLE, DEFAULT_REASONABLE);
-        //鍒嗛〉鍚堢悊鍖栵紝閽堝涓嶅悎鐞嗙殑椤电爜鑷姩澶勭悊
-        if (reasonable && pageNum <= 0) {
-            pageNum = 1;
+        if (pageNum <= 0) {
+            pageNum = DEFAULT_PAGE_NUM;
         }
-        // 鍏煎鍓嶇鎺掑簭绫诲瀷
-		if ("ascending".equals(isAsc)) {
-			isAsc = "asc";
-		} else if ("descending".equals(isAsc)) {
-			isAsc = "desc";
-		}
         Page<T> page = new Page<>(pageNum, pageSize);
+        OrderItem orderItem = buildOrderItem(orderByColumn, isAsc);
+        page.addOrder(orderItem);
+        return page;
+    }
+
+    private static OrderItem buildOrderItem(String orderByColumn, String isAsc) {
+        // 鍏煎鍓嶇鎺掑簭绫诲瀷
+        if ("ascending".equals(isAsc)) {
+            isAsc = "asc";
+        } else if ("descending".equals(isAsc)) {
+            isAsc = "desc";
+        }
         if (StringUtils.isNotBlank(orderByColumn)) {
             String orderBy = SqlUtil.escapeOrderBySql(orderByColumn);
 			orderBy = StringUtils.toUnderScoreCase(orderBy);
 			if ("asc".equals(isAsc)) {
-                page.addOrder(OrderItem.asc(orderBy));
+                return OrderItem.asc(orderBy);
             } else if ("desc".equals(isAsc)) {
-                page.addOrder(OrderItem.desc(orderBy));
+                return OrderItem.desc(orderBy);
             }
         }
-        return page;
+        return null;
     }
 
     public static <T, K> TableDataInfo<K> buildDataInfo(PagePlus<T, K> page) {

--
Gitblit v1.9.3