From 611d19bf1a8b8673be814fc70a2e432d5ab22e10 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期六, 10 一月 2026 14:02:58 +0800
Subject: [PATCH] 浪潮对接单点登录:租户数据隔离功能4

---
 src/main/java/com/ruoyi/common/QueryWrappers.java |   68 ++++++++++++++++++++++++++++++++++
 1 files changed, 68 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/common/QueryWrappers.java b/src/main/java/com/ruoyi/common/QueryWrappers.java
new file mode 100644
index 0000000..4f98173
--- /dev/null
+++ b/src/main/java/com/ruoyi/common/QueryWrappers.java
@@ -0,0 +1,68 @@
+package com.ruoyi.common;
+
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Component;
+
+import java.lang.reflect.Field;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+/*
+ * 鏉庢灄
+ * 鐢熸垚SQL璇彞*/
+
+@Component
+@AllArgsConstructor
+public class QueryWrappers<T> {
+
+    public static <T> QueryWrapper<T> queryWrappers(T entity) {
+        if (ObjectUtil.isEmpty(entity)) return null;
+        Class<?> aClass = entity.getClass();
+        QueryWrapper<T> wrapper = Wrappers.<T>query();
+        List<Field> fieldList = new ArrayList<>();
+        while (aClass != null) {
+            fieldList.addAll(new ArrayList<>(Arrays.asList(aClass.getDeclaredFields())));
+            aClass = aClass.getSuperclass();
+        }
+        for (Field field : fieldList) {
+            field.setAccessible(true);
+            Object value;
+            try {
+                value = field.get(entity);
+            } catch (IllegalAccessException e) {
+                e.printStackTrace();
+                throw new RuntimeException("鏌ヨ鏉′欢鐢熸垚閿欒");
+            }
+            if(value == null || value.equals("")){
+                continue;
+            }
+            /*boolean bool = field.isAnnotationPresent(TableField.class);
+            if (bool){
+                if(field.getAnnotation(TableField.class).exist()==false)continue;
+            }*/
+            if (!field.getName().equals("orderBy")) {
+                if(value.getClass()== LocalDateTime.class){
+                    wrapper.like(StrUtil.toUnderlineCase(field.getName()), ((LocalDateTime) value).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+                }else if(value.getClass()== String.class){
+                    wrapper.like(StrUtil.toUnderlineCase(field.getName()), value);
+                }else{
+                    wrapper.eq(StrUtil.toUnderlineCase(field.getName()), value);
+                }
+            } else {
+                Map<String, String> map = (Map<String, String>) value;
+                if(map.get("order")!=null){
+                    wrapper.orderBy(true, map.get("order").equals("asc"), StrUtil.toUnderlineCase(map.get("field")));
+                }
+            }
+        }
+        return wrapper;
+    }
+}

--
Gitblit v1.9.3