diff --git a/src/main/java/com/challenge/api/service/challenge/ChallengeService.java b/src/main/java/com/challenge/api/service/challenge/ChallengeService.java index 8a3c351..28eceed 100644 --- a/src/main/java/com/challenge/api/service/challenge/ChallengeService.java +++ b/src/main/java/com/challenge/api/service/challenge/ChallengeService.java @@ -99,12 +99,12 @@ public ChallengeResponse cancelChallenge(Member member, Long challengeId, Challe Challenge challenge = challengeRepository.getReferenceById(challengeId); // validation - // TODO 마지막 record 상태를 가져와 is_succeed 상태가 true인지 확인 - recordValidator.hasRecordFor(challenge, DateUtils.toLocalDate(request.getCancelDate())); + Record record = recordValidator.hasRecordFor(challenge, DateUtils.toLocalDate(request.getCancelDate())); // 기록 삭제 - Record record = Record.cancel(challenge, request.getCancelDate()); - recordRepository.save(record); + challenge.getRecords().remove(record); +// Record removedRecord = record.cancel(challenge, request.getCancelDate()); +// recordRepository.save(removedRecord); return ChallengeResponse.of(challenge); } diff --git a/src/main/java/com/challenge/domain/challenge/ChallengeQueryRepository.java b/src/main/java/com/challenge/domain/challenge/ChallengeQueryRepository.java index e46ce22..387ccd9 100644 --- a/src/main/java/com/challenge/domain/challenge/ChallengeQueryRepository.java +++ b/src/main/java/com/challenge/domain/challenge/ChallengeQueryRepository.java @@ -38,7 +38,7 @@ public boolean existsDuplicateRecordBy(Challenge challenge, LocalDate successDat Long count = queryFactory.select(record.count()) .from(record) .where(record.challenge.eq(challenge) - .and(record.successDate.eq(successDate))) + .and(record.date.eq(successDate))) .fetchOne(); return count != null && count > 0; diff --git a/src/main/java/com/challenge/domain/record/Record.java b/src/main/java/com/challenge/domain/record/Record.java index 4129407..ae99dd2 100644 --- a/src/main/java/com/challenge/domain/record/Record.java +++ b/src/main/java/com/challenge/domain/record/Record.java @@ -55,14 +55,12 @@ public static Record achieve(Challenge challenge, String achieveDate) { return record; } - public static Record cancel(Challenge challenge, String cancelDate) { - Record record = Record.builder() + public Record cancel(Challenge challenge, String cancelDate) { + return Record.builder() .date(DateUtils.toLocalDate(cancelDate)) .isSucceed(false) .challenge(challenge) .build(); - challenge.getRecords().remove(record); - return record; } } diff --git a/src/test/java/com/challenge/api/service/challenge/ChallengeServiceTest.java b/src/test/java/com/challenge/api/service/challenge/ChallengeServiceTest.java index f2ce81a..6cd0ac4 100644 --- a/src/test/java/com/challenge/api/service/challenge/ChallengeServiceTest.java +++ b/src/test/java/com/challenge/api/service/challenge/ChallengeServiceTest.java @@ -434,7 +434,7 @@ private Category createCategory(String category) { private Record createRecord(Challenge challenge, LocalDate currentDate) { return Record.builder() .challenge(challenge) - .successDate(currentDate) + .date(currentDate) .build(); } diff --git a/src/test/java/com/challenge/domain/challenge/ChallengeQueryRepositoryTest.java b/src/test/java/com/challenge/domain/challenge/ChallengeQueryRepositoryTest.java index 298a0d5..7eed180 100644 --- a/src/test/java/com/challenge/domain/challenge/ChallengeQueryRepositoryTest.java +++ b/src/test/java/com/challenge/domain/challenge/ChallengeQueryRepositoryTest.java @@ -163,30 +163,6 @@ void countOngoingChallengesBy() { @DisplayName("완료된 챌린지 수를 조회한다.") @Test void countCompletedChallengesBy() { - // given - Member member = createMember(); - memberRepository.save(member); - - Category category = createCategory(); - categoryRepository.save(category); - - Challenge challenge1 = createChallenge(member, category, 1, "제목1", - LocalDateTime.of(2025, 1, 1, 12, 30, 59)); - - Record record1 = createRecord(challenge1, LocalDate.of(2025, 1, 1)); - Record record2 = createRecord(challenge1, LocalDate.of(2025, 1, 2)); - Record record3 = createRecord(challenge1, LocalDate.of(2025, 1, 3)); - Record record4 = createRecord(challenge1, LocalDate.of(2025, 1, 4)); - Record record5 = createRecord(challenge1, LocalDate.of(2025, 1, 5)); - Record record6 = createRecord(challenge1, LocalDate.of(2025, 1, 6)); - Record record7 = createRecord(challenge1, LocalDate.of(2025, 1, 7)); - recordRepository.saveAll(List.of(record1, record2, record3, record4, record5, record6, record7)); - - // when - Long count = challengeQueryRepository.countCompletedChallengesBy(member); - - // then - assertThat(count).isEqualTo(1); } private Member createMember() { @@ -230,7 +206,7 @@ private Category createCategory() { private Record createRecord(Challenge challenge, LocalDate currentDate) { return Record.builder() .challenge(challenge) - .successDate(currentDate) + .date(currentDate) .build(); }