录音时长统计相关代码

This commit is contained in:
2026-02-07 21:10:44 +08:00
parent ec16419f1f
commit 69043e765a
5 changed files with 184 additions and 14 deletions

View File

@@ -89,4 +89,32 @@ public interface AudioManagementStatisticsMapper extends BaseMapper<AudioManagem
* @return 删除的记录数
*/
int deleteByStatisticsDate(@Param("date") LocalDate date);
/**
* 根据销售人员和日期范围聚合查询总录音时长和平均录音时长
* @param salesId 销售人员ID
* @param startDate 开始日期
* @param endDate 结束日期
* @return 聚合统计结果(包含总录音时长、总录音数量、平均录音时长、销售人员姓名)
*/
@Select("SELECT " +
"sales_id, " +
"MAX(sales_name) as sales_name, " +
"SUM(sales_total_duration) as total_duration, " +
"SUM(sales_recording_count) as total_count, " +
"CASE " +
" WHEN SUM(sales_recording_count) > 0 THEN " +
" ROUND(SUM(sales_total_duration) / SUM(sales_recording_count), 2) " +
" ELSE 0 " +
"END as avg_duration " +
"FROM audio_management_statistics " +
"WHERE sales_id = #{salesId} " +
"AND statistics_date >= #{startDate} " +
"AND statistics_date <= #{endDate} " +
"AND sales_id IS NOT NULL " +
"AND sales_id != '' " +
"GROUP BY sales_id")
Map<String, Object> getSalesAggregateStatistics(@Param("salesId") String salesId,
@Param("startDate") LocalDate startDate,
@Param("endDate") LocalDate endDate);
}