Class AgentStatisticViewService

java.lang.Object
com.bytedesk.service.service_statistic.view.AgentStatisticViewService

@Service public class AgentStatisticViewService extends Object
客服统计视图服务 Agent Statistics View Service 用途: 1. 提供基于视图的高性能统计查询 2. 简化统计数据获取逻辑 3. 替代原有的复杂统计计算 优势: - 查询速度快,无需实时计算 - 代码简洁,易于维护 - 统一数据口径 示例用法:
 
 @Autowired
 private AgentStatisticViewService service;
 
 // 获取客服今天的统计
 AgentDailyStats stats = service.getAgentDailyStats("agent123", LocalDate.now());
 System.out.println("今日会话量: " + stats.getTotalThreads());
 System.out.println("接入率: " + stats.getAcceptanceRate() + "%");
 
 // 获取组织内排名前10的客服
 List<ViewAgentThreadStats> topAgents = service.getTopAgentsByThreadCount("org123", LocalDate.now(), 10);
 
 
  • Field Details

  • Constructor Details

    • AgentStatisticViewService

      public AgentStatisticViewService()
  • Method Details

    • getAgentDailyStats

      public AgentDailyStats getAgentDailyStats(String agentUid, LocalDate statDate)
      获取客服每日统计汇总
      Parameters:
      agentUid - 客服UID
      statDate - 统计日期
      Returns:
      每日统计汇总,如果没有数据返回 null
    • getAgentHourlyStats

      public List<ViewAgentThreadStats> getAgentHourlyStats(String agentUid, LocalDate startDate, LocalDate endDate)
      获取客服指定时间范围内的小时级统计
      Parameters:
      agentUid - 客服UID
      startDate - 开始日期
      endDate - 结束日期
      Returns:
      小时级统计列表
    • getAgentHourStats

      public ViewAgentThreadStats getAgentHourStats(String agentUid, LocalDate statDate, Integer statHour)
      获取客服某天某小时的统计
      Parameters:
      agentUid - 客服UID
      statDate - 统计日期
      statHour - 统计小时(0-23)
      Returns:
      小时统计,如果没有数据返回 null
    • getOrgAllAgentStats

      public List<ViewAgentThreadStats> getOrgAllAgentStats(String orgUid, LocalDate statDate)
      获取组织内所有客服的统计
      Parameters:
      orgUid - 组织UID
      statDate - 统计日期
      Returns:
      客服统计列表,按会话量降序
    • getTopAgentsByResponseTime

      public List<ViewAgentThreadStats> getTopAgentsByResponseTime(String orgUid, LocalDate statDate, Integer topN, Integer minThreads)
      获取响应速度最快的前N名客服
      Parameters:
      orgUid - 组织UID
      statDate - 统计日期
      topN - 返回数量
      minThreads - 最小会话量(过滤掉会话量过少的客服)
      Returns:
      客服统计列表,按响应时间升序
    • getTopAgentsByThreadCount

      public List<ViewAgentThreadStats> getTopAgentsByThreadCount(String orgUid, LocalDate statDate, Integer topN)
      获取会话量最多的前N名客服
      Parameters:
      orgUid - 组织UID
      statDate - 统计日期
      topN - 返回数量
      Returns:
      客服统计列表,按会话量降序
    • getOrgTotalThreads

      public Long getOrgTotalThreads(String orgUid, LocalDate statDate)
      获取组织某天的总会话量
      Parameters:
      orgUid - 组织UID
      statDate - 统计日期
      Returns:
      总会话量
    • getOrgAvgResponseTime

      public Double getOrgAvgResponseTime(String orgUid, LocalDate statDate)
      获取组织某天的平均响应时间
      Parameters:
      orgUid - 组织UID
      statDate - 统计日期
      Returns:
      平均响应时间(秒)
    • compareAgentStats

      public AgentStatisticViewService.AgentStatsComparison compareAgentStats(String agentUid, LocalDate date1, LocalDate date2)
      对比两个日期的统计数据
      Parameters:
      agentUid - 客服UID
      date1 - 第一个日期
      date2 - 第二个日期
      Returns:
      对比结果
    • calculateDiff

      private Double calculateDiff(Number value1, Number value2)
      计算差值百分比