Skip to content

Commit b3e44b0

Browse files
committed
update making subgroup
1 parent 0e7373c commit b3e44b0

1 file changed

Lines changed: 18 additions & 12 deletions

File tree

src/main/java/com/ccapp/ccgo/mission/service/SubGroupMissionService.java

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -198,19 +198,25 @@ public void completeMission(Long teamId, Long subGroupId, Long missionTemplateId
198198

199199
// 미션 히스토리 저장
200200
private void saveMissionHistory(SubGroup subGroup, MissionTemplate missionTemplate) {
201-
// 서브그룹의 모든 멤버에 대해 히스토리 저장
202-
List<SubGroupMember> members = subGroupMemberRepository.findBySubGroup_Id(subGroup.getId());
201+
// 이미 같은 서브그룹에서 같은 미션의 히스토리가 있는지 확인
202+
boolean exists = missionHistoryRepository.existsBySubGroup_IdAndMissionTemplate_Id(subGroup.getId(), missionTemplate.getId());
203203

204-
for (SubGroupMember member : members) {
205-
MissionHistory history = MissionHistory.builder()
206-
.subGroup(subGroup)
207-
.team(subGroup.getTeam())
208-
.user(member.getUser())
209-
.missionTemplate(missionTemplate)
210-
.completedAt(LocalDateTime.now())
211-
.build();
212-
213-
missionHistoryRepository.save(history);
204+
if (!exists) {
205+
// 서브그룹의 첫 번째 멤버만 대표로 히스토리 저장
206+
List<SubGroupMember> members = subGroupMemberRepository.findBySubGroup_Id(subGroup.getId());
207+
if (!members.isEmpty()) {
208+
SubGroupMember representativeMember = members.get(0);
209+
210+
MissionHistory history = MissionHistory.builder()
211+
.subGroup(subGroup)
212+
.team(subGroup.getTeam())
213+
.user(representativeMember.getUser())
214+
.missionTemplate(missionTemplate)
215+
.completedAt(LocalDateTime.now())
216+
.build();
217+
218+
missionHistoryRepository.save(history);
219+
}
214220
}
215221
}
216222

0 commit comments

Comments
 (0)