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