package com.loan.system.repository; import com.loan.system.domain.dto.DictDataDTO; import com.loan.system.domain.dto.query.DictDataQueryDTO; import com.loan.system.domain.entity.ApprovalRecord; import com.loan.system.domain.entity.DictData; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; import org.springframework.transaction.annotation.Transactional; import java.util.List; /** * @author EdwinXu * @date 2020/9/2 - 15:35 * @Description */ public interface DictDataRepository extends JpaRepository { List findByStatus(Boolean status); @Modifying @Transactional @Query("update DictData d set " + "d.dictLabel = CASE WHEN :#{#dataDTO.dictLabel} IS NOT NULL THEN :#{#dataDTO.dictLabel} ELSE d.dictLabel END," + "d.dictSort = CASE WHEN :#{#dataDTO.dictSort} IS NOT NULL THEN :#{#dataDTO.dictSort} ELSE d.dictSort END," + "d.dictValue = CASE WHEN :#{#dataDTO.dictValue} IS NOT NULL THEN :#{#dataDTO.dictValue} ELSE d.dictValue END," + "d.dictType = CASE WHEN :#{#dataDTO.dictType} IS NOT NULL THEN :#{#dataDTO.dictType} ELSE d.dictType END," + "d.status = CASE WHEN :#{#dataDTO.status} IS NOT NULL THEN :#{#dataDTO.status} ELSE d.status END," + "d.isDefault = CASE WHEN :#{#dataDTO.isDefault} IS NOT NULL THEN :#{#dataDTO.isDefault} ELSE d.isDefault END," + "d.updateTime = :updateTime" + " where d.id = :id") void updateById(DictDataDTO dataDTO, Long id,String updateTime); List findByDictType(String dictType); @Query("select d from DictData d where d.status = ?1") Page findAllAndIsDelete(boolean b, Pageable pageable); @Query("SELECT lc FROM DictData lc WHERE " + "(:#{#query.dictLabel} IS NULL OR lc.dictLabel = :#{#query.dictLabel}) AND " + "(:#{#query.dictType} IS NULL OR lc.dictType = :#{#query.dictType}) AND " + "lc.status = false") Page findByQuery(DictDataQueryDTO query, Pageable pageable); }