From 9589e0e1bfd14f2297563fa9a9b3bdcbc7723b74 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期五, 16 二月 2024 21:12:52 +0800
Subject: [PATCH] #

---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/domain/PageParam.java |   94 ++++++++++++++++++++---------------------------
 1 files changed, 40 insertions(+), 54 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 82f0a05..bfc76e3 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
@@ -2,10 +2,14 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.zy.asrs.framework.common.Cools;
 import com.zy.asrs.framework.common.DateUtils;
 import com.zy.asrs.wcs.utils.Utils;
 
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
 import java.util.ArrayList;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -22,6 +26,8 @@
      */
     private final boolean isToUnderlineCase;
 
+    private final Class<T> cls;
+
     public PageParam() {
         this(null);
     }
@@ -30,10 +36,20 @@
         this(where, true);
     }
 
+    public PageParam(U where, Class<T> cls) {
+        this(where, true, cls);
+    }
+
     public PageParam(U where, boolean isToUnderlineCase) {
+        this(where, isToUnderlineCase, null);
+    }
+
+
+    public PageParam(U where, boolean isToUnderlineCase, Class<T> cls) {
         super();
         this.where = where;
         this.isToUnderlineCase = isToUnderlineCase;
+        this.cls = cls;
         if (where != null) {
             if (where.getCurrent() != null) {
                 setCurrent(where.getCurrent());
@@ -79,62 +95,32 @@
                 }
 
             }
+        }
 
+        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;
+                }
 
-//            switch (queryType) {
-//                case EQ:
-//                    queryWrapper.eq(fieldName, fieldValue);
-//                    break;
-//                case NE:
-//                    queryWrapper.ne(fieldName, fieldValue);
-//                    break;
-//                case GT:
-//                    queryWrapper.gt(fieldName, fieldValue);
-//                    break;
-//                case GE:
-//                    queryWrapper.ge(fieldName, fieldValue);
-//                    break;
-//                case LT:
-//                    queryWrapper.lt(fieldName, fieldValue);
-//                    break;
-//                case LE:
-//                    queryWrapper.le(fieldName, fieldValue);
-//                    break;
-//                case LIKE:
-//                    queryWrapper.like(fieldName, fieldValue);
-//                    break;
-//                case NOT_LIKE:
-//                    queryWrapper.notLike(fieldName, fieldValue);
-//                    break;
-//                case LIKE_LEFT:
-//                    queryWrapper.likeLeft(fieldName, fieldValue);
-//                    break;
-//                case LIKE_RIGHT:
-//                    queryWrapper.likeRight(fieldName, fieldValue);
-//                    break;
-//                case IS_NULL:
-//                    queryWrapper.isNull(fieldName);
-//                    break;
-//                case IS_NOT_NULL:
-//                    queryWrapper.isNotNull(fieldName);
-//                    break;
-//                case IN:
-//                    queryWrapper.in(fieldName, fieldValue);
-//                    break;
-//                case NOT_IN:
-//                    queryWrapper.notIn(fieldName, fieldValue);
-//                    break;
-//                case IN_STR:
-//                    if (fieldValue instanceof String) {
-//                        queryWrapper.in(fieldName, Arrays.asList(((String) fieldValue).split(",")));
-//                    }
-//                    break;
-//                case NOT_IN_STR:
-//                    if (fieldValue instanceof String) {
-//                        queryWrapper.notIn(fieldName, Arrays.asList(((String) fieldValue).split(",")));
-//                    }
-//                    break;
-//            }
+                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;
     }

--
Gitblit v1.9.1