LoanRepository.java 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package com.loan.system.repository;
  2. import com.loan.system.domain.entity.LoanCase;
  3. import com.loan.system.domain.entity.User;
  4. import org.springframework.data.jpa.repository.JpaRepository;
  5. import org.springframework.data.jpa.repository.Modifying;
  6. import org.springframework.data.jpa.repository.Query;
  7. import org.springframework.data.repository.query.Param;
  8. import org.springframework.transaction.annotation.Transactional;
  9. import java.util.List;
  10. /**
  11. * @author EdwinXu
  12. * @date 2020/9/2 - 15:35
  13. * @Description
  14. */
  15. public interface LoanRepository extends JpaRepository<LoanCase,Long> {
  16. List<LoanCase> findByIsCompleteAndIsDelete(Boolean isComplete, boolean isDelete);
  17. @Transactional
  18. @Modifying
  19. @Query("UPDATE LoanCase l SET " +
  20. "l.customerId = CASE WHEN :#{#loanCase.customerId} IS NOT NULL THEN :#{#loanCase.customerId} ELSE l.customerId END, " +
  21. "l.businessType = CASE WHEN :#{#loanCase.businessType} IS NOT NULL THEN :#{#loanCase.businessType} ELSE l.businessType END, " +
  22. "l.businessAttrs = CASE WHEN :#{#loanCase.businessAttrs} IS NOT NULL THEN :#{#loanCase.businessAttrs} ELSE l.businessAttrs END, " +
  23. "l.channelName = CASE WHEN :#{#loanCase.channelName} IS NOT NULL THEN :#{#loanCase.channelName} ELSE l.channelName END, " +
  24. "l.recommenderId = CASE WHEN :#{#loanCase.recommenderId} IS NOT NULL THEN :#{#loanCase.recommenderId} ELSE l.recommenderId END, " +
  25. "l.totalLoanAmount = CASE WHEN :#{#loanCase.totalLoanAmount} IS NOT NULL THEN :#{#loanCase.totalLoanAmount} ELSE l.totalLoanAmount END, " +
  26. "l.isComplete = CASE WHEN :#{#loanCase.isComplete} IS NOT NULL THEN :#{#loanCase.isComplete} ELSE l.isComplete END, " +
  27. "l.updateTime = CASE WHEN :#{#loanCase.updateTime} IS NOT NULL THEN :#{#loanCase.updateTime} ELSE l.updateTime END " +
  28. "WHERE l.id = :caseId")
  29. void updateLoanCaseById(@Param("loanCase") LoanCase loanCase, @Param("caseId") Long caseId);
  30. @Query("SELECT lc FROM LoanCase lc LEFT JOIN FETCH lc.customer WHERE lc.id = :caseId AND lc.isDelete = :isDelete")
  31. LoanCase findLoanCaseById(@Param("caseId") Long caseId, @Param("isDelete") boolean isDelete);
  32. @Modifying
  33. @Transactional
  34. @Query("update LoanCase set updateTime = ?3 where id = ?1 and isDelete = ?2")
  35. void updateUpdatetimeByIdAndIsDeleted(Long id,boolean isDelete,String updateTime);
  36. @Modifying
  37. @Transactional
  38. @Query("UPDATE LoanCase SET updateTime = ?3, isDelete = ?2 WHERE id = ?1 AND isDelete = false")
  39. void logic_delete(Long id, boolean isDelete, String updateTime);
  40. }