package com.izouma.nineth.repo; import com.izouma.nineth.domain.Order; import com.izouma.nineth.enums.OrderStatus; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; import javax.transaction.Transactional; import java.time.LocalDateTime; import java.util.List; import java.util.Optional; public interface OrderRepo extends JpaRepository, JpaSpecificationExecutor { @Query("update Order t set t.del = true where t.id = ?1") @Modifying @Transactional void softDelete(Long id); Optional findByIdAndDelFalse(Long id); List findByStatusAndCreatedAtBeforeAndDelFalse(OrderStatus status, LocalDateTime time); List findByCollectionId(Long collectionId); List findByCollectionIdIn(Iterable collectionId); int countByCollectionIdAndStatusIn(Long collectionId, Iterable orderStatuses); List findByStatus(OrderStatus orderStatus); @Query("select count(o) from Order o join Collection c on o.collectionId = c.id " + "where c.minterId = ?1 and c.source = 'OFFICIAL' and o.status <> 'NOT_PAID' and o.status <> 'CANCELLED'") long countSales(Long userId); Optional findByTransactionId(String txId); }