录音时长统计相关代码

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

@@ -94,17 +94,45 @@ public class AudioStatisticsController {
/**
* 查询指定销售人员的统计数据
*/
@Operation(summary = "查询指定销售人员的统计数据", description = "查询指定销售人员在指定日期范围内的录音统计数据")
@GetMapping("/sales/{salesId}")
@Operation(summary = "查询指定销售人员的统计数据", description = "根据销售人员ID或电话号码查询指定日期范围内的录音统计数据")
@GetMapping("/sales")
public Result<?> getStatisticsBySales(
@Parameter(description = "销售人员ID")
@PathVariable String salesId,
@Parameter(description = "开始日期格式yyyy-MM-dd")
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate startDate,
@Parameter(description = "结束日期格式yyyy-MM-dd")
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate endDate) {
@RequestParam(required = false) String salesId,
@Parameter(description = "销售人员电话号码")
@RequestParam(required = false) String salesPhone,
@Parameter(description = "日期范围类型1=1个月2=3个月3=6个月")
@RequestParam Integer dateRangeType) {
try {
List<AudioManagementStatistics> statistics = audioStatisticsService.getStatisticsBySales(salesId, startDate, endDate);
// 验证参数:至少提供一个查询条件
if ((salesId == null || salesId.trim().isEmpty()) &&
(salesPhone == null || salesPhone.trim().isEmpty())) {
return Result.error("销售人员ID和电话号码至少需要提供一个");
}
// 验证日期范围类型
if (dateRangeType == null || (dateRangeType != 1 && dateRangeType != 2 && dateRangeType != 3)) {
return Result.error("日期范围类型必须为11个月、23个月或36个月");
}
// 根据日期范围类型计算开始和结束日期
LocalDate endDate = LocalDate.now().minusDays(1); // 昨天
LocalDate startDate;
switch (dateRangeType) {
case 1:
startDate = endDate.minusMonths(1); // 1个月前
break;
case 2:
startDate = endDate.minusMonths(3); // 3个月前
break;
case 3:
startDate = endDate.minusMonths(6); // 6个月前
break;
default:
return Result.error("日期范围类型无效");
}
List<AudioManagementStatistics> statistics = audioStatisticsService.getStatisticsBySales(salesId, salesPhone, startDate, endDate);
Result<?> result = Result.ok(statistics);
result.setMsg("查询成功");
return result;