DictDataRepository.java 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package com.loan.system.repository;
  2. import com.loan.system.domain.dto.DictDataDTO;
  3. import com.loan.system.domain.dto.query.DictDataQueryDTO;
  4. import com.loan.system.domain.entity.ApprovalRecord;
  5. import com.loan.system.domain.entity.DictData;
  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.Modifying;
  10. import org.springframework.data.jpa.repository.Query;
  11. import org.springframework.transaction.annotation.Transactional;
  12. import java.util.List;
  13. /**
  14. * @author EdwinXu
  15. * @date 2020/9/2 - 15:35
  16. * @Description
  17. */
  18. public interface DictDataRepository extends JpaRepository<DictData,Long> {
  19. List<DictData> findByStatus(Boolean status);
  20. @Modifying
  21. @Transactional
  22. @Query("update DictData d set " +
  23. "d.dictLabel = CASE WHEN :#{#dataDTO.dictLabel} IS NOT NULL THEN :#{#dataDTO.dictLabel} ELSE d.dictLabel END," +
  24. "d.dictSort = CASE WHEN :#{#dataDTO.dictSort} IS NOT NULL THEN :#{#dataDTO.dictSort} ELSE d.dictSort END," +
  25. "d.dictValue = CASE WHEN :#{#dataDTO.dictValue} IS NOT NULL THEN :#{#dataDTO.dictValue} ELSE d.dictValue END," +
  26. "d.dictType = CASE WHEN :#{#dataDTO.dictType} IS NOT NULL THEN :#{#dataDTO.dictType} ELSE d.dictType END," +
  27. "d.status = CASE WHEN :#{#dataDTO.status} IS NOT NULL THEN :#{#dataDTO.status} ELSE d.status END," +
  28. "d.isDefault = CASE WHEN :#{#dataDTO.isDefault} IS NOT NULL THEN :#{#dataDTO.isDefault} ELSE d.isDefault END," +
  29. "d.updateTime = :updateTime" +
  30. " where d.id = :id")
  31. void updateById(DictDataDTO dataDTO, Long id,String updateTime);
  32. List<DictData> findByDictType(String dictType);
  33. @Query("select d from DictData d where d.status = ?1")
  34. Page<DictData> findAllAndIsDelete(boolean b, Pageable pageable);
  35. @Query("SELECT lc FROM DictData lc WHERE " +
  36. "(:#{#query.dictLabel} IS NULL OR lc.dictLabel = :#{#query.dictLabel}) AND " +
  37. "(:#{#query.dictType} IS NULL OR lc.dictType = :#{#query.dictType}) AND " +
  38. "lc.status = false")
  39. Page<DictData> findByQuery(DictDataQueryDTO query, Pageable pageable);
  40. }