From 5a272c98fcef0ee93b471834fb440ef7279a82bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E7=BB=B4=E4=BC=9F?= Date: Mon, 18 Sep 2023 14:25:38 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E8=A7=92=E8=89=B2=E6=B8=85=E6=B4=97job?= =?UTF-8?q?=E6=9A=82=E6=97=B6=E5=85=B3=E9=97=AD=E9=80=BB=E8=BE=91,?= =?UTF-8?q?=E9=AA=8C=E8=AF=81dev=E7=8E=AF=E5=A2=83=E8=BF=9E=E9=80=9A?= =?UTF-8?q?=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tyr/server/job/OMSRoleJobHandler.java | 228 +++++++++--------- 1 file changed, 114 insertions(+), 114 deletions(-) diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/job/OMSRoleJobHandler.java b/tyr-server/src/main/java/cn/axzo/tyr/server/job/OMSRoleJobHandler.java index b7167aea..02e45693 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/job/OMSRoleJobHandler.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/job/OMSRoleJobHandler.java @@ -59,120 +59,120 @@ public class OMSRoleJobHandler extends IJobHandler { @XxlJob("OMSRoleJobHandler") public ReturnT execute(String s) throws Exception { log.info("OMSRoleJobHandler start"); - // 创建角色分组 - SaasRoleGroup roleGroup = new SaasRoleGroup(); - roleGroup.setWorkspaceTypeCode("6"); - roleGroup.setOuTypeCode("6"); - roleGroup.setName("管理员"); - roleGroup.setWorkspaceId(-1l); - roleGroup.setOuId(-1l); - roleGroup.setSort(1); - roleGroupDao.save(roleGroup); - // 查询OMS的角色 workspaceType=6 OMS的角色 - List oldRole = roleDao.lambdaQuery() - .eq(SaasRole::getWorkspaceType, 6) - .notIn(SaasRole::getRoleType, "super_admin") - .list(); - // 重置老角色多余的字段 - oldRole.forEach(e -> { - e.setWorkspaceId(-1l); - e.setOwnerOuId(-1l); - }); - roleDao.updateBatchById(oldRole); - // 保存角色分组关联关系 - List roleGroupRelation = oldRole.stream().map(e -> { - SaasRoleGroupRelation saasRoleGroupRelation = new SaasRoleGroupRelation(); - saasRoleGroupRelation.setRoleId(e.getId()); - saasRoleGroupRelation.setSaasRoleGroupId(roleGroup.getId()); - return saasRoleGroupRelation; - }).collect(Collectors.toList()); - roleGroupRelationDao.saveBatch(roleGroupRelation); - // 查询角色关联的角色,打包成新的权限集 - ArrayList deletePgroup = new ArrayList<>(); - ArrayList deletePgroupRoleRelation = new ArrayList<>(); - ArrayList deletePgroupPermissionRelation = new ArrayList<>(); - oldRole.forEach(role -> { - List pgroupRoleRelation = pgroupRoleRelationDao.lambdaQuery().eq(SaasPgroupRoleRelation::getRoleId, role.getId()).list(); - if (CollectionUtils.isEmpty(pgroupRoleRelation)) { - return; - } - List permissionGroup = saasPermissionGroupDao.lambdaQuery().in(BaseEntity::getId, pgroupRoleRelation.stream().map(SaasPgroupRoleRelation::getGroupId).collect(Collectors.toList())).list(); - if (CollectionUtils.isEmpty(permissionGroup)) { - // 删除角色权限集关联关系 - deletePgroupRoleRelation.addAll(pgroupRoleRelation); - return; - } - List pgroupPermissionRelation = pgroupPermissionRelationDao.lambdaQuery().in(SaasPgroupPermissionRelation::getGroupId, permissionGroup.stream().map(BaseEntity::getId).collect(Collectors.toList())).list(); - if (CollectionUtils.isEmpty(pgroupPermissionRelation)) { - // 如果没查到权限则表示当前权限集是无意义的,删掉 - deletePgroup.addAll(permissionGroup); - // 删除角色权限集关联关系 - deletePgroupRoleRelation.addAll(pgroupRoleRelation); - return; - } - List feature = featureDao.lambdaQuery().in(BaseEntity::getId, pgroupPermissionRelation.stream().map(SaasPgroupPermissionRelation::getFeatureId).collect(Collectors.toList())).list(); - if (CollectionUtils.isEmpty(feature)) { - // 删除权限集权限关联关系 - deletePgroupPermissionRelation.addAll(pgroupPermissionRelation); - // 如果没查到权限则表示当前权限集是无意义的,删掉 - deletePgroup.addAll(permissionGroup); - // 删除角色权限集关联关系 - deletePgroupRoleRelation.addAll(pgroupRoleRelation); - return; - } - // 创建新的权限集 - SaasPermissionGroup saasPermissionGroup = new SaasPermissionGroup(); - saasPermissionGroup.setName("通用权限"); - saasPermissionGroup.setDescription(""); - saasPermissionGroup.setCreateBy(-1L); - saasPermissionGroup.setUpdateBy(-1L); - saasPermissionGroup.setType("feature"); - saasPermissionGroup.setIsCommon(1); - saasPermissionGroupDao.save(saasPermissionGroup); - deletePgroup.addAll(permissionGroup); - // 创建新的角色权限集关联关系 - SaasPgroupRoleRelation saasPgroupRoleRelation = new SaasPgroupRoleRelation(); - saasPgroupRoleRelation.setRoleId(role.getId()); - saasPgroupRoleRelation.setGroupId(saasPermissionGroup.getId()); - saasPgroupRoleRelation.setCreateBy(-1L); - saasPgroupRoleRelation.setUpdateBy(-1L); - pgroupRoleRelationDao.save(saasPgroupRoleRelation); - // 创建新的权限集权限关联关系 - feature.forEach(e -> { - SaasPgroupPermissionRelation saasPgroupPermissionRelation = new SaasPgroupPermissionRelation(); - saasPgroupPermissionRelation.setGroupId(saasPermissionGroup.getId()); - saasPgroupPermissionRelation.setFeatureId(e.getId()); - saasPgroupPermissionRelation.setCreateBy(-1L); - saasPgroupPermissionRelation.setUpdateBy(-1L); - pgroupPermissionRelationDao.save(saasPgroupPermissionRelation); - }); - // 暂存待删除数据 - deletePgroupPermissionRelation.addAll(pgroupPermissionRelation); - // 暂存待删除数据 - deletePgroupRoleRelation.addAll(pgroupRoleRelation); - }); - // 所有的数据都不能在循环中删,要不然下一次循环中就查不到了 - // 删除老的权限集权限关联关系 - deletePgroupPermissionRelation.forEach(e -> { - pgroupPermissionRelationDao.lambdaUpdate() - .eq(BaseEntity::getId, e.getId()) - .set(BaseEntity::getIsDelete, e.getId()) - .update(); - }); - // 删除老的角色权限集关联关系 - deletePgroupRoleRelation.forEach(e -> { - pgroupRoleRelationDao.lambdaUpdate() - .eq(BaseEntity::getId, e.getId()) - .set(BaseEntity::getIsDelete, e.getId()) - .update(); - }); - // 删除权限集 - deletePgroup.forEach(e -> { - saasPermissionGroupDao.lambdaUpdate() - .eq(BaseEntity::getId, e.getId()) - .set(BaseEntity::getIsDelete, e.getId()) - .update(); - }); +// // 创建角色分组 +// SaasRoleGroup roleGroup = new SaasRoleGroup(); +// roleGroup.setWorkspaceTypeCode("6"); +// roleGroup.setOuTypeCode("6"); +// roleGroup.setName("管理员"); +// roleGroup.setWorkspaceId(-1l); +// roleGroup.setOuId(-1l); +// roleGroup.setSort(1); +// roleGroupDao.save(roleGroup); +// // 查询OMS的角色 workspaceType=6 OMS的角色 +// List oldRole = roleDao.lambdaQuery() +// .eq(SaasRole::getWorkspaceType, 6) +// .notIn(SaasRole::getRoleType, "super_admin") +// .list(); +// // 重置老角色多余的字段 +// oldRole.forEach(e -> { +// e.setWorkspaceId(-1l); +// e.setOwnerOuId(-1l); +// }); +// roleDao.updateBatchById(oldRole); +// // 保存角色分组关联关系 +// List roleGroupRelation = oldRole.stream().map(e -> { +// SaasRoleGroupRelation saasRoleGroupRelation = new SaasRoleGroupRelation(); +// saasRoleGroupRelation.setRoleId(e.getId()); +// saasRoleGroupRelation.setSaasRoleGroupId(roleGroup.getId()); +// return saasRoleGroupRelation; +// }).collect(Collectors.toList()); +// roleGroupRelationDao.saveBatch(roleGroupRelation); +// // 查询角色关联的角色,打包成新的权限集 +// ArrayList deletePgroup = new ArrayList<>(); +// ArrayList deletePgroupRoleRelation = new ArrayList<>(); +// ArrayList deletePgroupPermissionRelation = new ArrayList<>(); +// oldRole.forEach(role -> { +// List pgroupRoleRelation = pgroupRoleRelationDao.lambdaQuery().eq(SaasPgroupRoleRelation::getRoleId, role.getId()).list(); +// if (CollectionUtils.isEmpty(pgroupRoleRelation)) { +// return; +// } +// List permissionGroup = saasPermissionGroupDao.lambdaQuery().in(BaseEntity::getId, pgroupRoleRelation.stream().map(SaasPgroupRoleRelation::getGroupId).collect(Collectors.toList())).list(); +// if (CollectionUtils.isEmpty(permissionGroup)) { +// // 删除角色权限集关联关系 +// deletePgroupRoleRelation.addAll(pgroupRoleRelation); +// return; +// } +// List pgroupPermissionRelation = pgroupPermissionRelationDao.lambdaQuery().in(SaasPgroupPermissionRelation::getGroupId, permissionGroup.stream().map(BaseEntity::getId).collect(Collectors.toList())).list(); +// if (CollectionUtils.isEmpty(pgroupPermissionRelation)) { +// // 如果没查到权限则表示当前权限集是无意义的,删掉 +// deletePgroup.addAll(permissionGroup); +// // 删除角色权限集关联关系 +// deletePgroupRoleRelation.addAll(pgroupRoleRelation); +// return; +// } +// List feature = featureDao.lambdaQuery().in(BaseEntity::getId, pgroupPermissionRelation.stream().map(SaasPgroupPermissionRelation::getFeatureId).collect(Collectors.toList())).list(); +// if (CollectionUtils.isEmpty(feature)) { +// // 删除权限集权限关联关系 +// deletePgroupPermissionRelation.addAll(pgroupPermissionRelation); +// // 如果没查到权限则表示当前权限集是无意义的,删掉 +// deletePgroup.addAll(permissionGroup); +// // 删除角色权限集关联关系 +// deletePgroupRoleRelation.addAll(pgroupRoleRelation); +// return; +// } +// // 创建新的权限集 +// SaasPermissionGroup saasPermissionGroup = new SaasPermissionGroup(); +// saasPermissionGroup.setName("通用权限"); +// saasPermissionGroup.setDescription(""); +// saasPermissionGroup.setCreateBy(-1L); +// saasPermissionGroup.setUpdateBy(-1L); +// saasPermissionGroup.setType("feature"); +// saasPermissionGroup.setIsCommon(1); +// saasPermissionGroupDao.save(saasPermissionGroup); +// deletePgroup.addAll(permissionGroup); +// // 创建新的角色权限集关联关系 +// SaasPgroupRoleRelation saasPgroupRoleRelation = new SaasPgroupRoleRelation(); +// saasPgroupRoleRelation.setRoleId(role.getId()); +// saasPgroupRoleRelation.setGroupId(saasPermissionGroup.getId()); +// saasPgroupRoleRelation.setCreateBy(-1L); +// saasPgroupRoleRelation.setUpdateBy(-1L); +// pgroupRoleRelationDao.save(saasPgroupRoleRelation); +// // 创建新的权限集权限关联关系 +// feature.forEach(e -> { +// SaasPgroupPermissionRelation saasPgroupPermissionRelation = new SaasPgroupPermissionRelation(); +// saasPgroupPermissionRelation.setGroupId(saasPermissionGroup.getId()); +// saasPgroupPermissionRelation.setFeatureId(e.getId()); +// saasPgroupPermissionRelation.setCreateBy(-1L); +// saasPgroupPermissionRelation.setUpdateBy(-1L); +// pgroupPermissionRelationDao.save(saasPgroupPermissionRelation); +// }); +// // 暂存待删除数据 +// deletePgroupPermissionRelation.addAll(pgroupPermissionRelation); +// // 暂存待删除数据 +// deletePgroupRoleRelation.addAll(pgroupRoleRelation); +// }); +// // 所有的数据都不能在循环中删,要不然下一次循环中就查不到了 +// // 删除老的权限集权限关联关系 +// deletePgroupPermissionRelation.forEach(e -> { +// pgroupPermissionRelationDao.lambdaUpdate() +// .eq(BaseEntity::getId, e.getId()) +// .set(BaseEntity::getIsDelete, e.getId()) +// .update(); +// }); +// // 删除老的角色权限集关联关系 +// deletePgroupRoleRelation.forEach(e -> { +// pgroupRoleRelationDao.lambdaUpdate() +// .eq(BaseEntity::getId, e.getId()) +// .set(BaseEntity::getIsDelete, e.getId()) +// .update(); +// }); +// // 删除权限集 +// deletePgroup.forEach(e -> { +// saasPermissionGroupDao.lambdaUpdate() +// .eq(BaseEntity::getId, e.getId()) +// .set(BaseEntity::getIsDelete, e.getId()) +// .update(); +// }); log.info("OMSRoleJobHandler end"); return ReturnT.SUCCESS; } From 11d535da2a8b6947fb8e3ffd2501a55ccbc684a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E7=BB=B4=E4=BC=9F?= Date: Mon, 18 Sep 2023 14:48:22 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E6=B7=BB=E5=8A=A0XxlJobConfig?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../axzo/tyr/server/config/XxlJobConfig.java | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 tyr-server/src/main/java/cn/axzo/tyr/server/config/XxlJobConfig.java diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/config/XxlJobConfig.java b/tyr-server/src/main/java/cn/axzo/tyr/server/config/XxlJobConfig.java new file mode 100644 index 00000000..44dfeabc --- /dev/null +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/config/XxlJobConfig.java @@ -0,0 +1,76 @@ +package cn.axzo.tyr.server.config; + +import cn.azxo.framework.common.logger.JobLoggerTemplate; +import cn.azxo.framework.common.service.JobParamResolver; +import com.xxl.job.core.executor.impl.XxlJobSpringExecutor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * xxl-job config + * + * @author xuxueli 2017-04-28 + */ +@Configuration +public class XxlJobConfig { + + Logger logger = LoggerFactory.getLogger(XxlJobConfig.class); + + /** + * //@Value("http://dev-xxl-job.axzo.cn/xxl-job-admin") + */ + @Value("${xxl.job.admin.addresses}") + private String adminAddresses; + + @Value("${xxl.job.executor.appname}") + private String appName; + + @Value("") + private String ip; + + @Value("${xxl.job.executor.port}") + private int port; + + + /** + * // @Value("${xxl.job.accessToken}") + */ + @Value("") + private String accessToken; + + @Value("") + private String logPath; + + @Value("-1") + private int logRetentionDays; + + @Bean + public XxlJobSpringExecutor xxlJobExecutor() { + logger.info(">>>>>>>>>>> xxl-job config init."); + XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor(); + xxlJobSpringExecutor.setAdminAddresses(adminAddresses); + xxlJobSpringExecutor.setAppname(appName); + xxlJobSpringExecutor.setIp(ip); + xxlJobSpringExecutor.setPort(port); + xxlJobSpringExecutor.setAccessToken(accessToken); + xxlJobSpringExecutor.setLogPath(logPath); + xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays); + + return xxlJobSpringExecutor; + } + + @Bean("jobParamResolver") + public JobParamResolver jobParamResolver(){ + return new JobParamResolver(); + } + + @Bean("jobLoggerTemplate") + public JobLoggerTemplate jobLoggerTemplate(){ + return new JobLoggerTemplate(); + } + +} + From a1d60a09a6837b240e39af84f1e5ba65b3f38ea9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E7=BB=B4=E4=BC=9F?= Date: Mon, 18 Sep 2023 15:08:20 +0800 Subject: [PATCH 3/5] =?UTF-8?q?xxl-job=E7=8E=AF=E5=A2=83=E8=81=94=E9=80=9A?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E5=AE=8C=E6=AF=95,=E5=9B=9E=E5=A4=8D?= =?UTF-8?q?=E8=A7=92=E8=89=B2=E6=B8=85=E6=B4=97job=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tyr/server/job/OMSRoleJobHandler.java | 228 +++++++++--------- 1 file changed, 114 insertions(+), 114 deletions(-) diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/job/OMSRoleJobHandler.java b/tyr-server/src/main/java/cn/axzo/tyr/server/job/OMSRoleJobHandler.java index 02e45693..b7167aea 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/job/OMSRoleJobHandler.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/job/OMSRoleJobHandler.java @@ -59,120 +59,120 @@ public class OMSRoleJobHandler extends IJobHandler { @XxlJob("OMSRoleJobHandler") public ReturnT execute(String s) throws Exception { log.info("OMSRoleJobHandler start"); -// // 创建角色分组 -// SaasRoleGroup roleGroup = new SaasRoleGroup(); -// roleGroup.setWorkspaceTypeCode("6"); -// roleGroup.setOuTypeCode("6"); -// roleGroup.setName("管理员"); -// roleGroup.setWorkspaceId(-1l); -// roleGroup.setOuId(-1l); -// roleGroup.setSort(1); -// roleGroupDao.save(roleGroup); -// // 查询OMS的角色 workspaceType=6 OMS的角色 -// List oldRole = roleDao.lambdaQuery() -// .eq(SaasRole::getWorkspaceType, 6) -// .notIn(SaasRole::getRoleType, "super_admin") -// .list(); -// // 重置老角色多余的字段 -// oldRole.forEach(e -> { -// e.setWorkspaceId(-1l); -// e.setOwnerOuId(-1l); -// }); -// roleDao.updateBatchById(oldRole); -// // 保存角色分组关联关系 -// List roleGroupRelation = oldRole.stream().map(e -> { -// SaasRoleGroupRelation saasRoleGroupRelation = new SaasRoleGroupRelation(); -// saasRoleGroupRelation.setRoleId(e.getId()); -// saasRoleGroupRelation.setSaasRoleGroupId(roleGroup.getId()); -// return saasRoleGroupRelation; -// }).collect(Collectors.toList()); -// roleGroupRelationDao.saveBatch(roleGroupRelation); -// // 查询角色关联的角色,打包成新的权限集 -// ArrayList deletePgroup = new ArrayList<>(); -// ArrayList deletePgroupRoleRelation = new ArrayList<>(); -// ArrayList deletePgroupPermissionRelation = new ArrayList<>(); -// oldRole.forEach(role -> { -// List pgroupRoleRelation = pgroupRoleRelationDao.lambdaQuery().eq(SaasPgroupRoleRelation::getRoleId, role.getId()).list(); -// if (CollectionUtils.isEmpty(pgroupRoleRelation)) { -// return; -// } -// List permissionGroup = saasPermissionGroupDao.lambdaQuery().in(BaseEntity::getId, pgroupRoleRelation.stream().map(SaasPgroupRoleRelation::getGroupId).collect(Collectors.toList())).list(); -// if (CollectionUtils.isEmpty(permissionGroup)) { -// // 删除角色权限集关联关系 -// deletePgroupRoleRelation.addAll(pgroupRoleRelation); -// return; -// } -// List pgroupPermissionRelation = pgroupPermissionRelationDao.lambdaQuery().in(SaasPgroupPermissionRelation::getGroupId, permissionGroup.stream().map(BaseEntity::getId).collect(Collectors.toList())).list(); -// if (CollectionUtils.isEmpty(pgroupPermissionRelation)) { -// // 如果没查到权限则表示当前权限集是无意义的,删掉 -// deletePgroup.addAll(permissionGroup); -// // 删除角色权限集关联关系 -// deletePgroupRoleRelation.addAll(pgroupRoleRelation); -// return; -// } -// List feature = featureDao.lambdaQuery().in(BaseEntity::getId, pgroupPermissionRelation.stream().map(SaasPgroupPermissionRelation::getFeatureId).collect(Collectors.toList())).list(); -// if (CollectionUtils.isEmpty(feature)) { -// // 删除权限集权限关联关系 -// deletePgroupPermissionRelation.addAll(pgroupPermissionRelation); -// // 如果没查到权限则表示当前权限集是无意义的,删掉 -// deletePgroup.addAll(permissionGroup); -// // 删除角色权限集关联关系 -// deletePgroupRoleRelation.addAll(pgroupRoleRelation); -// return; -// } -// // 创建新的权限集 -// SaasPermissionGroup saasPermissionGroup = new SaasPermissionGroup(); -// saasPermissionGroup.setName("通用权限"); -// saasPermissionGroup.setDescription(""); -// saasPermissionGroup.setCreateBy(-1L); -// saasPermissionGroup.setUpdateBy(-1L); -// saasPermissionGroup.setType("feature"); -// saasPermissionGroup.setIsCommon(1); -// saasPermissionGroupDao.save(saasPermissionGroup); -// deletePgroup.addAll(permissionGroup); -// // 创建新的角色权限集关联关系 -// SaasPgroupRoleRelation saasPgroupRoleRelation = new SaasPgroupRoleRelation(); -// saasPgroupRoleRelation.setRoleId(role.getId()); -// saasPgroupRoleRelation.setGroupId(saasPermissionGroup.getId()); -// saasPgroupRoleRelation.setCreateBy(-1L); -// saasPgroupRoleRelation.setUpdateBy(-1L); -// pgroupRoleRelationDao.save(saasPgroupRoleRelation); -// // 创建新的权限集权限关联关系 -// feature.forEach(e -> { -// SaasPgroupPermissionRelation saasPgroupPermissionRelation = new SaasPgroupPermissionRelation(); -// saasPgroupPermissionRelation.setGroupId(saasPermissionGroup.getId()); -// saasPgroupPermissionRelation.setFeatureId(e.getId()); -// saasPgroupPermissionRelation.setCreateBy(-1L); -// saasPgroupPermissionRelation.setUpdateBy(-1L); -// pgroupPermissionRelationDao.save(saasPgroupPermissionRelation); -// }); -// // 暂存待删除数据 -// deletePgroupPermissionRelation.addAll(pgroupPermissionRelation); -// // 暂存待删除数据 -// deletePgroupRoleRelation.addAll(pgroupRoleRelation); -// }); -// // 所有的数据都不能在循环中删,要不然下一次循环中就查不到了 -// // 删除老的权限集权限关联关系 -// deletePgroupPermissionRelation.forEach(e -> { -// pgroupPermissionRelationDao.lambdaUpdate() -// .eq(BaseEntity::getId, e.getId()) -// .set(BaseEntity::getIsDelete, e.getId()) -// .update(); -// }); -// // 删除老的角色权限集关联关系 -// deletePgroupRoleRelation.forEach(e -> { -// pgroupRoleRelationDao.lambdaUpdate() -// .eq(BaseEntity::getId, e.getId()) -// .set(BaseEntity::getIsDelete, e.getId()) -// .update(); -// }); -// // 删除权限集 -// deletePgroup.forEach(e -> { -// saasPermissionGroupDao.lambdaUpdate() -// .eq(BaseEntity::getId, e.getId()) -// .set(BaseEntity::getIsDelete, e.getId()) -// .update(); -// }); + // 创建角色分组 + SaasRoleGroup roleGroup = new SaasRoleGroup(); + roleGroup.setWorkspaceTypeCode("6"); + roleGroup.setOuTypeCode("6"); + roleGroup.setName("管理员"); + roleGroup.setWorkspaceId(-1l); + roleGroup.setOuId(-1l); + roleGroup.setSort(1); + roleGroupDao.save(roleGroup); + // 查询OMS的角色 workspaceType=6 OMS的角色 + List oldRole = roleDao.lambdaQuery() + .eq(SaasRole::getWorkspaceType, 6) + .notIn(SaasRole::getRoleType, "super_admin") + .list(); + // 重置老角色多余的字段 + oldRole.forEach(e -> { + e.setWorkspaceId(-1l); + e.setOwnerOuId(-1l); + }); + roleDao.updateBatchById(oldRole); + // 保存角色分组关联关系 + List roleGroupRelation = oldRole.stream().map(e -> { + SaasRoleGroupRelation saasRoleGroupRelation = new SaasRoleGroupRelation(); + saasRoleGroupRelation.setRoleId(e.getId()); + saasRoleGroupRelation.setSaasRoleGroupId(roleGroup.getId()); + return saasRoleGroupRelation; + }).collect(Collectors.toList()); + roleGroupRelationDao.saveBatch(roleGroupRelation); + // 查询角色关联的角色,打包成新的权限集 + ArrayList deletePgroup = new ArrayList<>(); + ArrayList deletePgroupRoleRelation = new ArrayList<>(); + ArrayList deletePgroupPermissionRelation = new ArrayList<>(); + oldRole.forEach(role -> { + List pgroupRoleRelation = pgroupRoleRelationDao.lambdaQuery().eq(SaasPgroupRoleRelation::getRoleId, role.getId()).list(); + if (CollectionUtils.isEmpty(pgroupRoleRelation)) { + return; + } + List permissionGroup = saasPermissionGroupDao.lambdaQuery().in(BaseEntity::getId, pgroupRoleRelation.stream().map(SaasPgroupRoleRelation::getGroupId).collect(Collectors.toList())).list(); + if (CollectionUtils.isEmpty(permissionGroup)) { + // 删除角色权限集关联关系 + deletePgroupRoleRelation.addAll(pgroupRoleRelation); + return; + } + List pgroupPermissionRelation = pgroupPermissionRelationDao.lambdaQuery().in(SaasPgroupPermissionRelation::getGroupId, permissionGroup.stream().map(BaseEntity::getId).collect(Collectors.toList())).list(); + if (CollectionUtils.isEmpty(pgroupPermissionRelation)) { + // 如果没查到权限则表示当前权限集是无意义的,删掉 + deletePgroup.addAll(permissionGroup); + // 删除角色权限集关联关系 + deletePgroupRoleRelation.addAll(pgroupRoleRelation); + return; + } + List feature = featureDao.lambdaQuery().in(BaseEntity::getId, pgroupPermissionRelation.stream().map(SaasPgroupPermissionRelation::getFeatureId).collect(Collectors.toList())).list(); + if (CollectionUtils.isEmpty(feature)) { + // 删除权限集权限关联关系 + deletePgroupPermissionRelation.addAll(pgroupPermissionRelation); + // 如果没查到权限则表示当前权限集是无意义的,删掉 + deletePgroup.addAll(permissionGroup); + // 删除角色权限集关联关系 + deletePgroupRoleRelation.addAll(pgroupRoleRelation); + return; + } + // 创建新的权限集 + SaasPermissionGroup saasPermissionGroup = new SaasPermissionGroup(); + saasPermissionGroup.setName("通用权限"); + saasPermissionGroup.setDescription(""); + saasPermissionGroup.setCreateBy(-1L); + saasPermissionGroup.setUpdateBy(-1L); + saasPermissionGroup.setType("feature"); + saasPermissionGroup.setIsCommon(1); + saasPermissionGroupDao.save(saasPermissionGroup); + deletePgroup.addAll(permissionGroup); + // 创建新的角色权限集关联关系 + SaasPgroupRoleRelation saasPgroupRoleRelation = new SaasPgroupRoleRelation(); + saasPgroupRoleRelation.setRoleId(role.getId()); + saasPgroupRoleRelation.setGroupId(saasPermissionGroup.getId()); + saasPgroupRoleRelation.setCreateBy(-1L); + saasPgroupRoleRelation.setUpdateBy(-1L); + pgroupRoleRelationDao.save(saasPgroupRoleRelation); + // 创建新的权限集权限关联关系 + feature.forEach(e -> { + SaasPgroupPermissionRelation saasPgroupPermissionRelation = new SaasPgroupPermissionRelation(); + saasPgroupPermissionRelation.setGroupId(saasPermissionGroup.getId()); + saasPgroupPermissionRelation.setFeatureId(e.getId()); + saasPgroupPermissionRelation.setCreateBy(-1L); + saasPgroupPermissionRelation.setUpdateBy(-1L); + pgroupPermissionRelationDao.save(saasPgroupPermissionRelation); + }); + // 暂存待删除数据 + deletePgroupPermissionRelation.addAll(pgroupPermissionRelation); + // 暂存待删除数据 + deletePgroupRoleRelation.addAll(pgroupRoleRelation); + }); + // 所有的数据都不能在循环中删,要不然下一次循环中就查不到了 + // 删除老的权限集权限关联关系 + deletePgroupPermissionRelation.forEach(e -> { + pgroupPermissionRelationDao.lambdaUpdate() + .eq(BaseEntity::getId, e.getId()) + .set(BaseEntity::getIsDelete, e.getId()) + .update(); + }); + // 删除老的角色权限集关联关系 + deletePgroupRoleRelation.forEach(e -> { + pgroupRoleRelationDao.lambdaUpdate() + .eq(BaseEntity::getId, e.getId()) + .set(BaseEntity::getIsDelete, e.getId()) + .update(); + }); + // 删除权限集 + deletePgroup.forEach(e -> { + saasPermissionGroupDao.lambdaUpdate() + .eq(BaseEntity::getId, e.getId()) + .set(BaseEntity::getIsDelete, e.getId()) + .update(); + }); log.info("OMSRoleJobHandler end"); return ReturnT.SUCCESS; } From 0eeb3869244eec2771080ee1941227271a16bd49 Mon Sep 17 00:00:00 2001 From: yangsong Date: Mon, 18 Sep 2023 15:34:38 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=88=86=E7=BB=84?= =?UTF-8?q?=E6=9D=83=E9=99=90=E7=82=B9=20bugfix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/PermissionGroupImpl.java | 46 +++++++++++-------- 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/PermissionGroupImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/PermissionGroupImpl.java index 6d1423af..a4f76b6f 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/PermissionGroupImpl.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/PermissionGroupImpl.java @@ -123,11 +123,15 @@ public class PermissionGroupImpl implements PermissionGroupService { .in(SaasPgroupPermissionRelation::getGroupId, groupIds) .eq(BaseEntity::getIsDelete, TableIsDeleteEnum.NORMAL.value) .list(); - List feature = new ArrayList<>(); + List features = new ArrayList<>(); if (CollectionUtils.isNotEmpty(permissionList)) { - // 查询featureCode - feature = featureService.listNodesByIds(permissionList.stream().map(SaasPgroupPermissionRelation::getFeatureId).collect(Collectors.toList())); + // 查询全部featureCode + features = featureService.listNodesByIds(permissionList.stream().map(SaasPgroupPermissionRelation::getFeatureId).collect(Collectors.toList())); } + Map featureMap = features.stream().collect(Collectors.toMap(PermissionPointTreeNode::getPermissionPointId, Function.identity(), (e1, e2) -> e2)); + Map> pgroupPermissionMap = permissionList.stream() + .collect(Collectors.groupingBy(SaasPgroupPermissionRelation::getGroupId, + Collectors.mapping(releation -> featureMap.get(releation.getFeatureId()), Collectors.toList()))); List saasPermissionGroupScopesSource = saasPermissionGroupScopeDao.lambdaQuery() .in(SaasPermissionGroupScope::getPgroupId, groupIds) .eq(BaseEntity::getIsDelete, TableIsDeleteEnum.NORMAL.value) @@ -149,24 +153,26 @@ public class PermissionGroupImpl implements PermissionGroupService { } return true; }).collect(Collectors.toList()); + Map> permissionGroupScopeMap = saasPermissionGroupScopes.stream().collect(Collectors.groupingBy(SaasPermissionGroupScope::getPgroupId, Collectors.mapping(e -> BeanMapper.copyBean(e, SaasRolePermissionScopeVO.class), Collectors.toList()))); // 组装填充字段 - List finalFeature = feature; - List pageList = groupList.stream().map(group -> - SaasPermissionGroupVO.builder() - .id(group.getId()) - .name(group.getName()) - .feature(finalFeature) - .scopes(saasPermissionGroupScopes.stream().filter(e -> e.getPgroupId().equals(group.getId())).map(e -> BeanMapper.copyBean(e, SaasRolePermissionScopeVO.class)).collect(Collectors.toList())) - .createBy(group.getCreateBy()) - .creatorName(group.getCreatorName()) - .updateBy(group.getUpdateBy()) - .updatorName(group.getUpdatorName()) - .roleId(Optional.ofNullable(pgrrMap.get(group.getId())).map(SaasPgroupRoleRelation::getRoleId).orElse(null)) - .type(group.getType()) - .isCommon(group.getIsCommon()) - .createAt(group.getCreateAt()) - .updateAt(group.getUpdateAt()) - .build() + List pageList = groupList.stream().map(group -> { + SaasPermissionGroupVO pgroupResult = SaasPermissionGroupVO.builder() + .id(group.getId()) + .name(group.getName()) + .scopes(Optional.ofNullable(permissionGroupScopeMap.get(group.getId())).orElse(new ArrayList<>())) + .feature(Optional.ofNullable(pgroupPermissionMap.get(group.getId())).orElse(new ArrayList<>())) + .createBy(group.getCreateBy()) + .creatorName(group.getCreatorName()) + .updateBy(group.getUpdateBy()) + .updatorName(group.getUpdatorName()) + .roleId(Optional.ofNullable(pgrrMap.get(group.getId())).map(SaasPgroupRoleRelation::getRoleId).orElse(null)) + .type(group.getType()) + .isCommon(group.getIsCommon()) + .createAt(group.getCreateAt()) + .updateAt(group.getUpdateAt()) + .build(); + return pgroupResult; + } ).collect(Collectors.toList()); return PageResp.list(iPage.getCurrent(), iPage.getSize(), iPage.getTotal(), pageList); } From 5d3fb61b45f56c38bf8e85e0491d456d33ca96c5 Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Mon, 18 Sep 2023 16:01:25 +0800 Subject: [PATCH 5/5] =?UTF-8?q?update=20-=20=E4=BA=A7=E5=93=81=E8=A1=A8?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=80=E5=88=97=E5=AD=97=E5=85=B8=20code?= =?UTF-8?q?=20=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/axzo/tyr/client/model/product/ProductAddReq.java | 8 +++++--- .../axzo/tyr/client/model/product/ProductUpdateReq.java | 5 +++++ .../java/cn/axzo/tyr/client/model/product/ProductVO.java | 5 +++++ .../axzo/tyr/server/repository/entity/ProductModule.java | 5 +++++ 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/product/ProductAddReq.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/product/ProductAddReq.java index a733f756..9dae9962 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/product/ProductAddReq.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/product/ProductAddReq.java @@ -1,9 +1,6 @@ package cn.axzo.tyr.client.model.product; -import lombok.AllArgsConstructor; -import lombok.Builder; import lombok.Data; -import lombok.NoArgsConstructor; import lombok.experimental.Accessors; import org.hibernate.validator.constraints.Length; @@ -39,6 +36,11 @@ public class ProductAddReq { @NotNull(message = "工作台类型不能为空") private Long dictWorkspaceTypeId; + /** + * 产品所属工作台类型 + */ + private String dictWorkspaceTypeCode; + /** * 上下架状态 1:上架, 0:下架 */ diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/product/ProductUpdateReq.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/product/ProductUpdateReq.java index 0e09042e..73d9b7ea 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/product/ProductUpdateReq.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/product/ProductUpdateReq.java @@ -40,6 +40,11 @@ public class ProductUpdateReq { */ private Long dictWorkspaceTypeId; + /** + * 产品所属工作台类型 Code + */ + private String dictWorkspaceTypeCode; + /** * 上下架状态 1:上架, 0:下架 */ diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/product/ProductVO.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/product/ProductVO.java index 129f1309..0b8e3447 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/product/ProductVO.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/product/ProductVO.java @@ -38,6 +38,11 @@ public class ProductVO { */ private Long dictWorkspaceTypeId; + /** + * 产品所属工作台类型code + */ + private String dictWorkspaceTypeCode; + /** * 产品所属工作类型名称 */ diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/ProductModule.java b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/ProductModule.java index caa174a1..68a5b235 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/ProductModule.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/ProductModule.java @@ -37,6 +37,11 @@ public class ProductModule extends BaseEntity { */ private Long dictWorkspaceTypeId; + /** + * 产品所属工作台字典 Code + */ + private String dictWorkspaceTypeCode; + /** * 产品状态 */