ContractRepository.java 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package com.loan.system.repository;
  2. import com.loan.system.domain.entity.Contract;
  3. import org.springframework.data.jpa.repository.JpaRepository;
  4. import org.springframework.data.jpa.repository.Modifying;
  5. import org.springframework.data.jpa.repository.Query;
  6. import org.springframework.transaction.annotation.Transactional;
  7. import java.util.Collection;
  8. import java.util.List;
  9. /**
  10. * @author EdwinXu
  11. * @date 2020/9/2 - 15:35
  12. * @Description
  13. */
  14. public interface ContractRepository extends JpaRepository<Contract,Long> {
  15. boolean existsByCaseIdAndBusinessAttrAndIsDelete(Long caseId, String businessAttr, boolean b);
  16. @Query("SELECT c FROM Contract c WHERE c.caseId = :caseId AND c.businessAttr = :businessAttr AND c.isDelete = :isDelete")
  17. Contract findByCaseIdAndBusinessAttrAndIsDelete(Long caseId, String businessAttr, boolean b);
  18. @Transactional
  19. @Modifying
  20. @Query("UPDATE Contract c SET " +
  21. "c.businessAttr = CASE WHEN :#{#contract.businessAttr} IS NOT NULL THEN :#{#contract.businessAttr} ELSE c.businessAttr END, " +
  22. "c.caseId = CASE WHEN :#{#contract.caseId} IS NOT NULL THEN :#{#contract.caseId} ELSE c.caseId END, " +
  23. "c.customerId = CASE WHEN :#{#contract.customerId} IS NOT NULL THEN :#{#contract.customerId} ELSE c.customerId END, " +
  24. "c.contractNo = CASE WHEN :#{#contract.contractNo} IS NOT NULL THEN :#{#contract.contractNo} ELSE c.contractNo END, " +
  25. "c.contractName = CASE WHEN :#{#contract.contractName} IS NOT NULL THEN :#{#contract.contractName} ELSE c.contractName END, " +
  26. "c.contractVersion = CASE WHEN :#{#contract.contractVersion} IS NOT NULL THEN :#{#contract.contractVersion} ELSE c.contractVersion END, " +
  27. "c.contractAmount = CASE WHEN :#{#contract.contractAmount} IS NOT NULL THEN :#{#contract.contractAmount} ELSE c.contractAmount END, " +
  28. "c.interestRate = CASE WHEN :#{#contract.interestRate} IS NOT NULL THEN :#{#contract.interestRate} ELSE c.interestRate END, " +
  29. "c.loanPeriod = CASE WHEN :#{#contract.loanPeriod} IS NOT NULL THEN :#{#contract.loanPeriod} ELSE c.loanPeriod END, " +
  30. "c.content = CASE WHEN :#{#contract.content} IS NOT NULL THEN :#{#contract.content} ELSE c.content END, " +
  31. "c.signedByCustomer = CASE WHEN :#{#contract.signedByCustomer} IS NOT NULL THEN :#{#contract.signedByCustomer} ELSE c.signedByCustomer END, " +
  32. "c.sifnedId = CASE WHEN :#{#contract.sifnedId} IS NOT NULL THEN :#{#contract.sifnedId} ELSE c.sifnedId END, " +
  33. "c.signedTime = CASE WHEN :#{#contract.signedTime} IS NOT NULL THEN :#{#contract.signedTime} ELSE c.signedTime END, " +
  34. "c.updateTime = CASE WHEN :#{#contract.updateTime} IS NOT NULL THEN :#{#contract.updateTime} ELSE c.updateTime END, " +
  35. "c.isDelete = CASE WHEN :isDelete IS NOT NULL THEN :isDelete ELSE c.isDelete END " +
  36. "WHERE c.id = :id and c.isDelete = :isDelete")
  37. void updateContractById(Long id, Contract contract, boolean isDelete);
  38. List<Contract> findByCaseIdAndIsDelete(Long caseId, boolean isDelete);
  39. @Transactional
  40. @Modifying
  41. @Query("UPDATE Contract c SET c.isPush = true WHERE c.id = :contractId")
  42. void updateIsPushById(Long contractId);
  43. @Query("SELECT c FROM Contract c WHERE c.caseId = ?1 AND c.isPush = ?2 AND c.isDelete = ?3 ")
  44. List<Contract> findByCaseIdAndIsPush(Long caseId,Boolean isPush,boolean isDelete);
  45. @Transactional
  46. @Modifying
  47. @Query("delete FROM Contract c WHERE c.caseId = ?1")
  48. void deleteAllByCaseId(Long caseID);
  49. @Transactional
  50. @Modifying
  51. @Query("UPDATE Contract c SET c.contractNo = ?2 WHERE c.id = ?1")
  52. void updateContractNoById(Long id, String contractNo);
  53. }