From ee9e6af1db388fdd6c4baae9d8c43e5fb5d6fdc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E7=BB=B4=E4=BC=9F?= Date: Sat, 21 Oct 2023 14:07:52 +0800 Subject: [PATCH] =?UTF-8?q?CMS=E6=95=B0=E6=8D=AE=E6=B8=85=E6=B4=97?= =?UTF-8?q?=E4=BC=98=E5=85=88=E5=A4=84=E7=90=86=E8=A7=92=E8=89=B2=E3=80=81?= =?UTF-8?q?=E8=A7=92=E8=89=B2=E5=88=86=E7=BB=84=E3=80=81=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E8=A7=92=E8=89=B2=E5=85=B3=E8=81=94=E5=85=B3=E7=B3=BB,?= =?UTF-8?q?=E9=81=BF=E5=85=8D=E5=87=BA=E7=8E=B0=E5=85=B6=E4=BB=96=E8=A7=92?= =?UTF-8?q?=E8=89=B2=E6=B2=A1=E6=9C=89=E6=9D=83=E9=99=90=E7=82=B9=E7=9B=B4?= =?UTF-8?q?=E6=8E=A5=E8=B7=B3=E8=BF=87=E7=9A=84=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tyr/server/job/CMSRoleJobHandler.java | 72 +++++++++---------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/job/CMSRoleJobHandler.java b/tyr-server/src/main/java/cn/axzo/tyr/server/job/CMSRoleJobHandler.java index 7001a155..b17737f1 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/job/CMSRoleJobHandler.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/job/CMSRoleJobHandler.java @@ -147,6 +147,41 @@ public class CMSRoleJobHandler extends IJobHandler { roleGroupDao.save(roleGroup); saasPreRoles.forEach(preRole -> { + // 创建角色:根据预设角色创建新的角色 + SaasRole newRole = new SaasRole(); + newRole.setRoleType(RoleTypeEnum.INIT.getValue()); + newRole.setName(preRole.getName()); + newRole.setCreateBy(-1l); + newRole.setUpdateBy(-1l); + newRole.setOwnerOuId(-1l); + newRole.setWorkspaceId(-1l); + roleDao.save(newRole); + + // 创建角色分组关联关系 + SaasRoleGroupRelation saasRoleGroupRelation = new SaasRoleGroupRelation(); + saasRoleGroupRelation.setRoleId(newRole.getId()); + saasRoleGroupRelation.setSaasRoleGroupId(roleGroup.getId()); + roleGroupRelationDao.save(saasRoleGroupRelation); + + // 更新用户关联关系表(根据老的fromRoleId更新至新roldId) + // 根据fromeRoleId查询老的roleId + // fromRoleId的角色未关联具体角色分组和权限点,可以直接丢弃,已经和产品确认过 +// SELECT * FROM `saas_pgroup_role_relation` WHERE `role_id` in ( +// SELECT id FROM saas_role WHERE is_delete=0 and workspace_id != -1 and from_pre_role_id = 0 and role_type!='super_admin' and `NAME` not like '%代班长%' and `NAME` not like '%带班长%') + List oldRoleList = roleDao.lambdaQuery() + .eq(SaasRole::getFromPreRoleId, preRole.getId()) + .list(); + if (CollectionUtils.isEmpty(oldRoleList)) { + log.info("未找到preRole下发的role preRole:{}", JSONUtil.toJsonStr(preRole)); + return; + } + List oldRoleId = oldRoleList.stream().map(BaseEntity::getId).collect(Collectors.toList()); + // 更新用户角色关联关系 + roleUserRelationDao.lambdaUpdate() + .in(SaasRoleUserRelation::getRoleId,oldRoleId) + .set(SaasRoleUserRelation::getRoleId,newRole.getId()) + .update(); + // 根据角色id查询角色权限集关联关系 List pgroupRoleRelation = saasPreGroupRoleRelationDao.lambdaQuery() .eq(SaasPreGroupRoleRelation::getPreRoleId, preRole.getId()) @@ -197,16 +232,6 @@ public class CMSRoleJobHandler extends IJobHandler { }).collect(Collectors.toList()); pgroupPermissionRelationDao.saveBatch(saasPgroupPermissionRelationList); - // 创建角色:根据预设角色创建新的角色 - SaasRole newRole = new SaasRole(); - newRole.setRoleType(RoleTypeEnum.INIT.getValue()); - newRole.setName(preRole.getName()); - newRole.setCreateBy(-1l); - newRole.setUpdateBy(-1l); - newRole.setOwnerOuId(-1l); - newRole.setWorkspaceId(-1l); - roleDao.save(newRole); - // 创建新的角色权限集关联关系 SaasPgroupRoleRelation saasPgroupRoleRelation = new SaasPgroupRoleRelation(); saasPgroupRoleRelation.setRoleId(newRole.getId()); @@ -215,33 +240,8 @@ public class CMSRoleJobHandler extends IJobHandler { saasPgroupRoleRelation.setUpdateBy(-1L); pgroupRoleRelationDao.save(saasPgroupRoleRelation); - // 创建角色分组关联关系 - SaasRoleGroupRelation saasRoleGroupRelation = new SaasRoleGroupRelation(); - saasRoleGroupRelation.setRoleId(newRole.getId()); - saasRoleGroupRelation.setSaasRoleGroupId(roleGroup.getId()); - roleGroupRelationDao.save(saasRoleGroupRelation); - - // 更新用户关联关系表(根据老的fromRoleId更新至新roldId) - // 根据fromeRoleId查询老的roleId - // fromRoleId的角色未关联具体角色分组和权限点,可以直接丢弃,已经和产品确认过 -// SELECT * FROM `saas_pgroup_role_relation` WHERE `role_id` in ( -// SELECT id FROM saas_role WHERE is_delete=0 and workspace_id != -1 and from_pre_role_id = 0 and role_type!='super_admin' and `NAME` not like '%代班长%' and `NAME` not like '%带班长%') - List list = roleDao.lambdaQuery() - .eq(SaasRole::getFromPreRoleId, preRole.getId()) - .list(); - if (CollectionUtils.isEmpty(list)) { - log.info("未找到preRole下发的role preRole:{}", JSONUtil.toJsonStr(preRole)); - return; - } - List oldRoleId = list.stream().map(BaseEntity::getId).collect(Collectors.toList()); - // 更新用户角色关联关系 - roleUserRelationDao.lambdaUpdate() - .in(SaasRoleUserRelation::getRoleId,oldRoleId) - .set(SaasRoleUserRelation::getRoleId,newRole.getId()) - .update(); - // 补充待删除数据 - deleteRoleId.addAll(list.stream().map(BaseEntity::getId).collect(Collectors.toSet())); + deleteRoleId.addAll(oldRoleList.stream().map(BaseEntity::getId).collect(Collectors.toSet())); deleteSaasPermissionGroupId.addAll(oldPermissionGroup.stream().map(BaseEntity::getId).collect(Collectors.toSet())); deletePgroupPermissionRelationId.addAll(oldPgroupPermissionRelation.stream().map(BaseEntity::getId).collect(Collectors.toSet())); });