diff --git a/kernel-d-db/db-sdk-mp/src/main/java/cn/stylefeng/roses/kernel/db/mp/datascope/config/DataScopeConfig.java b/kernel-d-db/db-sdk-mp/src/main/java/cn/stylefeng/roses/kernel/db/mp/datascope/config/DataScopeConfig.java new file mode 100644 index 000000000..4304005a1 --- /dev/null +++ b/kernel-d-db/db-sdk-mp/src/main/java/cn/stylefeng/roses/kernel/db/mp/datascope/config/DataScopeConfig.java @@ -0,0 +1,52 @@ +package cn.stylefeng.roses.kernel.db.mp.datascope.config; + +import cn.stylefeng.roses.kernel.rule.enums.permission.DataScopeTypeEnum; +import lombok.Data; + +import java.util.List; + +/** + * 数据范围权限配置 + * + * @author fengshuonan + * @since 2024-02-29 10:04 + */ +@Data +public class DataScopeConfig { + + /** + * 用户的数据范围权限类型 + */ + private DataScopeTypeEnum dataScopeType; + + /** + * 限制的用户id + */ + private Long userId; + + /** + * 用户所在部门id + */ + private Long userDeptId; + + /** + * 用户所在公司id + */ + private Long userCompanyId; + + /** + * 指定机构的ID列表,仅在数据范围类型为 DEFINE 时使用 + */ + private List specificOrgIds; + + /** + * 限制组织机构范围的字段名称 + */ + private String orgIdFieldName = "org_id"; + + /** + * 用来限制只查询自己数据的字段名称 + */ + private String userIdFieldName = "user_id"; + +} diff --git a/kernel-d-db/db-sdk-mp/src/main/java/cn/stylefeng/roses/kernel/db/mp/datascope/holder/DataScopeHolder.java b/kernel-d-db/db-sdk-mp/src/main/java/cn/stylefeng/roses/kernel/db/mp/datascope/holder/DataScopeHolder.java new file mode 100644 index 000000000..7feeb90cd --- /dev/null +++ b/kernel-d-db/db-sdk-mp/src/main/java/cn/stylefeng/roses/kernel/db/mp/datascope/holder/DataScopeHolder.java @@ -0,0 +1,45 @@ +package cn.stylefeng.roses.kernel.db.mp.datascope.holder; + +import cn.stylefeng.roses.kernel.db.mp.datascope.config.DataScopeConfig; + +/** + * 数据范围配置上下文,通过使用这个类进行数据范围的配置 + * + * @author fengshuonan + * @since 2024-02-29 10:16 + */ +public class DataScopeHolder { + + private static final ThreadLocal DATA_SCOPE_CONFIG_HOLDER = new ThreadLocal<>(); + + /** + * 设置数据范围配置 + * + * @author fengshuonan + * @since 2024-02-29 10:17 + */ + public static void set(DataScopeConfig tenantId) { + DATA_SCOPE_CONFIG_HOLDER.set(tenantId); + } + + /** + * 获取数据范围的配置 + * + * @author fengshuonan + * @since 2024-02-29 10:17 + */ + public static DataScopeConfig get() { + return DATA_SCOPE_CONFIG_HOLDER.get(); + } + + /** + * 删除数据范围的配置 + * + * @author fengshuonan + * @since 2024-02-29 10:17 + */ + public static void remove() { + DATA_SCOPE_CONFIG_HOLDER.remove(); + } + +}