Interface CallCdrRepository

All Superinterfaces:
org.springframework.data.repository.CrudRepository<CallCdrEntity,Long>, org.springframework.data.jpa.repository.JpaRepository<CallCdrEntity,Long>, org.springframework.data.jpa.repository.JpaSpecificationExecutor<CallCdrEntity>, org.springframework.data.repository.ListCrudRepository<CallCdrEntity,Long>, org.springframework.data.repository.ListPagingAndSortingRepository<CallCdrEntity,Long>, org.springframework.data.repository.PagingAndSortingRepository<CallCdrEntity,Long>, org.springframework.data.repository.query.QueryByExampleExecutor<CallCdrEntity>, org.springframework.data.repository.Repository<CallCdrEntity,Long>

public interface CallCdrRepository extends org.springframework.data.jpa.repository.JpaRepository<CallCdrEntity,Long>, org.springframework.data.jpa.repository.JpaSpecificationExecutor<CallCdrEntity>
Call CDR仓库接口
  • Method Details

    • findByUid

      Optional<CallCdrEntity> findByUid(String uid)
      根据UID查找CDR记录
    • findByOrgUid

      List<CallCdrEntity> findByOrgUid(String orgUid)
    • findByCallerIdNumber

      List<CallCdrEntity> findByCallerIdNumber(String callerIdNumber)
      根据主叫号码查找CDR记录
    • findByDestinationNumber

      List<CallCdrEntity> findByDestinationNumber(String destinationNumber)
      根据被叫号码查找CDR记录
    • findByAccountcode

      List<CallCdrEntity> findByAccountcode(String accountcode)
      根据账户代码查找CDR记录
    • findByDirection

      List<CallCdrEntity> findByDirection(String direction)
      根据通话方向查找CDR记录
    • findByHangupCause

      List<CallCdrEntity> findByHangupCause(String hangupCause)
      根据挂断原因查找CDR记录
    • findByStartStampBetween

      List<CallCdrEntity> findByStartStampBetween(ZonedDateTime startTime, ZonedDateTime endTime)
      查找指定时间范围内的CDR记录
    • findByAnswerStampIsNotNull

      List<CallCdrEntity> findByAnswerStampIsNotNull()
      查找成功接通的通话记录
    • findByRecordFileIsNotNull

      List<CallCdrEntity> findByRecordFileIsNotNull()
      查找有录音文件的通话记录
    • findByCallerOrDestination

      @Query("SELECT c FROM CallCdrEntity c WHERE c.callerIdNumber = :number OR c.destinationNumber = :number") List<CallCdrEntity> findByCallerOrDestination(@Param("number") String number)
      根据主叫或被叫号码查找CDR记录
    • findCallHistory

      @Query("SELECT c FROM CallCdrEntity c WHERE c.callerIdNumber = :number OR c.destinationNumber = :number ORDER BY c.startStamp DESC") org.springframework.data.domain.Page<CallCdrEntity> findCallHistory(@Param("number") String number, org.springframework.data.domain.Pageable pageable)
      查找指定号码的通话历史(分页)
    • countCallsInTimeRange

      @Query("SELECT COUNT(c) FROM CallCdrEntity c WHERE c.startStamp BETWEEN :startTime AND :endTime") long countCallsInTimeRange(@Param("startTime") ZonedDateTime startTime, @Param("endTime") ZonedDateTime endTime)
      统计指定时间范围内的通话数量
    • countAnsweredCallsInTimeRange

      @Query("SELECT COUNT(c) FROM CallCdrEntity c WHERE c.startStamp BETWEEN :startTime AND :endTime AND c.answerStamp IS NOT NULL") long countAnsweredCallsInTimeRange(@Param("startTime") ZonedDateTime startTime, @Param("endTime") ZonedDateTime endTime)
      统计指定时间范围内成功接通的通话数量
    • sumBillSecInTimeRange

      @Query("SELECT COALESCE(SUM(c.billsec), 0) FROM CallCdrEntity c WHERE c.startStamp BETWEEN :startTime AND :endTime AND c.answerStamp IS NOT NULL") long sumBillSecInTimeRange(@Param("startTime") ZonedDateTime startTime, @Param("endTime") ZonedDateTime endTime)
      计算指定时间范围内的总通话时长
    • findRecentCalls

      @Query("SELECT c FROM CallCdrEntity c ORDER BY c.startStamp DESC") org.springframework.data.domain.Page<CallCdrEntity> findRecentCalls(org.springframework.data.domain.Pageable pageable)
      查找最近的通话记录
    • countByCallerNumber

      @Query("SELECT COUNT(c) FROM CallCdrEntity c WHERE c.callerIdNumber = :callerNumber") long countByCallerNumber(@Param("callerNumber") String callerNumber)
      根据主叫号码统计通话次数
    • countByDestinationNumber

      @Query("SELECT COUNT(c) FROM CallCdrEntity c WHERE c.destinationNumber = :destinationNumber") long countByDestinationNumber(@Param("destinationNumber") String destinationNumber)
      根据被叫号码统计通话次数
    • existsByUid

      boolean existsByUid(String uid)
      检查UUID是否存在
    • deleteByStartStampBefore

      void deleteByStartStampBefore(ZonedDateTime cutoffDate)
      删除指定日期之前的CDR记录