workcode 仅针对 system_users 表
This commit is contained in:
@@ -96,6 +96,7 @@ public class DeptDataPermissionRule implements DataPermissionRule {
|
||||
/**
|
||||
* 基于用户的表字段配置
|
||||
* 一般情况下,每个表的部门编号字段是 dept_id,通过该配置自定义。
|
||||
* key:表名
|
||||
* value:字段名
|
||||
*/
|
||||
private final Map<String, String> userColumns = new HashMap<>();
|
||||
@@ -261,20 +262,16 @@ public class DeptDataPermissionRule implements DataPermissionRule {
|
||||
if (Boolean.FALSE.equals(self)) {
|
||||
return null;
|
||||
}
|
||||
String userColumnsKey = tableName;
|
||||
if (StrUtil.isNotBlank(workCode)) {
|
||||
userColumnsKey = userColumnsKey + "_work_code";
|
||||
}
|
||||
String columnName = userColumns.get(userColumnsKey);
|
||||
String columnName = userColumns.get(tableName);
|
||||
if (StrUtil.isEmpty(columnName)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// 拼接条件
|
||||
if (StrUtil.isBlank(workCode)) {
|
||||
return new EqualsTo(MyBatisUtils.buildColumn(tableName, tableAlias, columnName), new LongValue(userId));
|
||||
if (StrUtil.isNotBlank(workCode) && "system_users".equals(tableName)) {
|
||||
return new EqualsTo(MyBatisUtils.buildColumn(tableName, tableAlias, "workcode"), new StringValue(workCode));
|
||||
} else {
|
||||
return new EqualsTo(MyBatisUtils.buildColumn(tableName, tableAlias, columnName), new StringValue(workCode));
|
||||
return new EqualsTo(MyBatisUtils.buildColumn(tableName, tableAlias, columnName), new LongValue(userId));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user