diff --git a/src/main/java/com/gdsc/jmt/domain/group/command/service/GroupService.java b/src/main/java/com/gdsc/jmt/domain/group/command/service/GroupService.java index 64edbad..72f2cbc 100644 --- a/src/main/java/com/gdsc/jmt/domain/group/command/service/GroupService.java +++ b/src/main/java/com/gdsc/jmt/domain/group/command/service/GroupService.java @@ -148,8 +148,11 @@ public void joinGroup(long groupId, UserInfo user) { throw new ApiException(GroupMessage.GROUP_NOT_FOUND); } - Optional groupUserResult = groupUserRepository.findByGroupIdAndUserId(groupId, userResult.get().getId()); - if(groupUserResult.isPresent()) { + List groupUsers = groupUserRepository.findByUserId(userResult.get().getId()); + boolean isAlreadyExistsGroup = groupUsers + .stream() + .anyMatch(groupUser -> groupUser.getGroupId().equals(groupId)); + if(isAlreadyExistsGroup) { throw new ApiException(GroupMessage.USER_ALREADY_EXISTS_IN_GROUP); } @@ -159,6 +162,14 @@ public void joinGroup(long groupId, UserInfo user) { .role(GroupUserRole.MEMBER) .build(); + if(groupUsers.isEmpty()) { + GroupUserSelectEntity groupUserSelectEntity = GroupUserSelectEntity.builder() + .groupId(groupId) + .userId(userResult.get().getId()) + .build(); + groupUserSelectRepository.save(groupUserSelectEntity); + } + groupUserRepository.save(joinGroupUsersEntity); }