diff --git a/src/main/java/com/zhgd/mybatis/DataScopeInterceptor.java b/src/main/java/com/zhgd/mybatis/DataScopeInterceptor.java index e6366fd56..c53acdd32 100644 --- a/src/main/java/com/zhgd/mybatis/DataScopeInterceptor.java +++ b/src/main/java/com/zhgd/mybatis/DataScopeInterceptor.java @@ -48,19 +48,28 @@ public class DataScopeInterceptor extends JsqlParserSupport implements InnerInte if (parameter instanceof Map) { Map map = (Map) parameter; for (Object k : map.keySet()) { + Object val = map.get(k); if (k instanceof String) { if (k.equals(Cts.IGNORE_DATA_SCOPE)) { - //查询只有一个参数map的时候key等于IGNORE_DATA_SCOPE + //查询只有一个参数map的时候key等于IGNORE_DATA_SCOPE,不使用@Param时候 return true; } } - Object val = map.get(k); if (val instanceof QueryWrapper) { String sqlSegment = ((QueryWrapper) val).getSqlSegment(); if (StrUtil.isNotBlank(sqlSegment) && sqlSegment.contains(Cts.IGNORE_DATA_SCOPE_CONDITION)) { //调用mybatisplus的mapper方法使用last方法添加参数IGNORE_DATA_SCOPE_CONDITION return true; } + } else if (val instanceof Map) { + Map innerMap = (Map) val; + for (Object entry : innerMap.entrySet()) { + Map.Entry et = (Map.Entry) entry; + if (et.getKey().equals(Cts.IGNORE_DATA_SCOPE)) { + //查询只有一个参数map的时候key等于IGNORE_DATA_SCOPE,使用@Param时候 + return true; + } + } } } }