This commit is contained in:
tanglong 2025-07-18 10:31:06 +08:00
parent 02cf22cae4
commit c3849bf627

View File

@ -14,16 +14,23 @@ namespace YD_AllHeartRates.Api.Services.Impl
public static ChartDataDto BuildHeartRateTrend(List<HeartRateData> data) public static ChartDataDto BuildHeartRateTrend(List<HeartRateData> data)
{ {
if (data == null || data.Count == 0)
return new ChartDataDto();
// 按小时分组计算平均值(四舍五入)
var hourlyAvg = data var hourlyAvg = data
.GroupBy(x => x.ScoreTime.Hour) .GroupBy(x => x.ScoreTime.Hour)
.OrderBy(g => g.Key)
.ToDictionary(g => g.Key, g => (int)Math.Round(g.Average(x => x.Value))); .ToDictionary(g => g.Key, g => (int)Math.Round(g.Average(x => x.Value)));
// 获取最小和最大小时
int minHour = data.Min(x => x.ScoreTime.Hour);
int maxHour = data.Max(x => x.ScoreTime.Hour);
var chart = new ChartDataDto(); var chart = new ChartDataDto();
foreach (var hour in hourlyAvg.Keys) for (int hour = minHour; hour <= maxHour; hour++)
{ {
chart.AxisX.Add($"{hour:00}:00"); chart.AxisX.Add($"{hour:00}:00");
chart.AxisY.Add(hourlyAvg[hour]); chart.AxisY.Add(hourlyAvg.TryGetValue(hour, out int val) ? val : 0);
} }
return chart; return chart;