Commit 987f24d713512f46cddeffd973f1c066a8f2058c

Authored by 常守达
1 parent 2d2bc767

fix(today):迁移请求数据

@@ -3,7 +3,11 @@ import 'package:doublefeel_flutter/core/network/api/friend_api.dart'; @@ -3,7 +3,11 @@ import 'package:doublefeel_flutter/core/network/api/friend_api.dart';
3 import 'package:doublefeel_flutter/core/network/api/health_api.dart'; 3 import 'package:doublefeel_flutter/core/network/api/health_api.dart';
4 import 'package:doublefeel_flutter/core/network/api/pay_api.dart'; 4 import 'package:doublefeel_flutter/core/network/api/pay_api.dart';
5 import 'package:doublefeel_flutter/core/network/api/vip_api.dart'; 5 import 'package:doublefeel_flutter/core/network/api/vip_api.dart';
  6 +import 'package:doublefeel_flutter/core/services/health_raw_data_core_service.dart';
6 import 'package:doublefeel_flutter/core/services/user_state_service.dart'; 7 import 'package:doublefeel_flutter/core/services/user_state_service.dart';
  8 +import 'package:doublefeel_flutter/data/datasource/health/health_datasource_wrapper.dart';
  9 +import 'package:doublefeel_flutter/data/datasource/health/health_local_datasource.dart';
  10 +import 'package:doublefeel_flutter/data/datasource/health/health_remote_datasource.dart';
