Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
6 changes: 2 additions & 4 deletions src/main/java/com/challenge/domain/record/Record.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -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();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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() {
Expand Down Expand Up @@ -230,7 +206,7 @@ private Category createCategory() {
private Record createRecord(Challenge challenge, LocalDate currentDate) {
return Record.builder()
.challenge(challenge)
.successDate(currentDate)
.date(currentDate)
.build();
}

Expand Down
Loading