From 1ea84a23004ebcfaf86cb436d84164602ca9091d Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期五, 08 八月 2025 17:03:36 +0800
Subject: [PATCH] Merge branch 'devlop' of http://47.97.1.152:5880/r/wms-master into devlop
---
rsf-server/src/main/java/com/vincent/rsf/server/common/domain/PageParam.java | 152 ++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 133 insertions(+), 19 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 aaed56c..01bb3f2 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
@@ -7,13 +7,11 @@
import com.vincent.rsf.common.utils.Utils;
import com.vincent.rsf.framework.common.Cools;
import com.vincent.rsf.framework.common.DateUtils;
+import lombok.Getter;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
import java.util.function.Consumer;
/**
@@ -24,6 +22,7 @@
private static final long serialVersionUID = 1L;
public static final String ORDER_DESC_VALUE = "desc";
+ @Getter
private final U where;
/**
@@ -73,13 +72,19 @@
return this.buildWrapper(like, null, timeField);
}
+ public QueryWrapper<T> buildWrapper(boolean like, List<String> fields) {
+ return this.buildWrapper(like, null, "create_time", fields);
+ }
+
@SuppressWarnings("all")
public QueryWrapper<T> buildWrapper(boolean like, Consumer<QueryWrapper<T>> consumer, String timeField) {
QueryWrapper<T> queryWrapper = new QueryWrapper<>();
Map<String, Object> map = where.getMap();
for (String key : map.keySet()) {
Object val = map.get(key);
-
+ if (Cools.isEmpty(val)){
+ continue;
+ }
if (key.contains("Range")) {
ArrayList<String> list = null;
if (val instanceof ArrayList) {
@@ -97,10 +102,13 @@
if (this.isToUnderlineCase) {
key = Utils.toSymbolCase(key, '_');
}
- if (like) {
- queryWrapper.like(key, val);
+ String finalKey = key;
+ if (like && key.contains(timeField)) {
+ queryWrapper.and(wrapper -> wrapper.like("`" + finalKey + "`", val));
+// queryWrapper.like("`" + key + "`", val);
} else {
- queryWrapper.eq(key, val);
+ queryWrapper.and(wrapper -> wrapper.eq("`" + finalKey + "`", val));
+// queryWrapper.eq("`" + key + "`", val);
}
}
}
@@ -129,34 +137,139 @@
if (!Cools.isEmpty(where.getCondition()) && !Cools.isEmpty(cls)) {
List<String> columns = new ArrayList<>();
- for (Field field : Cools.getAllFields(cls)){
+ for (Field field : Cools.getAllFields(cls)) {
if (Modifier.isFinal(field.getModifiers())
|| Modifier.isStatic(field.getModifiers())
- || Modifier.isTransient(field.getModifiers())){
+ || Modifier.isTransient(field.getModifiers())) {
continue;
}
- if (field.isAnnotationPresent(TableField.class)){
+ if (field.isAnnotationPresent(TableField.class)) {
TableField annotation = field.getAnnotation(TableField.class);
if (!annotation.exist()) {
continue;
}
}
- String column = Utils.toSymbolCase(field.getName(), '_');
+ String column = Utils.toSymbolCase(field.getName(), '_');
columns.add(column);
}
if (!columns.isEmpty()) {
- for (int i=0;i<columns.size();i++){
- String column = columns.get(i);
- String condition = where.getCondition();
+ queryWrapper.and(wrapper -> {
+ for (int i = 0; i < columns.size(); i++) {
+ String column = columns.get(i);
+ String condition = where.getCondition();
+ if (i == 0) {
+ wrapper.or().like("`" + column + "`", condition);
+ } else {
+ wrapper.or().like("`" + column + "`", condition);
+ }
+ }
+ });
+ }
+ }
+ return queryWrapper;
+ }
- if (i == 0) {
- queryWrapper.and(wrapper -> wrapper.like(column, condition));
- } else {
- queryWrapper.or().like(column, condition);
+ @SuppressWarnings("all")
+ public QueryWrapper<T> buildWrapper(boolean like, Consumer<QueryWrapper<T>> consumer, String timeField, List<String> fields) {
+ QueryWrapper<T> queryWrapper = new QueryWrapper<>();
+ Map<String, Object> map = where.getMap();
+ for (String key : map.keySet()) {
+ Object val = map.get(key);
+ if (Cools.isEmpty(val)){
+ continue;
+ }
+ if (key.contains("Range")) {
+ ArrayList<String> list = null;
+ if (val instanceof ArrayList) {
+ list = (ArrayList<String>) val;
+ }
+ if (null != list) {
+ key = key.replaceAll("Range", "");
+ if (this.isToUnderlineCase) {
+ key = Utils.toSymbolCase(key, '_');
+ }
+ queryWrapper.ge(key, DateUtils.convert(list.get(0)));
+ queryWrapper.le(key, DateUtils.convert(list.get(1)));
+ }
+ } else {
+ if (this.isToUnderlineCase) {
+ key = Utils.toSymbolCase(key, '_');
+ }
+ if (like && !fields.contains(key)) {
+ queryWrapper.like("`" + key + "`", val);
+ } else {
+ queryWrapper.eq("`" + key + "`", val);
+ }
+ }
+ }
+
+ if (null != consumer) {
+ consumer.accept(queryWrapper);
+ }
+
+ if (!Cools.isEmpty(where.getTimeStart())) {
+ Date timeStart = DateUtils.convert(String.valueOf(where.getTimeStart()), DateUtils.yyyyMMdd_F);
+ queryWrapper.ge(timeField, timeStart);
+
+ }
+ if (!Cools.isEmpty(where.getTimeEnd())) {
+ Date timeStart = DateUtils.convert(String.valueOf(where.getTimeEnd()), DateUtils.yyyyMMdd_F);
+ queryWrapper.le(timeField, timeStart);
+ }
+
+ if (!Cools.isEmpty(where.getOrderBy())) {
+ if (sortIsSQL(where.getOrderBy())) {
+ setOrders(parseOrderSQL(where.getOrderBy()));
+ }
+ } else {
+// queryWrapper.orderByDesc("create_time");
+ }
+
+ if (!Cools.isEmpty(where.getCondition()) && !Cools.isEmpty(cls)) {
+ List<String> columns = new ArrayList<>();
+ for (Field field : Cools.getAllFields(cls)) {
+ if (Modifier.isFinal(field.getModifiers())
+ || Modifier.isStatic(field.getModifiers())
+ || Modifier.isTransient(field.getModifiers())) {
+ continue;
+ }
+
+ if (field.isAnnotationPresent(TableField.class)) {
+ TableField annotation = field.getAnnotation(TableField.class);
+ if (!annotation.exist()) {
+ continue;
}
}
+
+ String column = Utils.toSymbolCase(field.getName(), '_');
+ columns.add(column);
+ }
+// if (!columns.isEmpty()) {
+// for (int i=0;i<columns.size();i++){
+// String column = columns.get(i);
+// String condition = where.getCondition();
+//
+// if (i == 0) {
+// queryWrapper.and(wrapper -> wrapper.like("`" + column + "`", condition));
+// } else {
+// queryWrapper.or().like("`" + column + "`", condition);
+// }
+// }
+// }
+ if (!columns.isEmpty()) {
+ queryWrapper.and(wrapper -> {
+ for (int i = 0; i < columns.size(); i++) {
+ String column = columns.get(i);
+ String condition = where.getCondition();
+ if (i == 0) {
+ wrapper.or().like("`" + column + "`", condition);
+ } else {
+ wrapper.or().like("`" + column + "`", condition);
+ }
+ }
+ });
}
}
return queryWrapper;
@@ -198,4 +311,5 @@
return map;
}
+
}
--
Gitblit v1.9.1