Skip to content

Commit b508652

Browse files
authored
feat : Long 타입 반환 메서드에 Query 추가 (#364)
* feat : Long 타입 반환 메서드에 Query 추가 * refactor : 쿼리문 개선
1 parent b256946 commit b508652

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

cs25-batch/src/main/java/com/example/cs25batch/aop/MailLogAspect.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,18 +48,19 @@ public Object logMailSend(ProceedingJoinPoint joinPoint) throws Throwable {
4848
caused = e.getMessage();
4949
throw new CustomMailException(MailExceptionCode.EMAIL_SEND_FAILED_ERROR);
5050
} finally {
51-
MailLog log = MailLog.builder()
51+
MailLog mailLog = MailLog.builder()
5252
.subscription(subscription)
5353
.quiz(quiz)
5454
.sendDate(LocalDateTime.now())
5555
.status(status)
5656
.caused(caused)
5757
.build();
5858

59-
mailLogRepository.save(log);
59+
mailLogRepository.save(mailLog);
6060
mailLogRepository.flush();
6161

6262
if (status == MailStatus.FAILED) {
63+
log.info("메일 발송 실패 : subscriptionId - {}, cause - {}", subscription.getId(), caused);
6364
Map<String, String> retryMessage = Map.of(
6465
"email", subscription.getEmail(),
6566
"subscriptionId", subscription.getId().toString(),

cs25-entity/src/main/java/com/example/cs25entity/domain/mail/repository/MailLogRepository.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
import java.util.Optional;
88
import java.util.Set;
99
import org.springframework.data.jpa.repository.JpaRepository;
10+
import org.springframework.data.jpa.repository.Query;
11+
import org.springframework.data.repository.query.Param;
1012
import org.springframework.stereotype.Repository;
1113

1214
@Repository
@@ -23,5 +25,11 @@ default MailLog findByIdOrElseThrow(Long id) {
2325

2426
void deleteAllByIdIn(Collection<Long> ids);
2527

26-
Set<Long> findDistinctQuiz_IdBySubscription_Id(Long subscriptionId);
28+
@Query("""
29+
select distinct ml.quiz.id
30+
from MailLog ml
31+
where ml.subscription.id = :subscriptionId
32+
and ml.status = com.example.cs25entity.domain.mail.enums.MailStatus.SENT
33+
""")
34+
Set<Long> findDistinctQuiz_IdBySubscription_Id(@Param("subscriptionId") Long subscriptionId);
2735
}

0 commit comments

Comments
 (0)