From 8f8b6a47ce277cad0b640c328ab3962419e1c024 Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期五, 06 二月 2026 13:00:47 +0800
Subject: [PATCH] RCS完整流程

---
 rsf-server/src/main/java/com/vincent/rsf/server/common/domain/PageParam.java |   55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 54 insertions(+), 1 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/common/domain/PageParam.java b/rsf-server/src/main/java/com/vincent/rsf/server/common/domain/PageParam.java
index 7d2360c..c3eb876 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/common/domain/PageParam.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/common/domain/PageParam.java
@@ -320,8 +320,10 @@
 //                                column, temp[0], cls != null ? cls.getSimpleName() : "null", requestInfo);
                         continue;
                     }
+                    // 妫�鏌ュ疄浣撶被瀛楁鐨� @TableField 娉ㄨВ锛屽鏋滃瓧娈垫槸淇濈暀鍏抽敭瀛楋紝浣跨敤娉ㄨВ涓寚瀹氱殑鍒楀悕锛堝甫鍙嶅紩鍙凤級
+                    String dbColumn = getDbColumnName(column);
                     boolean asc = temp.length == 1 || !temp[temp.length - 1].toLowerCase().equals(ORDER_DESC_VALUE);
-                    orders.add(new OrderItem(column, asc));
+                    orders.add(new OrderItem(dbColumn, asc));
                 }
             }
         }
@@ -329,6 +331,57 @@
     }
 
     /**
+     * 鑾峰彇鏁版嵁搴撳垪鍚嶏紝濡傛灉鏄繚鐣欏叧閿瓧鍒欐坊鍔犲弽寮曞彿
+     * @param fieldName 瀛楁鍚嶏紙涓嬪垝绾挎牸寮忥級
+     * @return 鏁版嵁搴撳垪鍚�
+     */
+    private String getDbColumnName(String fieldName) {
+        if (cls == null) {
+            // 濡傛灉娌℃湁瀹炰綋绫伙紝妫�鏌ユ槸鍚︽槸甯歌鐨勪繚鐣欏叧閿瓧
+            return wrapReservedKeyword(fieldName);
+        }
+        
+        // 鏌ユ壘瀹炰綋绫讳腑瀵瑰簲鐨勫瓧娈�
+        for (Field field : Cools.getAllFields(cls)) {
+            String column = Utils.toSymbolCase(field.getName(), '_');
+            if (column.equals(fieldName)) {
+                // 妫�鏌ユ槸鍚︽湁 @TableField 娉ㄨВ
+                if (field.isAnnotationPresent(TableField.class)) {
+                    TableField annotation = field.getAnnotation(TableField.class);
+                    String value = annotation.value();
+                    // 濡傛灉娉ㄨВ鍊间笉涓虹┖锛屼娇鐢ㄦ敞瑙e�硷紙鍙兘宸茬粡鍖呭惈鍙嶅紩鍙凤級
+                    if (!Cools.isEmpty(value) && !value.equals(fieldName)) {
+                        return value;
+                    }
+                }
+                // 濡傛灉娌℃湁娉ㄨВ鎴栨敞瑙e�间负绌猴紝妫�鏌ユ槸鍚︽槸淇濈暀鍏抽敭瀛�
+                return wrapReservedKeyword(fieldName);
+            }
+        }
+        
+        // 濡傛灉鎵句笉鍒板瓧娈碉紝妫�鏌ユ槸鍚︽槸淇濈暀鍏抽敭瀛�
+        return wrapReservedKeyword(fieldName);
+    }
+
+    /**
+     * 濡傛灉鏄� MySQL 淇濈暀鍏抽敭瀛楋紝鍒欐坊鍔犲弽寮曞彿
+     * @param column 鍒楀悕
+     * @return 澶勭悊鍚庣殑鍒楀悕
+     */
+    private String wrapReservedKeyword(String column) {
+        // MySQL 甯歌淇濈暀鍏抽敭瀛楀垪琛�
+        Set<String> reservedKeywords = new HashSet<>(Arrays.asList(
+            "row", "type", "length", "channel", "status", "order", "group", "key", "index",
+            "table", "database", "user", "select", "insert", "update", "delete", "from", "where"
+        ));
+        
+        if (reservedKeywords.contains(column.toLowerCase())) {
+            return "`" + column + "`";
+        }
+        return column;
+    }
+
+    /**
      * 鑾峰彇褰撳墠璇锋眰淇℃伅锛堣矾寰勫拰鏂规硶锛�
      * @return 璇锋眰淇℃伅瀛楃涓诧紝鏍煎紡锛欻TTP鏂规硶 璇锋眰璺緞
      */

--
Gitblit v1.9.1