From bfe51f9c2ce2181fee372ed5f9017c7af59cc896 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期一, 01 九月 2025 12:49:55 +0800
Subject: [PATCH] 1
---
zy-acs-manager/src/main/java/com/zy/acs/manager/common/domain/PageParam.java | 176 +++++++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 141 insertions(+), 35 deletions(-)
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/common/domain/PageParam.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/common/domain/PageParam.java
index b89922b..eabae2b 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/common/domain/PageParam.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/common/domain/PageParam.java
@@ -24,6 +24,11 @@
private static final long serialVersionUID = 1L;
public static final String ORDER_DESC_VALUE = "desc";
+ public static final Integer DEFAULT_PAGESIZE = 100;
+
+ public static final Integer DEFAULT_CURRENT = 1;
+
+
private final U where;
/**
@@ -45,6 +50,7 @@
this(where, true, cls);
}
+
public PageParam(U where, boolean isToUnderlineCase) {
this(where, isToUnderlineCase, null);
}
@@ -65,39 +71,21 @@
}
- public QueryWrapper<T> buildWrapper() {
- return this.buildWrapper(false);
- }
- public QueryWrapper<T> buildWrapper(Consumer<QueryWrapper<T>> consumer) {
- return this.buildWrapper(false, consumer);
+ public QueryWrapper<T> buildWrapperExcludeNull(boolean like) {
+ return this.buildWrapperExcludeNull(like, null, "create_time");
}
public QueryWrapper<T> buildWrapper(boolean like) {
- return this.buildWrapper(like, null);
+ return this.buildWrapper(like, null, "create_time");
}
- private boolean sortIsSQL(String sort) {
- return sort != null && (sort.contains(",") || sort.trim().contains(" "));
- }
-
- private List<OrderItem> parseOrderSQL(String orderSQL) {
- List<OrderItem> orders = new ArrayList<>();
- if (!Cools.isEmpty(orderSQL)) {
- for (String item : orderSQL.split(",")) {
- String[] temp = item.trim().split(" ");
- if (!temp[0].isEmpty()) {
- String column = this.isToUnderlineCase ? Utils.toSymbolCase(temp[0], '_') : temp[0];
- boolean asc = temp.length == 1 || !temp[temp.length - 1].toLowerCase().equals(ORDER_DESC_VALUE);
- orders.add(new OrderItem(column, asc));
- }
- }
- }
- return orders;
+ public QueryWrapper<T> buildWrapper(boolean like, String timeField) {
+ return this.buildWrapper(like, null, timeField);
}
@SuppressWarnings("all")
- public QueryWrapper<T> buildWrapper(boolean like, Consumer<QueryWrapper<T>> consumer) {
+ 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()) {
@@ -134,11 +122,12 @@
if (!Cools.isEmpty(where.getTimeStart())) {
Date timeStart = DateUtils.convert(String.valueOf(where.getTimeStart()), DateUtils.yyyyMMdd_F);
- queryWrapper.ge("create_time", timeStart);
+ queryWrapper.ge(timeField, timeStart);
+
}
if (!Cools.isEmpty(where.getTimeEnd())) {
Date timeStart = DateUtils.convert(String.valueOf(where.getTimeEnd()), DateUtils.yyyyMMdd_F);
- queryWrapper.le("create_time", timeStart);
+ queryWrapper.le(timeField, timeStart);
}
if (!Cools.isEmpty(where.getOrderBy())) {
@@ -151,25 +140,25 @@
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++){
+ for (int i = 0; i < columns.size(); i++) {
String column = columns.get(i);
String condition = where.getCondition();
@@ -184,12 +173,129 @@
return queryWrapper;
}
- public Map<String, Object> pickOutMap(boolean mergeCondition) {
+ @SuppressWarnings("all")
+ public QueryWrapper<T> buildWrapperExcludeNull(boolean like, Consumer<QueryWrapper<T>> consumer, String timeField) {
+ QueryWrapper<T> queryWrapper = new QueryWrapper<>();
Map<String, Object> map = where.getMap();
- if (mergeCondition) {
- if (!Cools.isEmpty(where.getCondition())) {
- map.put("condition", where.getCondition());
+ for (String key : map.keySet()) {
+ Object val = map.get(key);
+ if (val == null) {
+ 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) {
+ 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);
+ }
+ }
+ }
+ }
+ return queryWrapper;
+ }
+
+ private boolean sortIsSQL(String sort) {
+ return sort != null && (sort.contains(",") || sort.trim().contains(" "));
+ }
+
+ private List<OrderItem> parseOrderSQL(String orderSQL) {
+ List<OrderItem> orders = new ArrayList<>();
+ if (!Cools.isEmpty(orderSQL)) {
+ for (String item : orderSQL.split(",")) {
+ String[] temp = item.trim().split(" ");
+ if (!temp[0].isEmpty()) {
+ String column = this.isToUnderlineCase ? Utils.toSymbolCase(temp[0], '_') : temp[0];
+ boolean asc = temp.length == 1 || !temp[temp.length - 1].toLowerCase().equals(ORDER_DESC_VALUE);
+ orders.add(new OrderItem(column, asc));
+ }
+ }
+ }
+ return orders;
+ }
+
+ public Map<String, Object> checkoutMap() {
+ Map<String, Object> map = where.getMap();
+ if (!Cools.isEmpty(where.getOrderBy())) {
+ map.put("orderBy", where.getOrderBy());
+ }
+ if (!Cools.isEmpty(where.getTimeStart())) {
+ map.put("timeStart", DateUtils.convert(String.valueOf(where.getTimeStart()), DateUtils.yyyyMMdd_F));
+ }
+ if (!Cools.isEmpty(where.getTimeEnd())) {
+ map.put("timeEnd", DateUtils.convert(String.valueOf(where.getTimeEnd()), DateUtils.yyyyMMdd_F));
+ }
+ if (!Cools.isEmpty(where.getCondition())) {
+ map.put("condition", where.getCondition());
}
return map;
}
--
Gitblit v1.9.1