diff --git a/src/main/java/net/geedge/asw/module/workspace/service/impl/WorkspaceMemberServiceImpl.java b/src/main/java/net/geedge/asw/module/workspace/service/impl/WorkspaceMemberServiceImpl.java index d2f8b51..2612375 100644 --- a/src/main/java/net/geedge/asw/module/workspace/service/impl/WorkspaceMemberServiceImpl.java +++ b/src/main/java/net/geedge/asw/module/workspace/service/impl/WorkspaceMemberServiceImpl.java @@ -59,9 +59,14 @@ public class WorkspaceMemberServiceImpl extends ServiceImpl x.getUserId()).distinct().count(); - if (count != memberList.size()) { - throw new ASWException(RCode.WORKSPACE_MEMBER_USER_ID_REPEAT); + + List userIdList = memberList.stream().map(x -> x.getUserId()).toList(); + List memberEntityList = workspaceMemberService.list(new LambdaQueryWrapper().eq(WorkspaceMemberEntity::getWorkspaceId, workspaceId)); + if (T.CollectionUtil.isNotEmpty(memberList)){ + memberEntityList = memberEntityList.stream().filter(x -> userIdList.contains(x.getUserId())).toList(); + if (T.CollectionUtil.isNotEmpty(memberEntityList)) { + throw new ASWException(RCode.WORKSPACE_MEMBER_USER_ID_REPEAT); + } } List userIds = userService.list().stream().map(x -> x.getId()).toList(); List roleIds = roleService.list().stream().map(x -> x.getId()).toList();