Interface ViewAgentThreadStatsRepository
- All Superinterfaces:
org.springframework.data.repository.CrudRepository<ViewAgentThreadStats,,ViewAgentThreadStats.ViewAgentThreadStatsId> org.springframework.data.jpa.repository.JpaRepository<ViewAgentThreadStats,,ViewAgentThreadStats.ViewAgentThreadStatsId> org.springframework.data.repository.ListCrudRepository<ViewAgentThreadStats,,ViewAgentThreadStats.ViewAgentThreadStatsId> org.springframework.data.repository.ListPagingAndSortingRepository<ViewAgentThreadStats,,ViewAgentThreadStats.ViewAgentThreadStatsId> org.springframework.data.repository.PagingAndSortingRepository<ViewAgentThreadStats,,ViewAgentThreadStats.ViewAgentThreadStatsId> org.springframework.data.repository.query.QueryByExampleExecutor<ViewAgentThreadStats>,org.springframework.data.repository.Repository<ViewAgentThreadStats,ViewAgentThreadStats.ViewAgentThreadStatsId>
@Repository
public interface ViewAgentThreadStatsRepository
extends org.springframework.data.jpa.repository.JpaRepository<ViewAgentThreadStats,ViewAgentThreadStats.ViewAgentThreadStatsId>
客服会话统计视图仓库
Agent Thread Statistics View Repository
用途:查询客服会话统计视图数据
示例用法:
// 1. 查询某个客服今天的统计
List<ViewAgentThreadStats> todayStats = repository
.findByAgentUidAndStatDate("agent123", LocalDate.now());
// 2. 查询某个客服某天某小时的统计
Optional<ViewAgentThreadStats> hourStats = repository
.findByAgentUidAndStatDateAndStatHour("agent123", LocalDate.now(), 14);
// 3. 查询某个组织今天所有客服的统计
List<ViewAgentThreadStats> orgStats = repository
.findByOrgUidAndStatDate("org123", LocalDate.now());
// 4. 查询某个客服最近7天的统计
List<ViewAgentThreadStats> weekStats = repository
.findByAgentUidAndStatDateBetween(
"agent123",
LocalDate.now().minusDays(7),
LocalDate.now()
);
-
Method Summary
Modifier and TypeMethodDescriptionavgResponseTimeByOrgUidAndStatDate(String orgUid, LocalDate statDate) 统计某个组织某天的平均响应时间findByAgentUidAndStatDate(String agentUid, LocalDate statDate) 查询某个客服在指定日期的统计(所有小时汇总)findByAgentUidAndStatDateAndStatHour(String agentUid, LocalDate statDate, Integer statHour) 查询某个客服在指定日期和小时的统计findByAgentUidAndStatDateBetween(String agentUid, LocalDate startDate, LocalDate endDate) 查询某个客服在指定日期范围内的统计findByOrgUidAndStatDate(String orgUid, LocalDate statDate) 查询某个组织在指定日期的所有客服统计findByOrgUidAndStatDateBetween(String orgUid, LocalDate startDate, LocalDate endDate) 查询某个组织在指定日期范围内的所有客服统计findDailySummaryByAgentUidAndStatDate(String agentUid, LocalDate statDate) 查询某个客服某天的汇总统计(所有小时求和)findTopAgentsByResponseTime(String orgUid, LocalDate statDate, Integer minThreads) 查询响应速度最快的前N名客服findTopAgentsByThreadCount(String orgUid, LocalDate statDate) 查询会话量最多的前N名客服sumTotalThreadsByOrgUidAndStatDate(String orgUid, LocalDate statDate) 统计某个组织某天的总会话量Methods inherited from interface org.springframework.data.repository.CrudRepository
count, delete, deleteAll, deleteAll, deleteAllById, deleteById, existsById, findById, saveMethods inherited from interface org.springframework.data.jpa.repository.JpaRepository
deleteAllByIdInBatch, deleteAllInBatch, deleteAllInBatch, deleteInBatch, findAll, findAll, flush, getById, getOne, getReferenceById, saveAllAndFlush, saveAndFlushMethods inherited from interface org.springframework.data.repository.ListCrudRepository
findAll, findAllById, saveAllMethods inherited from interface org.springframework.data.repository.ListPagingAndSortingRepository
findAllMethods inherited from interface org.springframework.data.repository.PagingAndSortingRepository
findAllMethods inherited from interface org.springframework.data.repository.query.QueryByExampleExecutor
count, exists, findAll, findBy, findOne
-
Method Details
-
findByAgentUidAndStatDate
@Query("SELECT v FROM ViewAgentThreadStats v\nWHERE v.id.agentUid = :agentUid\n AND v.id.statDate = :statDate\nORDER BY v.id.statHour\n") List<ViewAgentThreadStats> findByAgentUidAndStatDate(@Param("agentUid") String agentUid, @Param("statDate") LocalDate statDate) 查询某个客服在指定日期的统计(所有小时汇总) -
findByAgentUidAndStatDateBetween
@Query("SELECT v FROM ViewAgentThreadStats v\nWHERE v.id.agentUid = :agentUid\n AND v.id.statDate BETWEEN :startDate AND :endDate\nORDER BY v.id.statDate, v.id.statHour\n") List<ViewAgentThreadStats> findByAgentUidAndStatDateBetween(@Param("agentUid") String agentUid, @Param("startDate") LocalDate startDate, @Param("endDate") LocalDate endDate) 查询某个客服在指定日期范围内的统计 -
findByAgentUidAndStatDateAndStatHour
@Query("SELECT v FROM ViewAgentThreadStats v\nWHERE v.id.agentUid = :agentUid\n AND v.id.statDate = :statDate\n AND v.id.statHour = :statHour\n") Optional<ViewAgentThreadStats> findByAgentUidAndStatDateAndStatHour(@Param("agentUid") String agentUid, @Param("statDate") LocalDate statDate, @Param("statHour") Integer statHour) 查询某个客服在指定日期和小时的统计 -
findByOrgUidAndStatDate
@Query("SELECT v FROM ViewAgentThreadStats v\nWHERE v.id.orgUid = :orgUid\n AND v.id.statDate = :statDate\nORDER BY v.totalThreads DESC\n") List<ViewAgentThreadStats> findByOrgUidAndStatDate(@Param("orgUid") String orgUid, @Param("statDate") LocalDate statDate) 查询某个组织在指定日期的所有客服统计 -
findByOrgUidAndStatDateBetween
@Query("SELECT v FROM ViewAgentThreadStats v\nWHERE v.id.orgUid = :orgUid\n AND v.id.statDate BETWEEN :startDate AND :endDate\nORDER BY v.id.statDate, v.totalThreads DESC\n") List<ViewAgentThreadStats> findByOrgUidAndStatDateBetween(@Param("orgUid") String orgUid, @Param("startDate") LocalDate startDate, @Param("endDate") LocalDate endDate) 查询某个组织在指定日期范围内的所有客服统计 -
findDailySummaryByAgentUidAndStatDate
@Query("SELECT new com.bytedesk.service.service_statistic.view.AgentDailyStats(\n v.id.agentUid,\n v.id.orgUid,\n v.id.statDate,\n SUM(v.totalThreads),\n SUM(v.acceptedThreads),\n SUM(v.abandonedThreads),\n AVG(v.avgWaitTime),\n MAX(v.maxWaitTime),\n AVG(v.avgResponseTime),\n SUM(v.totalAgentMessages),\n SUM(v.totalVisitorMessages)\n)\nFROM ViewAgentThreadStats v\nWHERE v.id.agentUid = :agentUid\n AND v.id.statDate = :statDate\nGROUP BY v.id.agentUid, v.id.orgUid, v.id.statDate\n") Optional<AgentDailyStats> findDailySummaryByAgentUidAndStatDate(@Param("agentUid") String agentUid, @Param("statDate") LocalDate statDate) 查询某个客服某天的汇总统计(所有小时求和) -
findTopAgentsByResponseTime
@Query("SELECT v FROM ViewAgentThreadStats v\nWHERE v.id.orgUid = :orgUid\n AND v.id.statDate = :statDate\n AND v.acceptedThreads > :minThreads\nORDER BY v.avgResponseTime ASC\n") List<ViewAgentThreadStats> findTopAgentsByResponseTime(@Param("orgUid") String orgUid, @Param("statDate") LocalDate statDate, @Param("minThreads") Integer minThreads) 查询响应速度最快的前N名客服 -
findTopAgentsByThreadCount
@Query("SELECT v FROM ViewAgentThreadStats v\nWHERE v.id.orgUid = :orgUid\n AND v.id.statDate = :statDate\nORDER BY v.totalThreads DESC\n") List<ViewAgentThreadStats> findTopAgentsByThreadCount(@Param("orgUid") String orgUid, @Param("statDate") LocalDate statDate) 查询会话量最多的前N名客服 -
sumTotalThreadsByOrgUidAndStatDate
@Query("SELECT SUM(v.totalThreads)\nFROM ViewAgentThreadStats v\nWHERE v.id.orgUid = :orgUid\n AND v.id.statDate = :statDate\n") Long sumTotalThreadsByOrgUidAndStatDate(@Param("orgUid") String orgUid, @Param("statDate") LocalDate statDate) 统计某个组织某天的总会话量 -
avgResponseTimeByOrgUidAndStatDate
@Query("SELECT AVG(v.avgResponseTime)\nFROM ViewAgentThreadStats v\nWHERE v.id.orgUid = :orgUid\n AND v.id.statDate = :statDate\n AND v.acceptedThreads > 0\n") Double avgResponseTimeByOrgUidAndStatDate(@Param("orgUid") String orgUid, @Param("statDate") LocalDate statDate) 统计某个组织某天的平均响应时间
-