浏览代码

编辑团队判断管理员账号权限

Bob 2 年之前
父节点
当前提交
75a7747d05
共有 1 个文件被更改,包括 26 次插入2 次删除
  1. 26 2
      pdf-tech-core/src/main/java/cn/kdan/pdf/tech/core/service/impl/VppTeamServiceImpl.java

+ 26 - 2
pdf-tech-core/src/main/java/cn/kdan/pdf/tech/core/service/impl/VppTeamServiceImpl.java

@@ -429,6 +429,29 @@ public class VppTeamServiceImpl implements VppTeamService {
                         VppRTeamMemberRoleExample vppRTeamMemberRoleExample = new VppRTeamMemberRoleExample();
                         vppRTeamMemberRoleExample.createCriteria().andMemberIdEqualTo(vppRTeamMemberRole.getMemberId()).andTeamIdEqualTo(dto.getTeamId());
                         vppRTeamMemberRoleService.deleteByExample(vppRTeamMemberRoleExample);
+                        // 获取管理源所有关联
+                        List<VppRTeamMemberRole> memberRoles = vppRTeamMemberRoleService.listByMemberId(vppRTeamMemberRole.getMemberId());
+                        // 1.判断管理员是否在其他团队有关联关系,如果没有则回到默认团队作为普通成员
+                        if (CollectionUtils.isEmpty(memberRoles)) {
+                            VppRTeamMemberRole vppRTeamMemberRole1 = new VppRTeamMemberRole().withId(CommonUtils.generateId())
+                                    .withMemberId(vppRTeamMemberRole.getMemberId()).withTeamId(defaultVppTeam.getId()).withRoleId("3");
+                            vppRTeamMemberRoleService.create(vppRTeamMemberRole1);
+                            // 修改用户权限为普通成员
+                            VppMember vppMember = new VppMember();
+                            vppMember.setId(vppRTeamMemberRole.getMemberId());
+                            vppMember.setRole("3");
+                            vppMemberService.update(vppMember);
+                        } else {
+                            // 2.如果有关联关系。判断管理员是否还有其他管理的团队
+                            List<VppRTeamMemberRole> collect = memberRoles.stream().filter(c -> c.getRoleId().equals("2")).collect(Collectors.toList());
+                            // 如果没有管理的团队了,修改用户权限为普通成员
+                            if (CollectionUtils.isEmpty(collect)) {
+                                VppMember vppMember = new VppMember();
+                                vppMember.setId(vppRTeamMemberRole.getMemberId());
+                                vppMember.setRole("3");
+                                vppMemberService.update(vppMember);
+                            }
+                        }
                         // 删除管理员去除序列码关联
                         vppLicenseCodeService.unBindByMemberId(vppRTeamMemberRole.getMemberId(), null);
                     }
@@ -575,7 +598,7 @@ public class VppTeamServiceImpl implements VppTeamService {
         }
         // 团队成员移到默认团队
         vppRTeamMemberRoleService.changeTeamMember(vppTeam.getId(), defaultVppTeam.getId());
-        // 获取团队管理员
+        // 获取团队所有关联数据
         List<VppRTeamMemberRole> allByTeamId = vppRTeamMemberRoleService.getAllByTeamId(teamId);
         if (CollectionUtils.isEmpty(allByTeamId)) {
             return;
@@ -588,8 +611,9 @@ public class VppTeamServiceImpl implements VppTeamService {
         vppRTeamMemberRoleService.cleanTeamMember(teamId);
         // 判断团队管理员逻辑
         for (VppRTeamMemberRole vppRTeamMemberRole : vppRTeamMemberRoles) {
-            // 1.过滤每个管理员是否在其他团队有关联关系,如果没有则回到默认团队作为普通成
+            // 获取团队管理
             List<VppRTeamMemberRole> memberRoles = vppRTeamMemberRoleService.listByMemberId(vppRTeamMemberRole.getMemberId());
+            // 1.过滤每个管理员是否在其他团队有关联关系,如果没有则回到默认团队作为普通成员
             if (CollectionUtils.isEmpty(memberRoles)) {
                 VppRTeamMemberRole vppRTeamMemberRole1 = new VppRTeamMemberRole().withId(CommonUtils.generateId())
                         .withMemberId(vppRTeamMemberRole.getMemberId()).withTeamId(defaultVppTeam.getId()).withRoleId("3");