7 import 'package:doublefeel_flutter/data/models/friend/friend_models.dart'; 11 import 'package:doublefeel_flutter/data/models/friend/friend_models.dart';
8 import 'package:get/get.dart'; 12 import 'package:get/get.dart';
9 13
@@ -15,7 +19,11 @@ class FriendHomeBinding extends Bindings { @@ -15,7 +19,11 @@ class FriendHomeBinding extends Bindings {
15 () => TodayController( 19 () => TodayController(
16 Get.find<PayApi>(), 20 Get.find<PayApi>(),
17 Get.find<VipApi>(), 21 Get.find<VipApi>(),
18 - Get.find<HealthApi>(), 22 + HealthDataSourceWrapper(
  23 + remoteDataSource: RemoteHealthDataSource(Get.find<HealthApi>()),
  24 + localDataSource: LocalHealthDataSource(
  25 + coreService: Get.find<HealthRawDataCoreService>()),
  26 + ),
19 Get.find<FriendApi>(), 27 Get.find<FriendApi>(),
20 Get.find<UserStateService>(), 28 Get.find<UserStateService>(),
21 friendInfo: args, 29 friendInfo: args,
@@ -5,7 +5,11 @@ import 'package:doublefeel_flutter/core/network/api/pay_api.dart'; @@ -5,7 +5,11 @@ import 'package:doublefeel_flutter/core/network/api/pay_api.dart';
5 import 'package:doublefeel_flutter/core/network/api/theme_api.dart'; 5 import 'package:doublefeel_flutter/core/network/api/theme_api.dart';
6 import 'package:doublefeel_flutter/core/network/api/user_api.dart'; 6 import 'package:doublefeel_flutter/core/network/api/user_api.dart';
7 import 'package:doublefeel_flutter/core/network/api/vip_api.dart'; 7 import 'package:doublefeel_flutter/core/network/api/vip_api.dart';
  8 +import 'package:doublefeel_flutter/core/services/health_raw_data_core_service.dart';
8 import 'package:doublefeel_flutter/core/services/user_state_service.dart'; 9 import 'package:doublefeel_flutter/core/services/user_state_service.dart';
  10 +import 'package:doublefeel_flutter/data/datasource/health/health_datasource_wrapper.dart';
  11 +import 'package:doublefeel_flutter/data/datasource/health/health_local_datasource.dart';
  12 +import 'package:doublefeel_flutter/data/datasource/health/health_remote_datasource.dart';
9 import 'package:get/get.dart'; 13 import 'package:get/get.dart';
10 14
11 import '../../friends/controllers/friends_controller.dart'; 15 import '../../friends/controllers/friends_controller.dart';
@@ -21,7 +25,11 @@ class HomeBinding extends Bindings { @@ -21,7 +25,11 @@ class HomeBinding extends Bindings {
21 () => TodayController( 25 () => TodayController(
22 Get.find<PayApi>(), 26 Get.find<PayApi>(),
23 Get.find<VipApi>(), 27 Get.find<VipApi>(),
24 - Get.find<HealthApi>(), 28 + HealthDataSourceWrapper(
  29 + remoteDataSource: RemoteHealthDataSource(Get.find<HealthApi>()),
  30 + localDataSource: LocalHealthDataSource(
  31 + coreService: Get.find<HealthRawDataCoreService>()),
  32 + ),
25 Get.find<FriendApi>(), 33 Get.find<FriendApi>(),
26 Get.find<UserStateService>(), 34 Get.find<UserStateService>(),
27 ), 35 ),
@@ -18,6 +18,7 @@ import 'package:doublefeel_flutter/core/services/health_raw_data_core_service.da @@ -18,6 +18,7 @@ import 'package:doublefeel_flutter/core/services/health_raw_data_core_service.da
18 import 'package:doublefeel_flutter/core/services/thinking_data_service.dart'; 18 import 'package:doublefeel_flutter/core/services/thinking_data_service.dart';
19 import 'package:doublefeel_flutter/core/services/user_state_service.dart'; 19 import 'package:doublefeel_flutter/core/services/user_state_service.dart';
20 import 'package:doublefeel_flutter/core/util/app_toast.dart'; 20 import 'package:doublefeel_flutter/core/util/app_toast.dart';
  21 +import 'package:doublefeel_flutter/data/datasource/health/health_datasource.dart';
21 import 'package:doublefeel_flutter/data/local/user_account_storage.dart'; 22 import 'package:doublefeel_flutter/data/local/user_account_storage.dart';
22 import 'package:doublefeel_flutter/data/local/user_preferences_storage.dart'; 23 import 'package:doublefeel_flutter/data/local/user_preferences_storage.dart';
23 import 'package:doublefeel_flutter/data/models/friend/friend_models.dart'; 24 import 'package:doublefeel_flutter/data/models/friend/friend_models.dart';
@@ -68,7 +69,7 @@ class TodayController extends GetMaterialController { @@ -68,7 +69,7 @@ class TodayController extends GetMaterialController {
68 69
69 final PayApi _payApi; 70 final PayApi _payApi;
70 final VipApi _vipApi; 71 final VipApi _vipApi;
71 - final HealthApi _healthApi; 72 + final HealthDataSource _healthApi;
72 final FriendApi _friendApi; 73 final FriendApi _friendApi;
73 final UserStateService _userStateService; 74 final UserStateService _userStateService;
74 final HealthKitHostApi _hostApi = HealthKitHostApi(); 75 final HealthKitHostApi _hostApi = HealthKitHostApi();
1 import 'package:doublefeel_flutter/core/result/app_result.dart'; 1 import 'package:doublefeel_flutter/core/result/app_result.dart';
2 import 'package:doublefeel_flutter/data/models/health/activity/activity_burn_statistics_data_v2.dart'; 2 import 'package:doublefeel_flutter/data/models/health/activity/activity_burn_statistics_data_v2.dart';
  3 +import 'package:doublefeel_flutter/data/models/health/health_v2_models.dart';
3 import 'package:doublefeel_flutter/data/models/health/hrv/hrv_statistics_data.dart'; 4 import 'package:doublefeel_flutter/data/models/health/hrv/hrv_statistics_data.dart';
4 import 'package:doublefeel_flutter/data/models/health/sleep/sleep_statistics_data.dart'; 5 import 'package:doublefeel_flutter/data/models/health/sleep/sleep_statistics_data.dart';
5 6
@@ -22,4 +23,35 @@ abstract interface class HealthDataSource { @@ -22,4 +23,35 @@ abstract interface class HealthDataSource {
22 int startDate, { 23 int startDate, {
23 int? queryUserId, 24 int? queryUserId,
24 }); 25 });
  26 +
  27 + Future<AppResult<V2HealthData>> getV2HealthData(
  28 + int? queryUserId,
  29 + int intDate,
  30 + );
  31 +
  32 + Future<AppResult<V2StressScore>> getV2StressScore(
  33 + int? queryUserId,
  34 + int intDate,
  35 + );
  36 +
  37 + Future<AppResult<V2LatestHrvData>> getV2LatestHrv(
  38 + int? queryUserId,
  39 + int intDate,
  40 + );
  41 +
  42 + Future<AppResult<V2HrvTrendData>> getV2HrvTrend(
  43 + int? queryUserId,
  44 + int intDate,
  45 + );
  46 +
  47 + Future<AppResult<V2RealtimeStressData>> getV2RealtimeStress(
  48 + int? queryUserId,
  49 + int intDate,
  50 + );
  51 +
  52 + Future<AppResult<V2ActivityTarget>> getV2ActivityTarget(
  53 + int? queryUserId,
  54 + );
  55 +
  56 + Future<AppResult<V2HealthEverUploaded>> getHealthDataEverUploaded();
25 } 57 }
1 import 'package:doublefeel_flutter/core/result/app_result.dart'; 1 import 'package:doublefeel_flutter/core/result/app_result.dart';
2 import 'package:doublefeel_flutter/core/services/user_state_service.dart'; 2 import 'package:doublefeel_flutter/core/services/user_state_service.dart';
3 import 'package:doublefeel_flutter/data/models/health/activity/activity_burn_statistics_data_v2.dart'; 3 import 'package:doublefeel_flutter/data/models/health/activity/activity_burn_statistics_data_v2.dart';
  4 +import 'package:doublefeel_flutter/data/models/health/health_v2_models.dart';
4 import 'package:doublefeel_flutter/data/models/health/hrv/hrv_statistics_data.dart'; 5 import 'package:doublefeel_flutter/data/models/health/hrv/hrv_statistics_data.dart';
5 import 'package:doublefeel_flutter/data/models/health/sleep/sleep_statistics_data.dart'; 6 import 'package:doublefeel_flutter/data/models/health/sleep/sleep_statistics_data.dart';
6 import 'package:get/get_core/src/get_main.dart'; 7 import 'package:get/get_core/src/get_main.dart';
@@ -72,4 +73,74 @@ class HealthDataSourceWrapper implements HealthDataSource { @@ -72,4 +73,74 @@ class HealthDataSourceWrapper implements HealthDataSource {
72 queryUserId: queryUserId, 73 queryUserId: queryUserId,
73 ); 74 );
74 } 75 }
  76 +
  77 + @override
  78 + Future<AppResult<V2HealthEverUploaded>> getHealthDataEverUploaded() {
  79 + return localDataSource.getHealthDataEverUploaded();
  80 + }
  81 +
  82 + @override
  83 + Future<AppResult<V2ActivityTarget>> getV2ActivityTarget(int? queryUserId) {
  84 + HealthDataSource dataSource = remoteDataSource;
  85 + if (queryUserId == null || _myUserId == queryUserId) {
  86 + dataSource = localDataSource;
  87 + }
  88 +
  89 + return dataSource.getV2ActivityTarget(queryUserId);
  90 + }
  91 +
  92 + @override
  93 + Future<AppResult<V2HealthData>> getV2HealthData(
  94 + int? queryUserId, int intDate) {
  95 + HealthDataSource dataSource = remoteDataSource;
  96 + if (queryUserId == null || _myUserId == queryUserId) {
  97 + dataSource = localDataSource;
  98 + }
  99 +
  100 + return dataSource.getV2HealthData(queryUserId, intDate);
  101 + }
  102 +
  103 + @override
  104 + Future<AppResult<V2HrvTrendData>> getV2HrvTrend(
  105 + int? queryUserId, int intDate) {
  106 + HealthDataSource dataSource = remoteDataSource;
  107 + if (queryUserId == null || _myUserId == queryUserId) {
  108 + dataSource = localDataSource;
  109 + }
  110 +
  111 + return dataSource.getV2HrvTrend(queryUserId, intDate);
  112 + }
  113 +
  114 + @override
  115 + Future<AppResult<V2LatestHrvData>> getV2LatestHrv(
  116 + int? queryUserId, int intDate) {
  117 + HealthDataSource dataSource = remoteDataSource;
  118 + if (queryUserId == null || _myUserId == queryUserId) {
  119 + dataSource = localDataSource;
  120 + }
  121 +
  122 + return dataSource.getV2LatestHrv(queryUserId, intDate);
  123 + }
  124 +
  125 + @override
  126 + Future<AppResult<V2RealtimeStressData>> getV2RealtimeStress(
  127 + int? queryUserId, int intDate) {
  128 + HealthDataSource dataSource = remoteDataSource;
  129 + if (queryUserId == null || _myUserId == queryUserId) {
  130 + dataSource = localDataSource;
  131 + }
  132 +
  133 + return dataSource.getV2RealtimeStress(queryUserId, intDate);
  134 + }
  135 +
  136 + @override
  137 + Future<AppResult<V2StressScore>> getV2StressScore(
  138 + int? queryUserId, int intDate) {
  139 + HealthDataSource dataSource = remoteDataSource;
  140 + if (queryUserId == null || _myUserId == queryUserId) {
  141 + dataSource = localDataSource;
  142 + }
  143 +
  144 + return dataSource.getV2StressScore(queryUserId, intDate);
  145 + }
75 } 146 }
@@ -3,6 +3,7 @@ import 'package:doublefeel_flutter/core/result/app_result.dart'; @@ -3,6 +3,7 @@ import 'package:doublefeel_flutter/core/result/app_result.dart';
3 import 'package:doublefeel_flutter/core/services/health_raw_data_core_service.dart'; 3 import 'package:doublefeel_flutter/core/services/health_raw_data_core_service.dart';
4 import 'package:doublefeel_flutter/data/models/enums/app_enums.dart'; 4 import 'package:doublefeel_flutter/data/models/enums/app_enums.dart';
5 import 'package:doublefeel_flutter/data/models/health/activity/activity_burn_statistics_data_v2.dart'; 5 import 'package:doublefeel_flutter/data/models/health/activity/activity_burn_statistics_data_v2.dart';
  6 +import 'package:doublefeel_flutter/data/models/health/health_v2_models.dart';
6 import 'package:doublefeel_flutter/data/models/health/hrv/hrv_statistics_data.dart'; 7 import 'package:doublefeel_flutter/data/models/health/hrv/hrv_statistics_data.dart';
7 import 'package:doublefeel_flutter/data/models/health/sleep/sleep_statistics_data.dart'; 8 import 'package:doublefeel_flutter/data/models/health/sleep/sleep_statistics_data.dart';
8 9
@@ -140,4 +141,54 @@ class LocalHealthDataSource implements HealthDataSource { @@ -140,4 +141,54 @@ class LocalHealthDataSource implements HealthDataSource {
140 return AppFailure(AppUnknownError(error)); 141 return AppFailure(AppUnknownError(error));
141 } 142 }
142 } 143 }
  144 +
  145 + @override
  146 + Future<AppResult<V2HealthEverUploaded>> getHealthDataEverUploaded() async {
  147 + var data = V2HealthEverUploaded(flag: true);
  148 + return AppSuccess(data);
  149 + }
  150 +
  151 + @override
  152 + Future<AppResult<V2ActivityTarget>> getV2ActivityTarget(
  153 + int? queryUserId) async {
  154 + var data = V2ActivityTarget(
  155 + sleepTargetDuration: 480,
  156 + );
  157 + return AppSuccess(data);
  158 + }
  159 +
  160 + @override
  161 + Future<AppResult<V2HealthData>> getV2HealthData(
  162 + int? queryUserId, int intDate) async {
  163 + var data = V2HealthData(hrvAvg: 10);
  164 + return AppSuccess(data);
  165 + }
  166 +
  167 + @override
  168 + Future<AppResult<V2HrvTrendData>> getV2HrvTrend(
  169 + int? queryUserId, int intDate) async {
  170 + var data = V2HrvTrendData();
  171 + return AppSuccess(data);
  172 + }
  173 +
  174 + @override
  175 + Future<AppResult<V2LatestHrvData>> getV2LatestHrv(
  176 + int? queryUserId, int intDate) async {
  177 + var data = V2LatestHrvData();
  178 + return AppSuccess(data);
  179 + }
  180 +
  181 + @override
  182 + Future<AppResult<V2RealtimeStressData>> getV2RealtimeStress(
  183 + int? queryUserId, int intDate) async {
  184 + var data = V2RealtimeStressData();
  185 + return AppSuccess(data);
  186 + }
  187 +
  188 + @override
  189 + Future<AppResult<V2StressScore>> getV2StressScore(
  190 + int? queryUserId, int intDate) async {
  191 + var data = V2StressScore(state: 1, comprehensiveScore: 18);
  192 + return AppSuccess(data);
  193 + }
