Skip to content

Commit

Permalink
hotfix: createGroup ์ˆ˜์ •
Browse files Browse the repository at this point in the history
์ง€์ • ๊ทธ๋ฃน ์žˆ์„๋•Œ๋„ ์ž์œจ๊ทธ๋ฃน ์ƒ๊ธฐ๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •
  • Loading branch information
Henry-Cha committed May 19, 2024
1 parent fbc2e35 commit 195f982
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,6 @@ public interface ChallengeGroupRepository extends JpaRepository<ChallengeGroup,

Optional<ChallengeGroup> findDistinctChallengeGroupByChallengeAndGroupMembersMember(
Challenge challenge, Member member);

Optional<ChallengeGroup> findByLeaderIdAndCreateTimeIsNull(long leaderId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -111,31 +111,35 @@ public long createGroup(String key) {
}
long leaderId = getLeaderIdFromKey(key);
LocalDateTime createTime = LocalDateTime.now();
ChallengeGroup group = ChallengeGroup.builder()
Optional<ChallengeGroup> designGroup = challengeGroupRepository.findByLeaderIdAndCreateTimeIsNull(
leaderId);
ChallengeGroup group = designGroup.orElseGet(() -> ChallengeGroup.builder()
.challenge(challenge)
.leaderId(leaderId)
.groupType(GroupType.FREE)
.headCount(members.size())
.completeStatus(false)
.createTime(createTime)
.build();
.build());
group.setCreateTime(createTime);
challengeGroupRepository.save(group);
List<GroupMember> groupMembers = members.stream().map(Long::parseLong)
.map(memberRepository::findById)
.filter(Optional::isPresent)
.map(Optional::get)
.map(member -> GroupMember.builder().member(member).challengeGroup(group).build())
.toList();
groupMembers.forEach(member -> {
if (designGroup.isEmpty()) {
List<GroupMember> groupMembers = members.stream().map(Long::parseLong)
.map(memberRepository::findById)
.filter(Optional::isPresent)
.map(Optional::get)
.map(member -> GroupMember.builder().member(member).challengeGroup(group).build())
.toList();
groupMemberRepository.saveAll(groupMembers);
}
members.forEach(member -> {
SseDTO sseDTO = SseDTO.builder()
.eventType(SseType.CREATE_GROUP)
.receiverId(member.getMember().getId())
.receiverId(Long.valueOf(member))
.time(createTime)
.build();
sseService.send(sseDTO);
});
groupMemberRepository.saveAll(groupMembers);
challenge.updateHeadCount(groupMembers.size());
challenge.updateHeadCount(members.size());
updateGroupCount(members, challenge.getOrganization().getId(), group.getGroupType());
redisUtil.delete(key);
return group.getId();
Expand Down

0 comments on commit 195f982

Please sign in to comment.