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; 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 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.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;
@ -39,7 +38,6 @@ 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 TemplateParserContext 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);
@ -98,7 +96,7 @@ public class PlusDataPermissionHandler {
// 更新或删除需满足所有条件 // 更新或删除需满足所有条件
sqlString.append(isSelect ? " OR " : " AND "); sqlString.append(isSelect ? " OR " : " AND ");
// 解析sql模板并填充 // 解析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); sqlString.append(sql);
} }
} }