update 简化spel写法

This commit is contained in:
疯狂的狮子Li 2021-12-10 23:17:40 +08:00
parent 30e0775fe2
commit e8d942e841
2 changed files with 5 additions and 7 deletions

View File

@ -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;

View File

@ -21,7 +21,6 @@ import net.sf.jsqlparser.expression.operators.conditional.AndExpression;
import net.sf.jsqlparser.parser.CCJSqlParserUtil;
import org.springframework.expression.EvaluationContext;
import org.springframework.expression.ExpressionParser;
import org.springframework.expression.common.TemplateParserContext;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.expression.spel.support.StandardEvaluationContext;
@ -39,7 +38,6 @@ import java.util.stream.Collectors;
public class PlusDataPermissionHandler {
private final ExpressionParser parser = new SpelExpressionParser();
private final TemplateParserContext parserContext = new TemplateParserContext();
public Expression getSqlSegment(Expression where, String mappedStatementId, boolean isSelect) {
DataColumn[] dataColumns = findAnnotation(mappedStatementId);
@ -98,7 +96,7 @@ public class PlusDataPermissionHandler {
// 更新或删除需满足所有条件
sqlString.append(isSelect ? " OR " : " AND ");
// 解析sql模板并填充
String sql = parser.parseExpression(type.getSql(), parserContext).getValue(context, String.class);
String sql = parser.parseExpression(type.getSql()).getValue(context, String.class);
sqlString.append(sql);
}
}