fix(extension/datapermission): 修复构建本部门及以下数据权限表达式问题。

This commit is contained in:
jasmine
2025-06-11 07:34:43 +00:00
committed by Charles7c
parent ad298930db
commit c0aa86327a

View File

@@ -36,11 +36,7 @@ import net.sf.jsqlparser.expression.LongValue;
import net.sf.jsqlparser.expression.StringValue; import net.sf.jsqlparser.expression.StringValue;
import net.sf.jsqlparser.expression.operators.conditional.AndExpression; import net.sf.jsqlparser.expression.operators.conditional.AndExpression;
import net.sf.jsqlparser.expression.operators.conditional.OrExpression; import net.sf.jsqlparser.expression.operators.conditional.OrExpression;
import net.sf.jsqlparser.expression.operators.relational.EqualsTo; import net.sf.jsqlparser.expression.operators.relational.*;
import net.sf.jsqlparser.expression.operators.relational.ExpressionList;
import net.sf.jsqlparser.expression.operators.relational.InExpression;
import net.sf.jsqlparser.expression.operators.relational.LikeExpression;
import net.sf.jsqlparser.expression.operators.relational.ParenthesedExpressionList;
import net.sf.jsqlparser.schema.Column; import net.sf.jsqlparser.schema.Column;
import net.sf.jsqlparser.schema.Table; import net.sf.jsqlparser.schema.Table;
import net.sf.jsqlparser.statement.select.ParenthesedSelect; import net.sf.jsqlparser.statement.select.ParenthesedSelect;
@@ -153,8 +149,8 @@ public class DefaultDataPermissionHandler implements DataPermissionHandler {
if (DatabaseType.MYSQL.getDatabase().equalsIgnoreCase(databaseType.getDatabase())) { if (DatabaseType.MYSQL.getDatabase().equalsIgnoreCase(databaseType.getDatabase())) {
Function findInSetFunction = new Function(); Function findInSetFunction = new Function();
findInSetFunction.setName("find_in_set"); findInSetFunction.setName("find_in_set");
findInSetFunction.setParameters(new ExpressionList<>(new LongValue(userContext findInSetFunction.setParameters(new ExpressionList(new LongValue(userContext
.getDeptId()), new StringValue(new Column("ancestors") + ","))); .getDeptId()), new Column("ancestors")));
inSetExpression = findInSetFunction; inSetExpression = findInSetFunction;
} else if (DatabaseType.POSTGRE_SQL.getDatabase().equalsIgnoreCase(databaseType.getDatabase())) { } else if (DatabaseType.POSTGRE_SQL.getDatabase().equalsIgnoreCase(databaseType.getDatabase())) {
// 构建 concat 函数 // 构建 concat 函数