From 2ce6327ec49e7fe73cc1cd3bcc2b63b28d89d38f Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期二, 17 三月 2026 14:05:25 +0800
Subject: [PATCH] #
---
rsf-server/src/main/java/com/vincent/rsf/server/common/domain/PageParam.java | 42 +++++++++++++++++++++++++++---------------
1 files changed, 27 insertions(+), 15 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 4c952c0..662e7bc 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
@@ -12,7 +12,7 @@
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequest;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.*;
@@ -78,6 +78,14 @@
return this.buildWrapper(like, null, "create_time");
}
+ /** 澶氳〃 JOIN 鏃剁粰鍒楀姞琛ㄥ埆鍚嶏紝閬垮厤鍒楀悕姝т箟锛沘lias 涓� null 鎴栫┖鏃朵笌涓嶅姞鍒悕涓�鑷� */
+ private static String col(String tableAlias, String columnName) {
+ if (tableAlias != null && !tableAlias.isEmpty()) {
+ return tableAlias + ".`" + columnName + "`";
+ }
+ return "`" + columnName + "`";
+ }
+
public QueryWrapper<T> buildWrapper(boolean like, String timeField) {
return this.buildWrapper(like, null, timeField);
}
@@ -86,8 +94,9 @@
return this.buildWrapper(like, null, "create_time", fields);
}
+ /** 鍚� buildWrapper(like, consumer, timeField)锛宼ableAlias 闈炵┖鏃剁粰涓昏〃鍒楀姞鍒悕锛岀敤浜庡琛� JOIN 閬垮厤姝т箟锛涗紶 null 琛屼负涓庡師鏉ヤ竴鑷� */
@SuppressWarnings("all")
- public QueryWrapper<T> buildWrapper(boolean like, Consumer<QueryWrapper<T>> consumer, String timeField) {
+ public QueryWrapper<T> buildWrapper(boolean like, Consumer<QueryWrapper<T>> consumer, String timeField, String tableAlias) {
QueryWrapper<T> queryWrapper = new QueryWrapper<>();
Map<String, Object> map = where.getMap();
for (String key : map.keySet()) {
@@ -105,8 +114,8 @@
if (this.isToUnderlineCase) {
key = Utils.toSymbolCase(key, '_');
}
- queryWrapper.ge(key, DateUtils.convert(list.get(0)));
- queryWrapper.le(key, DateUtils.convert(list.get(1)));
+ queryWrapper.ge(col(tableAlias, key), DateUtils.convert(list.get(0)));
+ queryWrapper.le(col(tableAlias, key), DateUtils.convert(list.get(1)));
}
} else {
if (this.isToUnderlineCase) {
@@ -114,11 +123,9 @@
}
String finalKey = key;
if (like && key.contains(timeField)) {
- queryWrapper.and(wrapper -> wrapper.like("`" + finalKey + "`", val));
-// queryWrapper.like("`" + key + "`", val);
+ queryWrapper.and(wrapper -> wrapper.like(col(tableAlias, finalKey), val));
} else {
- queryWrapper.and(wrapper -> wrapper.eq("`" + finalKey + "`", val));
-// queryWrapper.eq("`" + key + "`", val);
+ queryWrapper.and(wrapper -> wrapper.eq(col(tableAlias, finalKey), val));
}
}
}
@@ -129,20 +136,19 @@
if (!Cools.isEmpty(where.getTimeStart())) {
Date timeStart = DateUtils.convert(String.valueOf(where.getTimeStart()), DateUtils.yyyyMMdd_F);
- queryWrapper.ge(timeField, timeStart);
+ queryWrapper.ge(col(tableAlias, timeField), timeStart);
}
if (!Cools.isEmpty(where.getTimeEnd())) {
Date timeStart = DateUtils.convert(String.valueOf(where.getTimeEnd()), DateUtils.yyyyMMdd_F);
- queryWrapper.le(timeField, timeStart);
+ queryWrapper.le(col(tableAlias, timeField), timeStart);
}
if (!Cools.isEmpty(where.getOrderBy())) {
if (sortIsSQL(where.getOrderBy())) {
List<OrderItem> orders = parseOrderSQL(where.getOrderBy());
- // 濡傛灉鎵�鏈夋帓搴忓瓧娈甸兘鏃犳晥锛屼娇鐢ㄩ粯璁ゆ帓搴�
if (orders.isEmpty()) {
- queryWrapper.orderByDesc("create_time");
+ queryWrapper.orderByDesc(col(tableAlias, "create_time"));
} else {
setOrders(orders);
}
@@ -176,15 +182,20 @@
String column = columns.get(i);
String condition = where.getCondition();
if (i == 0) {
- wrapper.or().like("`" + column + "`", condition);
+ wrapper.or().like(col(tableAlias, column), condition);
} else {
- wrapper.or().like("`" + column + "`", condition);
+ wrapper.or().like(col(tableAlias, column), condition);
}
}
});
}
}
return queryWrapper;
+ }
+
+ @SuppressWarnings("all")
+ public QueryWrapper<T> buildWrapper(boolean like, Consumer<QueryWrapper<T>> consumer, String timeField) {
+ return buildWrapper(like, consumer, timeField, (String) null);
}
@SuppressWarnings("all")
@@ -320,7 +331,7 @@
continue;
}
boolean asc = temp.length == 1 || !temp[temp.length - 1].toLowerCase().equals(ORDER_DESC_VALUE);
- orders.add(new OrderItem(column, asc));
+ orders.add((asc ? OrderItem.asc(column) : OrderItem.desc(column)));
}
}
}
@@ -440,3 +451,4 @@
}
+
--
Gitblit v1.9.1