From 97b3a311c44582bf24374d05f1fde0febbb251b5 Mon Sep 17 00:00:00 2001 From: Xubx <1827135378@qq.com> Date: Tue, 3 Jun 2025 17:07:15 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=9D=83=E9=99=90=E6=BA=90?= =?UTF-8?q?=E7=A0=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/system/query/QueryGenerator.java | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/query/QueryGenerator.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/query/QueryGenerator.java index ee35b59d..de66f04e 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/query/QueryGenerator.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/query/QueryGenerator.java @@ -118,7 +118,7 @@ public class QueryGenerator { //区间条件组装 模糊查询 高级查询组装 简单排序 权限查询 PropertyDescriptor[] origDescriptors = PropertyUtils.getPropertyDescriptors(searchObj); - Map ruleMap = getRuleMap(); + Map ruleMap = getRuleMap2(); //权限规则自定义SQL表达式 for (String c : ruleMap.keySet()) { @@ -727,6 +727,31 @@ public class QueryGenerator { } return ruleMap; } + public static Map getRuleMap2() { + Map ruleMap = new HashMap(); + List list = JeecgDataAutorUtils.loadDataSearchConditon(); + if (list != null && list.size() > 0) { + if (list.get(0) == null) { + return ruleMap; + } + for (SysPermissionDataRuleModel rule : list) { + String column = rule.getRuleColumn(); + if (QueryRuleEnum.SQL_RULES.getValue().equals(rule.getRuleConditions())) { + column = SQL_RULES_COLUMN + rule.getId(); + } + if (ruleMap.containsKey(column)) { + // 如果有相同的列权限规则,进行拼接 + SysPermissionDataRuleModel ruleTemp = ruleMap.get(column); + ruleTemp.setRuleConditions("IN"); + ruleTemp.setRuleValue(ruleTemp.getRuleValue() + "," + rule.getRuleValue()); + ruleMap.put(column, ruleTemp); + }else { + ruleMap.put(column, rule); + } + } + } + return ruleMap; + } private static void addRuleToQueryWrapper(SysPermissionDataRuleModel dataRule, String name, Class propertyType, QueryWrapper queryWrapper) { QueryRuleEnum rule = QueryRuleEnum.getByValue(dataRule.getRuleConditions());