From eb1062944d294c2f0e27f6221492d25e3fb20eac Mon Sep 17 00:00:00 2001 From: fengshuonan Date: Mon, 15 Jan 2024 23:32:22 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=908.1.0=E3=80=91=E3=80=90role=E3=80=91?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=A7=92=E8=89=B2=E7=B1=BB=E5=9E=8B=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E5=92=8C=E6=9E=9A=E4=B8=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sys/api/enums/role/RoleTypeEnum.java | 59 +++++++++++++++++++ .../sys/modular/role/entity/SysRole.java | 15 +++-- .../role/service/impl/SysRoleServiceImpl.java | 6 +- 3 files changed, 73 insertions(+), 7 deletions(-) create mode 100644 kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/enums/role/RoleTypeEnum.java diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/enums/role/RoleTypeEnum.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/enums/role/RoleTypeEnum.java new file mode 100644 index 000000000..57c3a9bae --- /dev/null +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/enums/role/RoleTypeEnum.java @@ -0,0 +1,59 @@ +package cn.stylefeng.roses.kernel.sys.api.enums.role; + +import cn.hutool.core.convert.Convert; +import cn.hutool.core.util.ObjectUtil; +import cn.stylefeng.roses.kernel.rule.base.ReadableEnum; +import lombok.Getter; + +/** + * 角色类型 + * + * @author fengshuonan + * @since 2024/1/15 23:27 + */ +@Getter +public enum RoleTypeEnum implements ReadableEnum { + + /** + * 系统角色 + */ + SYSTEM_ROLE(10, "系统角色"), + + /** + * 公司角色 + */ + COMPANY_ROLE(20, "公司角色"); + + private final Integer code; + + private final String name; + + RoleTypeEnum(Integer code, String name) { + this.code = code; + this.name = name; + } + + @Override + public Object getKey() { + return code; + } + + @Override + public Object getName() { + return name; + } + + @Override + public RoleTypeEnum parseToEnum(String originValue) { + if (ObjectUtil.isEmpty(originValue)) { + return null; + } + for (RoleTypeEnum value : RoleTypeEnum.values()) { + if (value.code.equals(Convert.toInt(originValue))) { + return value; + } + } + return null; + } + +} diff --git a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/entity/SysRole.java b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/entity/SysRole.java index 7abd93d90..eab691226 100644 --- a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/entity/SysRole.java +++ b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/entity/SysRole.java @@ -69,11 +69,18 @@ public class SysRole extends BaseExpandFieldEntity { private String remark; /** - * 是否是系统角色:Y-是,N-否。系统角色不能删除 + * 角色类型:10-系统角色,20-公司角色 */ - @TableField("role_system_flag") - @ChineseDescription("是否是系统角色:Y-是,N-否。系统角色不能删除") - private String roleSystemFlag; + @TableField("role_type") + @ChineseDescription("角色类型:10-系统角色,20-公司角色") + private Integer roleType; + + /** + * 角色所属公司id,当角色类型为20时传此值 + */ + @TableField("role_company_id") + @ChineseDescription("角色所属公司id,当角色类型为20时传此值") + private Long roleCompanyId; /** * 租户id diff --git a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/SysRoleServiceImpl.java b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/SysRoleServiceImpl.java index 55fa03ebd..50cf6e0c9 100644 --- a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/SysRoleServiceImpl.java +++ b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/SysRoleServiceImpl.java @@ -12,12 +12,12 @@ import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory; import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity; import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult; import cn.stylefeng.roses.kernel.log.api.util.BusinessLogUtil; -import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum; import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException; import cn.stylefeng.roses.kernel.sys.api.SysUserRoleServiceApi; import cn.stylefeng.roses.kernel.sys.api.callback.RemoveRoleCallbackApi; import cn.stylefeng.roses.kernel.sys.api.constants.SysConstants; import cn.stylefeng.roses.kernel.sys.api.enums.permission.DataScopeTypeEnum; +import cn.stylefeng.roses.kernel.sys.api.enums.role.RoleTypeEnum; import cn.stylefeng.roses.kernel.sys.api.pojo.role.SysRoleDTO; import cn.stylefeng.roses.kernel.sys.modular.menu.service.SysMenuOptionsService; import cn.stylefeng.roses.kernel.sys.modular.role.entity.SysRole; @@ -78,7 +78,7 @@ public class SysRoleServiceImpl extends ServiceImpl impl SysRole sysRole = this.querySysRole(sysRoleRequest); // 系统角色不能被删除 - if (YesOrNotEnum.Y.getCode().equals(sysRole.getRoleSystemFlag())) { + if (RoleTypeEnum.SYSTEM_ROLE.getCode().equals(sysRole.getRoleType())) { throw new ServiceException(SysRoleExceptionEnum.SYSTEM_ROLE_CANT_DELETE); } @@ -104,7 +104,7 @@ public class SysRoleServiceImpl extends ServiceImpl impl // 校验被删除的角色中是否有管理员角色 LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.in(SysRole::getRoleId, sysRoleRequest.getRoleIdList()); - queryWrapper.eq(SysRole::getRoleSystemFlag, YesOrNotEnum.Y.getCode()); + queryWrapper.eq(SysRole::getRoleType, RoleTypeEnum.SYSTEM_ROLE.getCode()); long haveSystemFlagCount = this.count(queryWrapper); if (haveSystemFlagCount > 0) { throw new ServiceException(SysRoleExceptionEnum.SYSTEM_ROLE_CANT_DELETE);