DomainOrderRepo.java 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package com.izouma.nineth.repo;
  2. import com.izouma.nineth.domain.DomainOrder;
  3. import com.izouma.nineth.enums.CollectionStatus;
  4. import com.izouma.nineth.enums.OrderStatus;
  5. import com.izouma.nineth.service.LikeService;
  6. import org.springframework.data.domain.Page;
  7. import org.springframework.data.domain.Pageable;
  8. import org.springframework.data.jpa.repository.JpaRepository;
  9. import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
  10. import org.springframework.data.jpa.repository.Modifying;
  11. import org.springframework.data.jpa.repository.Query;
  12. import javax.transaction.Transactional;
  13. import java.math.BigDecimal;
  14. import java.time.LocalDateTime;
  15. import java.util.List;
  16. public interface DomainOrderRepo extends JpaRepository<DomainOrder, Long>, JpaSpecificationExecutor<DomainOrder> {
  17. @Query("update DomainOrder t set t.del = true where t.id = ?1")
  18. @Modifying
  19. @Transactional
  20. void softDelete(Long id);
  21. List<DomainOrder> findAllByUserIdAndOrderStatus(Long userId, OrderStatus status);
  22. Page<DomainOrder> findAllByOrderStatusOrderByCreatedAtDesc(OrderStatus status, Pageable pageable);
  23. DomainOrder findFirstByDomainNameAndOrderStatus(String name, OrderStatus status);
  24. List<DomainOrder> findAllByStatusAndCreatedAtBeforeAndOrderStatus(CollectionStatus status, LocalDateTime endTime, OrderStatus orderStatus);
  25. List<DomainOrder> findAllByPicNameInAndOrderStatus(List<String> strings, OrderStatus status);
  26. Integer countAllByDomainNameEqualsAndOrderStatusNot(String name, OrderStatus status);
  27. @Query(value = "select c from DomainOrder c where c.picName like ?1 and c.orderStatus <> ?2")
  28. Page<DomainOrder> searchUsedDomain(String name, OrderStatus status, Pageable pageable);
  29. List<DomainOrder> findByOrderStatusAndCreatedAtBeforeAndDelFalse(OrderStatus orderStatus, LocalDateTime createdAt);
  30. @Query("select sum(price) from DomainOrder where createdAt <= ?2 and createdAt >= ?1 and orderStatus = 'FINISH'")
  31. BigDecimal sumToday(LocalDateTime start, LocalDateTime end);
  32. @Query(nativeQuery = true, value = "SELECT pic_name from domain_order where order_status ='FINISH' GROUP BY pic_name having count(pic_name) > 1")
  33. List<String> getDomainOrder();
  34. List<DomainOrder> findAllByOrderStatusAndPicNameOrderByCreatedAtAsc(OrderStatus orderStatus, String pic);
  35. @Query(nativeQuery = true, value = "select domain_name from domain_order where pic_name regexp '^\\\\d{2}$' and order_status = 'FINISH' order by pic_name")
  36. List<String> findThreeNumber();
  37. }