diff --git a/src/main/java/com/threestar/trainus/domain/payment/repository/PaymentRepository.java b/src/main/java/com/threestar/trainus/domain/payment/repository/PaymentRepository.java index d4b459e..0a083e7 100644 --- a/src/main/java/com/threestar/trainus/domain/payment/repository/PaymentRepository.java +++ b/src/main/java/com/threestar/trainus/domain/payment/repository/PaymentRepository.java @@ -35,10 +35,23 @@ List findPaymentIdsByUserAndStatus( @Param("limit") int limit ); + @Query(value = """ + SELECT p.id FROM payments p + WHERE p.user_id = :userId + AND p.status = :status + ORDER BY p.cancelled_at DESC + LIMIT :limit OFFSET :offset + """, nativeQuery = true) + List findCancelledPaymentIdsByUserAndStatus( + @Param("userId") Long userId, + @Param("status") String status, + @Param("offset") int offset, + @Param("limit") int limit + ); + @Query(""" SELECT p FROM Payment p LEFT JOIN FETCH p.lesson - LEFT JOIN FETCH p.userCoupon WHERE p.id IN :ids """) List findAllWithAssociationsByIds(@Param("ids") List ids); diff --git a/src/main/java/com/threestar/trainus/domain/payment/repository/TossPaymentRepository.java b/src/main/java/com/threestar/trainus/domain/payment/repository/TossPaymentRepository.java index 09a6f64..283d421 100644 --- a/src/main/java/com/threestar/trainus/domain/payment/repository/TossPaymentRepository.java +++ b/src/main/java/com/threestar/trainus/domain/payment/repository/TossPaymentRepository.java @@ -1,12 +1,21 @@ package com.threestar.trainus.domain.payment.repository; +import java.util.List; import java.util.Optional; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; import com.threestar.trainus.domain.payment.entity.TossPayment; public interface TossPaymentRepository extends JpaRepository { Optional findByOrderId(String orderId); + + @Query(""" + SELECT t FROM TossPayment t + WHERE t.orderId IN :orderIds + """) + List findAllByOrderIds(@Param("orderIds") List orderIds); }