mirror of
https://gitee.com/dromara/RuoYi-Vue-Plus.git
synced 2026-09-20 02:08:15 +08:00
fix 回退 简化spel写法 有一定问题
This commit is contained in:
parent
e8d942e841
commit
85a7c64bf3
@ -25,22 +25,22 @@ public enum DataScopeType {
|
|||||||
/**
|
/**
|
||||||
* 自定数据权限
|
* 自定数据权限
|
||||||
*/
|
*/
|
||||||
CUSTOM("2", " #deptName IN ( SELECT dept_id FROM sys_role_dept WHERE role_id = #roleId ) "),
|
CUSTOM("2", " #{#deptName} IN ( SELECT dept_id FROM sys_role_dept WHERE role_id = #{#roleId} ) "),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 部门数据权限
|
* 部门数据权限
|
||||||
*/
|
*/
|
||||||
DEPT("3", " #deptName = #deptId "),
|
DEPT("3", " #{#deptName} = #{#deptId} "),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 部门及以下数据权限
|
* 部门及以下数据权限
|
||||||
*/
|
*/
|
||||||
DEPT_AND_CHILD("4", " #deptName IN ( SELECT dept_id FROM sys_dept WHERE dept_id = #deptId OR find_in_set( #deptId , ancestors ) )"),
|
DEPT_AND_CHILD("4", " #{#deptName} IN ( SELECT dept_id FROM sys_dept WHERE dept_id = #{#deptId} OR find_in_set( #{#deptId} , ancestors ) )"),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 仅本人数据权限
|
* 仅本人数据权限
|
||||||
*/
|
*/
|
||||||
SELF("5", " #userName?:1 = #userId ");
|
SELF("5", " #{#userName?:1} = #{#userId} ");
|
||||||
|
|
||||||
private final String code;
|
private final String code;
|
||||||
|
|
||||||
|
|||||||
@ -21,6 +21,8 @@ import net.sf.jsqlparser.expression.operators.conditional.AndExpression;
|
|||||||
import net.sf.jsqlparser.parser.CCJSqlParserUtil;
|
import net.sf.jsqlparser.parser.CCJSqlParserUtil;
|
||||||
import org.springframework.expression.EvaluationContext;
|
import org.springframework.expression.EvaluationContext;
|
||||||
import org.springframework.expression.ExpressionParser;
|
import org.springframework.expression.ExpressionParser;
|
||||||
|
import org.springframework.expression.ParserContext;
|
||||||
|
import org.springframework.expression.common.TemplateParserContext;
|
||||||
import org.springframework.expression.spel.standard.SpelExpressionParser;
|
import org.springframework.expression.spel.standard.SpelExpressionParser;
|
||||||
import org.springframework.expression.spel.support.StandardEvaluationContext;
|
import org.springframework.expression.spel.support.StandardEvaluationContext;
|
||||||
|
|
||||||
@ -38,6 +40,7 @@ import java.util.stream.Collectors;
|
|||||||
public class PlusDataPermissionHandler {
|
public class PlusDataPermissionHandler {
|
||||||
|
|
||||||
private final ExpressionParser parser = new SpelExpressionParser();
|
private final ExpressionParser parser = new SpelExpressionParser();
|
||||||
|
private final ParserContext parserContext = new TemplateParserContext();
|
||||||
|
|
||||||
public Expression getSqlSegment(Expression where, String mappedStatementId, boolean isSelect) {
|
public Expression getSqlSegment(Expression where, String mappedStatementId, boolean isSelect) {
|
||||||
DataColumn[] dataColumns = findAnnotation(mappedStatementId);
|
DataColumn[] dataColumns = findAnnotation(mappedStatementId);
|
||||||
@ -96,7 +99,7 @@ public class PlusDataPermissionHandler {
|
|||||||
// 更新或删除需满足所有条件
|
// 更新或删除需满足所有条件
|
||||||
sqlString.append(isSelect ? " OR " : " AND ");
|
sqlString.append(isSelect ? " OR " : " AND ");
|
||||||
// 解析sql模板并填充
|
// 解析sql模板并填充
|
||||||
String sql = parser.parseExpression(type.getSql()).getValue(context, String.class);
|
String sql = parser.parseExpression(type.getSql(), parserContext).getValue(context, String.class);
|
||||||
sqlString.append(sql);
|
sqlString.append(sql);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user