客户统计接口改进
This commit is contained in:
@@ -92,19 +92,47 @@ public class CustomerManagementStatisticsController {
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询指定销售的统计数据
|
||||
* 查询指定销售人员的统计数据
|
||||
*/
|
||||
@Operation(summary = "查询指定销售的统计数据", description = "查询指定销售在指定日期范围内的客户统计数据")
|
||||
@GetMapping("/sales/{salesId}")
|
||||
@Operation(summary = "查询指定销售人员的统计数据", description = "根据销售人员ID或电话号码查询指定日期范围内的客户统计数据")
|
||||
@PostMapping("/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) {
|
||||
@Parameter(description = "销售人员ID")
|
||||
@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<CustomerManagementStatistics> statistics = customerStatisticsService.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("日期范围类型必须为1(1个月)、2(3个月)或3(6个月)");
|
||||
}
|
||||
|
||||
// 根据日期范围类型计算开始和结束日期
|
||||
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<CustomerManagementStatistics> statistics = customerStatisticsService.getStatisticsBySales(salesId, salesPhone, startDate, endDate);
|
||||
Result<?> result = Result.ok(statistics);
|
||||
result.setMsg("查询成功");
|
||||
return result;
|
||||
|
||||
Reference in New Issue
Block a user