MintOrderRepo.java 1.5 KB

12345678910111213141516171819202122232425262728293031
  1. package com.izouma.nineth.repo;
  2. import com.izouma.nineth.domain.MintOrder;
  3. import com.izouma.nineth.enums.MintOrderStatus;
  4. import org.springframework.data.jpa.repository.JpaRepository;
  5. import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
  6. import org.springframework.data.jpa.repository.Modifying;
  7. import org.springframework.data.jpa.repository.Query;
  8. import javax.transaction.Transactional;
  9. import java.time.LocalDateTime;
  10. import java.util.List;
  11. import java.util.Map;
  12. public interface MintOrderRepo extends JpaRepository<MintOrder, Long>, JpaSpecificationExecutor<MintOrder> {
  13. @Query("update MintOrder t set t.del = true where t.id = ?1")
  14. @Modifying
  15. @Transactional
  16. void softDelete(Long id);
  17. List<MintOrder> findByStatusAndCreatedAtBeforeAndDelFalse(MintOrderStatus status, LocalDateTime createdAt);
  18. List<MintOrder> findByStatusAndCreatedAtAfter(MintOrderStatus status, LocalDateTime time);
  19. List<MintOrder> findByStatusAndCreatedAtAfterOrderByCreatedAtDesc(MintOrderStatus status, LocalDateTime time);
  20. List<MintOrder> findByMintActivityIdAndStatusOrderById(Long id, MintOrderStatus status);
  21. @Query(value = "select user.nickname nickname,user.avatar avatar,count(mint_order.user_id) num from mint_order inner join user on mint_order.user_id = user.id where mint_order.mint_activity_id = 8843217 and mint_order.status = 'FINISH' group by mint_order.user_id order by count(mint_order.user_id) desc", nativeQuery = true)
  22. List<Map<String,Object>> findMintRank();
  23. }