From 9d0acfb65c80c4948c305ca01338f894b87346a0 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期一, 08 四月 2024 09:44:37 +0800
Subject: [PATCH] Merge branch 'Four-Way-Rack' of http://47.97.1.152:5880/r/zy-asrs-master into Four-Way-Rack

---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/domain/PageParam.java |   51 ++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 48 insertions(+), 3 deletions(-)

diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/domain/PageParam.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/domain/PageParam.java
index bfc76e3..0ae7e51 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/domain/PageParam.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/domain/PageParam.java
@@ -1,5 +1,6 @@
 package com.zy.asrs.wcs.common.domain;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zy.asrs.framework.common.Cools;
@@ -11,6 +12,7 @@
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.function.Consumer;
 
 /**
  * Created by vincent on 2/13/2024
@@ -64,8 +66,16 @@
         return this.buildWrapper(false);
     }
 
-    @SuppressWarnings("all")
+    public QueryWrapper<T> buildWrapper(Consumer<QueryWrapper<T>> consumer) {
+        return this.buildWrapper(false, consumer);
+    }
+
     public QueryWrapper<T> buildWrapper(boolean like) {
+        return this.buildWrapper(like, null);
+    }
+
+    @SuppressWarnings("all")
+    public QueryWrapper<T> buildWrapper(boolean like, Consumer<QueryWrapper<T>> consumer) {
         QueryWrapper<T> queryWrapper = new QueryWrapper<>();
         Map<String, Object> map = where.getMap();
         for (String key : map.keySet()) {
@@ -97,13 +107,34 @@
             }
         }
 
-        if (!Cools.isEmpty(where.getCondition()) && !Cools.isEmpty(cls)) {
+        if (null != consumer) {
+            consumer.accept(queryWrapper);
+        }
+
+        Field[] fields = null;
+        if (!Cools.isEmpty(cls)) {
+            fields = Cools.getAllFields(cls);
+            for (Field field : fields) {
+                if ("createTime".equals(field.getName())) {
+                    queryWrapper.orderByDesc(Utils.toSymbolCase(field.getName(), '_'));
+                }
+            }
+        }
+
+        if (!Cools.isEmpty(where.getCondition()) && !Cools.isEmpty(fields)) {
             List<String> columns = new ArrayList<>();
-            for (Field field :Cools.getAllFields(cls)){
+            for (Field field : fields){
                 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(), '_');
@@ -125,4 +156,18 @@
         return queryWrapper;
     }
 
+    public Map<String, Object> pickOutMap() {
+        return pickOutMap(false);
+    }
+
+    public Map<String, Object> pickOutMap(boolean mergeCondition) {
+        Map<String, Object> map = where.getMap();
+        if (mergeCondition) {
+            if (!Cools.isEmpty(where.getCondition())) {
+                map.put("condition", where.getCondition());
+            }
+        }
+        return map;
+    }
+
 }

--
Gitblit v1.9.1