Class AgentStatisticViewService
java.lang.Object
com.bytedesk.service.service_statistic.view.AgentStatisticViewService
客服统计视图服务
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);
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class统计对比结果 -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate DoublecalculateDiff(Number value1, Number value2) 计算差值百分比compareAgentStats(String agentUid, LocalDate date1, LocalDate date2) 对比两个日期的统计数据getAgentDailyStats(String agentUid, LocalDate statDate) 获取客服每日统计汇总getAgentHourlyStats(String agentUid, LocalDate startDate, LocalDate endDate) 获取客服指定时间范围内的小时级统计getAgentHourStats(String agentUid, LocalDate statDate, Integer statHour) 获取客服某天某小时的统计getOrgAllAgentStats(String orgUid, LocalDate statDate) 获取组织内所有客服的统计getOrgAvgResponseTime(String orgUid, LocalDate statDate) 获取组织某天的平均响应时间getOrgTotalThreads(String orgUid, LocalDate statDate) 获取组织某天的总会话量getTopAgentsByResponseTime(String orgUid, LocalDate statDate, Integer topN, Integer minThreads) 获取响应速度最快的前N名客服getTopAgentsByThreadCount(String orgUid, LocalDate statDate, Integer topN) 获取会话量最多的前N名客服
-
Field Details
-
viewRepository
-
-
Constructor Details
-
AgentStatisticViewService
public AgentStatisticViewService()
-
-
Method Details
-
getAgentDailyStats
获取客服每日统计汇总- Parameters:
agentUid- 客服UIDstatDate- 统计日期- Returns:
- 每日统计汇总,如果没有数据返回 null
-
getAgentHourlyStats
public List<ViewAgentThreadStats> getAgentHourlyStats(String agentUid, LocalDate startDate, LocalDate endDate) 获取客服指定时间范围内的小时级统计- Parameters:
agentUid- 客服UIDstartDate- 开始日期endDate- 结束日期- Returns:
- 小时级统计列表
-
getAgentHourStats
public ViewAgentThreadStats getAgentHourStats(String agentUid, LocalDate statDate, Integer statHour) 获取客服某天某小时的统计- Parameters:
agentUid- 客服UIDstatDate- 统计日期statHour- 统计小时(0-23)- Returns:
- 小时统计,如果没有数据返回 null
-
getOrgAllAgentStats
获取组织内所有客服的统计- Parameters:
orgUid- 组织UIDstatDate- 统计日期- Returns:
- 客服统计列表,按会话量降序
-
getTopAgentsByResponseTime
public List<ViewAgentThreadStats> getTopAgentsByResponseTime(String orgUid, LocalDate statDate, Integer topN, Integer minThreads) 获取响应速度最快的前N名客服- Parameters:
orgUid- 组织UIDstatDate- 统计日期topN- 返回数量minThreads- 最小会话量(过滤掉会话量过少的客服)- Returns:
- 客服统计列表,按响应时间升序
-
getTopAgentsByThreadCount
public List<ViewAgentThreadStats> getTopAgentsByThreadCount(String orgUid, LocalDate statDate, Integer topN) 获取会话量最多的前N名客服- Parameters:
orgUid- 组织UIDstatDate- 统计日期topN- 返回数量- Returns:
- 客服统计列表,按会话量降序
-
getOrgTotalThreads
获取组织某天的总会话量- Parameters:
orgUid- 组织UIDstatDate- 统计日期- Returns:
- 总会话量
-
getOrgAvgResponseTime
获取组织某天的平均响应时间- Parameters:
orgUid- 组织UIDstatDate- 统计日期- Returns:
- 平均响应时间(秒)
-
compareAgentStats
public AgentStatisticViewService.AgentStatsComparison compareAgentStats(String agentUid, LocalDate date1, LocalDate date2) 对比两个日期的统计数据- Parameters:
agentUid- 客服UIDdate1- 第一个日期date2- 第二个日期- Returns:
- 对比结果
-
calculateDiff
计算差值百分比
-