数据权限源码修改

This commit is contained in:
Xubx 2025-06-03 17:07:15 +08:00
parent 92b5fe9365
commit 97b3a311c4
1 changed files with 26 additions and 1 deletions

View File

@ -118,7 +118,7 @@ public class QueryGenerator {
//区间条件组装 模糊查询 高级查询组装 简单排序 权限查询
PropertyDescriptor[] origDescriptors = PropertyUtils.getPropertyDescriptors(searchObj);
Map<String,SysPermissionDataRuleModel> ruleMap = getRuleMap();
Map<String,SysPermissionDataRuleModel> ruleMap = getRuleMap2();
//权限规则自定义SQL表达式
for (String c : ruleMap.keySet()) {
@ -727,6 +727,31 @@ public class QueryGenerator {
}
return ruleMap;
}
public static Map<String, SysPermissionDataRuleModel> getRuleMap2() {
Map<String, SysPermissionDataRuleModel> ruleMap = new HashMap<String, SysPermissionDataRuleModel>();
List<SysPermissionDataRuleModel> 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());