143 } 194 }
1 import 'package:doublefeel_flutter/core/network/api/health_api.dart'; 1 import 'package:doublefeel_flutter/core/network/api/health_api.dart';
2 import 'package:doublefeel_flutter/core/result/app_result.dart'; 2 import 'package:doublefeel_flutter/core/result/app_result.dart';
3 import 'package:doublefeel_flutter/data/models/health/activity/activity_burn_statistics_data_v2.dart'; 3 import 'package:doublefeel_flutter/data/models/health/activity/activity_burn_statistics_data_v2.dart';
  4 +import 'package:doublefeel_flutter/data/models/health/health_v2_models.dart';
4 import 'package:doublefeel_flutter/data/models/health/hrv/hrv_statistics_data.dart'; 5 import 'package:doublefeel_flutter/data/models/health/hrv/hrv_statistics_data.dart';
5 import 'package:doublefeel_flutter/data/models/health/sleep/sleep_statistics_data.dart'; 6 import 'package:doublefeel_flutter/data/models/health/sleep/sleep_statistics_data.dart';
6 7
@@ -50,4 +51,56 @@ class RemoteHealthDataSource implements HealthDataSource { @@ -50,4 +51,56 @@ class RemoteHealthDataSource implements HealthDataSource {
50 queryUserId: queryUserId, 51 queryUserId: queryUserId,
51 ); 52 );
52 } 53 }
  54 +
  55 + @override
  56 + Future<AppResult<V2HealthData>> getV2HealthData(
  57 + int? queryUserId,
  58 + int intDate,
  59 + ) {
  60 + return _healthApi.getV2HealthData(queryUserId, intDate);
  61 + }
  62 +
  63 + @override
  64 + Future<AppResult<V2StressScore>> getV2StressScore(
  65 + int? queryUserId,
  66 + int intDate,
  67 + ) {
  68 + return _healthApi.getV2StressScore(queryUserId, intDate);
  69 + }
  70 +
  71 + @override
  72 + Future<AppResult<V2LatestHrvData>> getV2LatestHrv(
  73 + int? queryUserId,
  74 + int intDate,
  75 + ) {
  76 + return _healthApi.getV2LatestHrv(queryUserId, intDate);
  77 + }
  78 +
  79 + @override
  80 + Future<AppResult<V2HrvTrendData>> getV2HrvTrend(
  81 + int? queryUserId,
  82 + int intDate,
  83 + ) {
  84 + return _healthApi.getV2HrvTrend(queryUserId, intDate);
  85 + }
  86 +
  87 + @override
  88 + Future<AppResult<V2RealtimeStressData>> getV2RealtimeStress(
  89 + int? queryUserId,
  90 + int intDate,
  91 + ) {
  92 + return _healthApi.getV2RealtimeStress(queryUserId, intDate);
  93 + }
  94 +
  95 + @override
  96 + Future<AppResult<V2ActivityTarget>> getV2ActivityTarget(
  97 + int? queryUserId,
  98 + ) {
  99 + return _healthApi.getV2ActivityTarget(queryUserId);
  100 + }
  101 +
  102 + @override
  103 + Future<AppResult<V2HealthEverUploaded>> getHealthDataEverUploaded() {
  104 + return _healthApi.getHealthDataEverUploaded();
  105 + }
53 } 106 }