From e17da0ceeeaa8df65d16a6aba74595be312f1a09 Mon Sep 17 00:00:00 2001 From: stylefeng Date: Fri, 24 Jan 2025 18:00:35 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=908.3.3=E3=80=91=E3=80=90role=E3=80=91?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=A7=92=E8=89=B2=E6=95=B0=E6=8D=AE=E8=8C=83?= =?UTF-8?q?=E5=9B=B4=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../enums/permission/DataScopeTypeEnum.java | 16 +++++++- .../modular/role/entity/SysRoleDataScope.java | 40 ++++++++++++++++++- ...3.3_20250124_1733__add_role_date_scope.sql | 6 +++ 3 files changed, 58 insertions(+), 4 deletions(-) create mode 100644 kernel-s-system/system-spring-boot-starter/src/main/resources/db/migration/mysql/V8.3.3_20250124_1733__add_role_date_scope.sql diff --git a/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/enums/permission/DataScopeTypeEnum.java b/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/enums/permission/DataScopeTypeEnum.java index d45461163..9d045a8aa 100644 --- a/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/enums/permission/DataScopeTypeEnum.java +++ b/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/enums/permission/DataScopeTypeEnum.java @@ -58,9 +58,21 @@ public enum DataScopeTypeEnum { COMPANY_WITH_CHILD(31, "本公司及以下数据"), /** - * 指定部门数据 + * 指定机构层级及以下 + *

+ * 基于当前人所属的部门所在的机构层级,以及以下的机构下的数据 */ - DEFINE(40, "指定部门数据"), + DEFINE_ORG_LEVEL_WITH_CHILD(32, "指定机构层级及以下"), + + /** + * 指定机构集合数据 + */ + DEFINE(40, "指定机构集合数据"), + + /** + * 指定机构及以下 + */ + DEFINE_ORG_WITH_CHILD(41, "指定机构及以下"), /** * 全部数据 diff --git a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/entity/SysRoleDataScope.java b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/entity/SysRoleDataScope.java index 3f15156ed..a9b4f2ace 100644 --- a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/entity/SysRoleDataScope.java +++ b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/entity/SysRoleDataScope.java @@ -6,16 +6,19 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; import lombok.Data; import lombok.EqualsAndHashCode; +import java.util.List; + /** * 角色数据范围实例类 * * @author fengshuonan * @date 2023/06/10 21:29 */ -@TableName("sys_role_data_scope") +@TableName(value = "sys_role_data_scope", autoResultMap = true) @Data @EqualsAndHashCode(callSuper = true) public class SysRoleDataScope extends BaseEntity { @@ -34,11 +37,44 @@ public class SysRoleDataScope extends BaseEntity { @ChineseDescription("角色id") private Long roleId; + /** + * 数据范围类型:10-仅本人数据,20-本部门数据,30-本部门及以下数据,31-本公司及以下数据,32-指定机构层级及以下 + *

+ * 40-指定机构集合数据,41-指定机构及以下,50-全部数据 + */ + @TableField("data_scope_type") + @ChineseDescription("数据范围类型:10-仅本人数据,20-本部门数据,30-本部门及以下数据,31-本公司及以下数据,32-指定机构层级及以下,40-指定机构集合数据,41-指定机构及以下,50-全部数据") + private Integer data_scope_type; + + /** + * 层级的编码,用在类型为32-指定层级及以下,情况时使用 + */ + @TableField("org_level_code") + @ChineseDescription("层级的编码,用在类型为32-指定层级及以下,情况时使用") + private String orgLevelCode; + + /** + * 指定机构集合列表,用在类型为40-指定机构集合数据,情况时使用 + */ + @TableField(value = "define_org_list", typeHandler = JacksonTypeHandler.class) + @ChineseDescription("指定机构集合列表,用在类型为40-指定机构集合数据,情况时使用") + private List defineOrgList; + + /** + * 指定机构的id,用在类型为41-指定机构及以下,情况时使用 + */ + @TableField("define_org_id") + @ChineseDescription("指定机构的id,用在类型为41-指定机构及以下,情况时使用") + private Long defineOrgId; + + //-------------------------------移除掉的字段------------------------------- + /** * 机构id */ - @TableField("organization_id") + @TableField(exist = false) @ChineseDescription("机构id") + @Deprecated private Long organizationId; } diff --git a/kernel-s-system/system-spring-boot-starter/src/main/resources/db/migration/mysql/V8.3.3_20250124_1733__add_role_date_scope.sql b/kernel-s-system/system-spring-boot-starter/src/main/resources/db/migration/mysql/V8.3.3_20250124_1733__add_role_date_scope.sql new file mode 100644 index 000000000..1d274ed59 --- /dev/null +++ b/kernel-s-system/system-spring-boot-starter/src/main/resources/db/migration/mysql/V8.3.3_20250124_1733__add_role_date_scope.sql @@ -0,0 +1,6 @@ +ALTER TABLE `sys_role_data_scope` +DROP COLUMN `organization_id`, +ADD COLUMN `data_scope_type` tinyint NOT NULL DEFAULT 20 COMMENT '数据范围类型:10-仅本人数据,20-本部门数据,30-本部门及以下数据,31-本公司及以下数据,32-指定机构层级及以下,40-指定机构集合数据,41-指定机构及以下,50-全部数据' AFTER `role_id`, +ADD COLUMN `org_level_code` varchar(100) NULL COMMENT '层级的编码,用在类型为32-指定层级及以下,情况时使用' AFTER `data_scope_type`, +ADD COLUMN `define_org_list` json NULL COMMENT '指定机构集合列表,用在类型为40-指定机构集合数据,情况时使用' AFTER `org_level_code`, +ADD COLUMN `define_org_id` bigint NULL COMMENT '指定机构的id,用在类型为41-指定机构及以下,情况时使用' AFTER `define_org_list`; \ No newline at end of file