Commit e4e1b7af0cc7758c033c7b4a0864b56c670d408f

Authored by 刘宏哲
1 parent 4f90ea08

feat(app): bug fixed

... ... @@ -89,13 +89,6 @@ class ApiHrvReportDataSource implements HrvReportDataSource {
for (final trend in data.hrvTrendList ?? const <HrvTrendList>[])
if (_parseApiDate(trend.timeKey) case final date?) date: trend,
};
final levelsByDate = <DateTime, HrvStressLevel>{
for (final item
in data.dailyDistributionList ?? const <DailyDistributionList>[])
if (_parseApiDate(item.date) case final date?)
if (_stressLevelFromApiId(item.hrvLevel) case final level?)
date: level,
};
final distributionCounts = _distributionCounts(data.hrvDistributionList);
final previousDistributionCounts =
_previousDistributionCounts(data.qoqHrvDistributionList);
... ... @@ -107,15 +100,23 @@ class ApiHrvReportDataSource implements HrvReportDataSource {
_dayReport(
weekStart.add(Duration(days: i)),
trendsByDate,
levelsByDate,
const <DateTime, HrvStressLevel>{},
),
],
previousRelaxedDays: _relaxedDays(previousDistributionCounts),
previousStressedDays: _stressedDays(previousDistributionCounts),
distributionCounts:
distributionCounts.isEmpty ? null : distributionCounts,
minDayOverride: _extremeDay(data.hrvMin, trendsByDate, levelsByDate),
maxDayOverride: _extremeDay(data.hrvMax, trendsByDate, levelsByDate),
minDayOverride: _extremeDay(
data.hrvMin,
trendsByDate,
const <DateTime, HrvStressLevel>{},
),
maxDayOverride: _extremeDay(
data.hrvMax,
trendsByDate,
const <DateTime, HrvStressLevel>{},
),
);
}
... ... @@ -127,13 +128,6 @@ class ApiHrvReportDataSource implements HrvReportDataSource {
for (final trend in data.hrvTrendList ?? const <HrvTrendList>[])
if (_parseApiDate(trend.timeKey) case final date?) date: trend,
};
final levelsByDate = <DateTime, HrvStressLevel>{
for (final item
in data.dailyDistributionList ?? const <DailyDistributionList>[])
if (_parseApiDate(item.date) case final date?)
if (_stressLevelFromApiId(item.hrvLevel) case final level?)
date: level,
};
final distributionCounts = _distributionCounts(data.hrvDistributionList);
final previousDistributionCounts =
_previousDistributionCounts(data.qoqHrvDistributionList);
... ... @@ -146,15 +140,23 @@ class ApiHrvReportDataSource implements HrvReportDataSource {
_dayReport(
monthStart.add(Duration(days: i)),
trendsByDate,
levelsByDate,
const <DateTime, HrvStressLevel>{},
),
],
previousRelaxedDays: _relaxedDays(previousDistributionCounts),
previousStressedDays: _stressedDays(previousDistributionCounts),
distributionCounts:
distributionCounts.isEmpty ? null : distributionCounts,
minDayOverride: _extremeDay(data.hrvMin, trendsByDate, levelsByDate),
maxDayOverride: _extremeDay(data.hrvMax, trendsByDate, levelsByDate),
minDayOverride: _extremeDay(
data.hrvMin,
trendsByDate,
const <DateTime, HrvStressLevel>{},
),
maxDayOverride: _extremeDay(
data.hrvMax,
trendsByDate,
const <DateTime, HrvStressLevel>{},
),
);
}
... ... @@ -213,6 +215,7 @@ class ApiHrvReportDataSource implements HrvReportDataSource {
averageHeartRate: trend?.hrAverage?.round(),
lastRestingHrValue: trend?.lastRestingHrValue,
comprehensiveStressScore: trend?.comprehensiveStressScore?.toDouble(),
trendLevel: trendLevel,
level: level,
);
}
... ...
... ... @@ -38,6 +38,7 @@ class HrvDayReport {
this.averageHeartRate,
this.lastRestingHrValue,
this.comprehensiveStressScore,
this.trendLevel,
this.level,
});
... ... @@ -46,6 +47,7 @@ class HrvDayReport {
final int? averageHeartRate;
final int? lastRestingHrValue;
final double? comprehensiveStressScore;
final HrvStressLevel? trendLevel;
final HrvStressLevel? level;
bool get hasData => averageHrv != null;
... ... @@ -398,6 +400,12 @@ class YearlyHrvReport implements HrvPeriodReport {
}
HrvStressLevel? levelForMonth(int month) {
final trendLevels = daysForMonth(month)
.map((day) => day.trendLevel)
.whereType<HrvStressLevel>()
.toList();
if (trendLevels.isNotEmpty) return trendLevels.first;
final levels = daysForMonth(month)
.where((day) => day.averageHrv != null)
.map((day) => day.level)
... ...