IdentityAuthRepo.java 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package com.izouma.nineth.repo;
  2. import com.izouma.nineth.domain.IdentityAuth;
  3. import com.izouma.nineth.enums.AuthStatus;
  4. import org.springframework.data.domain.Page;
  5. import org.springframework.data.domain.Pageable;
  6. import org.springframework.data.jpa.repository.JpaRepository;
  7. import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
  8. import org.springframework.data.jpa.repository.Modifying;
  9. import org.springframework.data.jpa.repository.Query;
  10. import javax.transaction.Transactional;
  11. import java.util.List;
  12. import java.util.Optional;
  13. public interface IdentityAuthRepo extends JpaRepository<IdentityAuth, Long>, JpaSpecificationExecutor<IdentityAuth> {
  14. @Query("update IdentityAuth t set t.del = true where t.id = ?1")
  15. @Modifying
  16. @Transactional
  17. void softDelete(Long id);
  18. @Query("update IdentityAuth t set t.del = true where t.userId = ?1")
  19. @Modifying
  20. @Transactional
  21. void softDeleteByUserId(Long userId);
  22. List<IdentityAuth> findByUserIdAndDelFalse(Long userId);
  23. List<IdentityAuth> findByUserId(Long userId);
  24. Optional<IdentityAuth> findFirstByUserIdAndStatusAndDelFalseOrderByCreatedAtDesc(Long userId, AuthStatus status);
  25. Optional<IdentityAuth> findByIdAndDelFalse(Long id);
  26. List<IdentityAuth> findAllByIdNoAndUserIdIsNotAndDelFalse(String idNo, Long userId);
  27. List<IdentityAuth> findByStatusAndAutoValidated(AuthStatus status, boolean validated);
  28. int countByIdNoAndStatus(String idNo, AuthStatus status);
  29. @Query("select distinct i.userId from IdentityAuth i")
  30. Page<Long> listUserId(Pageable pageable);
  31. @Query("delete from IdentityAuth i where i.userId = ?1 and i.id <> ?2")
  32. @Modifying
  33. @Transactional
  34. void deleteDuplicated(Long userId, Long id);
  35. }