|
...
|
...
|
@@ -32,6 +32,7 @@ class HrvReportLogic extends ReportPeriodLogic { |
|
|
|
final yearlyReport = Rxn<YearlyHrvReport>();
|
|
|
|
final HrvReportRepository repository;
|
|
|
|
final _myUserId = Get.find<UserStateService>().userId;
|
|
|
|
int _reportRequestId = 0;
|
|
|
|
static const _logMarker = '[OHOS_HRV_TREND_PROFILE]';
|
|
|
|
bool get isMySelf =>
|
|
|
|
targetUserId.value == null || _myUserId == targetUserId.value;
|
|
...
|
...
|
@@ -51,41 +52,51 @@ class HrvReportLogic extends ReportPeriodLogic { |
|
|
|
|
|
|
|
@override
|
|
|
|
Future<void> loadReport() async {
|
|
|
|
final requestId = ++_reportRequestId;
|
|
|
|
final stopwatch = Stopwatch()..start();
|
|
|
|
final period = selectedPeriod.value;
|
|
|
|
final date = selectedDate.value;
|
|
|
|
final currentTargetUserId = targetUserId.value;
|
|
|
|
final isCurrentUser =
|
|
|
|
currentTargetUserId == null || _myUserId == currentTargetUserId;
|
|
|
|
_log(
|
|
|
|
'logic_load_start period=${period.name} date=$date '
|
|
|
|
'targetUserId=${targetUserId.value} isMySelf=$isMySelf',
|
|
|
|
'targetUserId=$currentTargetUserId isMySelf=$isCurrentUser',
|
|
|
|
);
|
|
|
|
isLoading.value = !isMySelf;
|
|
|
|
isLoading.value = !isCurrentUser;
|
|
|
|
|
|
|
|
try {
|
|
|
|
if (period == ReportPeriod.year) {
|
|
|
|
yearlyReport.value = await repository.getYearlyReport(
|
|
|
|
final result = await repository.getYearlyReport(
|
|
|
|
date.year,
|
|
|
|
targetUserId: targetUserId.value,
|
|
|
|
targetUserId: currentTargetUserId,
|
|
|
|
);
|
|
|
|
if (requestId != _reportRequestId) return;
|
|
|
|
yearlyReport.value = result;
|
|
|
|
_log(
|
|
|
|
'logic_assign_finish period=${period.name} '
|
|
|
|
'days=${yearlyReport.value?.days.length ?? 0} '
|
|
|
|
'elapsedMs=${stopwatch.elapsedMilliseconds}',
|
|
|
|
);
|
|
|
|
} else if (period == ReportPeriod.month) {
|
|
|
|
monthlyReport.value = await repository.getMonthlyReport(
|
|
|
|
final result = await repository.getMonthlyReport(
|
|
|
|
monthStart,
|
|
|
|
targetUserId: targetUserId.value,
|
|
|
|
targetUserId: currentTargetUserId,
|
|
|
|
);
|
|
|
|
if (requestId != _reportRequestId) return;
|
|
|
|
monthlyReport.value = result;
|
|
|
|
_log(
|
|
|
|
'logic_assign_finish period=${period.name} '
|
|
|
|
'days=${monthlyReport.value?.days.length ?? 0} '
|
|
|
|
'elapsedMs=${stopwatch.elapsedMilliseconds}',
|
|
|
|
);
|
|
|
|
} else {
|
|
|
|
weeklyReport.value = await repository.getWeeklyReport(
|
|
|
|
final result = await repository.getWeeklyReport(
|
|
|
|
weekStart,
|
|
|
|
targetUserId: targetUserId.value,
|
|
|
|
targetUserId: currentTargetUserId,
|
|
|
|
);
|
|
|
|
if (requestId != _reportRequestId) return;
|
|
|
|
weeklyReport.value = result;
|
|
|
|
_log(
|
|
|
|
'logic_assign_finish period=${period.name} '
|
|
|
|
'days=${weeklyReport.value?.days.length ?? 0} '
|
|
...
|
...
|
@@ -93,7 +104,9 @@ class HrvReportLogic extends ReportPeriodLogic { |
|
|
|
);
|
|
|
|
}
|
|
|
|
} finally {
|
|
|
|
isLoading.value = false;
|
|
|
|
if (requestId == _reportRequestId) {
|
|
|
|
isLoading.value = false;
|
|
|
|
}
|
|
|
|
_log(
|
|
|
|
'logic_load_finish period=$period date=$date '
|
|
|
|
'elapsedMs=${stopwatch.elapsedMilliseconds}',
|
...
|
...
|
|