角色存量数据清洗验证完毕

This commit is contained in:
陈维伟 2023-09-12 10:59:39 +08:00
parent 9063edc6ef
commit 4aba28d271

View File

@ -49,6 +49,7 @@ public class OMSRoleJobHandler extends IJobHandler {
/**
* 清洗OMS角色相关数据(先通过SQL检查和清除脏数据要不然无法保证各个实体的关联关系)
*
* @param s
* @return
* @throws Exception
@ -57,6 +58,7 @@ public class OMSRoleJobHandler extends IJobHandler {
@Override
@XxlJob("OMSRoleJobHandler")
public ReturnT<String> execute(String s) throws Exception {
log.info("OMSRoleJobHandler start");
// 创建角色分组
SaasRoleGroup roleGroup = new SaasRoleGroup();
roleGroup.setWorkspaceTypeCode("6");
@ -74,7 +76,6 @@ public class OMSRoleJobHandler extends IJobHandler {
oldRole.forEach(e -> {
e.setWorkspaceId(-1l);
e.setOwnerOuId(-1l);
e.setWorkspaceType(-1);
e.setFitOuTypeBit(-1);
e.setFitOuNodeTypeBit(-1);
e.setPositionTemplateId(-1l);
@ -93,6 +94,8 @@ public class OMSRoleJobHandler extends IJobHandler {
roleGroupRelationDao.saveBatch(roleGroupRelation);
// 查询角色关联的角色打包成新的权限集
ArrayList<SaasPermissionGroup> deletePgroup = new ArrayList<>();
ArrayList<SaasPgroupRoleRelation> deletePgroupRoleRelation = new ArrayList<>();
ArrayList<SaasPgroupPermissionRelation> deletePgroupPermissionRelation = new ArrayList<>();
oldRole.forEach(role -> {
List<SaasPgroupRoleRelation> pgroupRoleRelation = pgroupRoleRelationDao.lambdaQuery().eq(SaasPgroupRoleRelation::getRoleId, role.getId()).list();
if (CollectionUtils.isEmpty(pgroupRoleRelation)) {
@ -101,58 +104,25 @@ public class OMSRoleJobHandler extends IJobHandler {
List<SaasPermissionGroup> permissionGroup = saasPermissionGroupDao.lambdaQuery().in(BaseEntity::getId, pgroupRoleRelation.stream().map(SaasPgroupRoleRelation::getGroupId).collect(Collectors.toList())).list();
if (CollectionUtils.isEmpty(permissionGroup)) {
// 删除角色权限集关联关系
pgroupRoleRelation.forEach(e -> {
pgroupRoleRelationDao.lambdaUpdate()
.eq(BaseEntity::getId, e.getId())
.set(BaseEntity::getIsDelete, e.getId())
.update();
});
deletePgroupRoleRelation.addAll(pgroupRoleRelation);
return;
}
List<SaasPgroupPermissionRelation> pgroupPermissionRelation = pgroupPermissionRelationDao.lambdaQuery().in(SaasPgroupPermissionRelation::getGroupId, permissionGroup.stream().map(BaseEntity::getId).collect(Collectors.toList())).list();
if (CollectionUtils.isEmpty(pgroupPermissionRelation)) {
// 如果没查到权限则表示当前权限集是无意义的删掉
permissionGroup.forEach(e -> {
// 只能通过这种方式删除 update不能删除
saasPermissionGroupDao.lambdaUpdate()
.eq(BaseEntity::getId, e.getId())
.set(BaseEntity::getIsDelete, e.getId())
.update();
});
deletePgroup.addAll(permissionGroup);
// 删除角色权限集关联关系
pgroupRoleRelation.forEach(e -> {
pgroupRoleRelationDao.lambdaUpdate()
.eq(BaseEntity::getId, e.getId())
.set(BaseEntity::getIsDelete, e.getId())
.update();
});
deletePgroupRoleRelation.addAll(pgroupRoleRelation);
return;
}
List<SaasFeature> feature = featureDao.lambdaQuery().in(BaseEntity::getId, pgroupPermissionRelation.stream().map(SaasPgroupPermissionRelation::getFeatureId).collect(Collectors.toList())).list();
if (CollectionUtils.isEmpty(feature)) {
// 删除权限集权限关联关系
pgroupPermissionRelation.forEach(e -> {
// 只能通过这种方式删除 update不能删除
pgroupPermissionRelationDao.lambdaUpdate()
.eq(BaseEntity::getId, e.getId())
.set(BaseEntity::getIsDelete, e.getId())
.update();
});
deletePgroupPermissionRelation.addAll(pgroupPermissionRelation);
// 如果没查到权限则表示当前权限集是无意义的删掉
permissionGroup.forEach(e -> {
// 只能通过这种方式删除 update不能删除
saasPermissionGroupDao.lambdaUpdate()
.eq(BaseEntity::getId, e.getId())
.set(BaseEntity::getIsDelete, e.getId())
.update();
});
deletePgroup.addAll(permissionGroup);
// 删除角色权限集关联关系
pgroupRoleRelation.forEach(e -> {
pgroupRoleRelationDao.lambdaUpdate()
.eq(BaseEntity::getId, e.getId())
.set(BaseEntity::getIsDelete, e.getId())
.update();
});
deletePgroupRoleRelation.addAll(pgroupRoleRelation);
return;
}
// 创建新的权限集
@ -181,20 +151,25 @@ public class OMSRoleJobHandler extends IJobHandler {
saasPgroupPermissionRelation.setUpdateBy(-1L);
pgroupPermissionRelationDao.save(saasPgroupPermissionRelation);
});
// 删除老的权限集权限关联关系
pgroupPermissionRelation.forEach(e -> {
pgroupPermissionRelationDao.lambdaUpdate()
.eq(BaseEntity::getId, e.getId())
.set(BaseEntity::getIsDelete, e.getId())
.update();
});
// 删除老的角色权限集关联关系
pgroupRoleRelation.forEach(e -> {
pgroupRoleRelationDao.lambdaUpdate()
.eq(BaseEntity::getId, e.getId())
.set(BaseEntity::getIsDelete, e.getId())
.update();
});
// 暂存待删除数据
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 -> {
@ -203,6 +178,7 @@ public class OMSRoleJobHandler extends IJobHandler {
.set(BaseEntity::getIsDelete, e.getId())
.update();
});
log.info("OMSRoleJobHandler end");
return ReturnT.SUCCESS;
}
}