From f435f195c83f9393ff4548c4dd09d149683c967b Mon Sep 17 00:00:00 2001 From: wyf <494641114@qq.com> Date: Wed, 16 Jul 2025 16:35:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=9D=A1=E7=9C=A0=E4=B9=A0?= =?UTF-8?q?=E6=83=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/mht_bluetooth_controller.dart | 55 ++++++++++++++++++- lib/pages/mh_page/new_mine_page.dart | 2 - lib/pages/mh_page/people_info.dart | 3 +- lib/pages/mh_page/smys.dart | 3 +- lib/pages/mh_page/test/WebviewTestModel.dart | 22 ++++++++ 5 files changed, 78 insertions(+), 7 deletions(-) diff --git a/lib/pages/mh_page/device/controller/mht_bluetooth_controller.dart b/lib/pages/mh_page/device/controller/mht_bluetooth_controller.dart index 02125d2..c8437a4 100644 --- a/lib/pages/mh_page/device/controller/mht_bluetooth_controller.dart +++ b/lib/pages/mh_page/device/controller/mht_bluetooth_controller.dart @@ -10,6 +10,7 @@ import 'package:vbvs_app/common/color/ServiceConstant.dart'; import 'package:vbvs_app/common/color/app_uri_status.dart'; import 'package:vbvs_app/common/util/DailyLogUtils.dart'; import 'package:vbvs_app/common/util/MyUtils.dart'; +import 'package:vbvs_app/common/util/requestWithLog.dart'; import 'package:vbvs_app/component/tool/TopSlideNotification.dart'; import 'package:vbvs_app/model/api_response.dart'; import 'package:vbvs_app/pages/mh_page/device/model/BlueToothDataModel.dart'; @@ -71,8 +72,6 @@ class MHTBlueToothController extends GetControllerEx { RxMap connect_wifi = {}.obs; RxString? cid = "".obs; - - void startStatusPolling() { updateDeviceStatus().then((res) { if (res.code == HttpStatusCodes.ok) { @@ -189,7 +188,7 @@ class MHTBlueToothController extends GetControllerEx { return res; } else { model.deviceDataStatus = []; - return ApiResponse(code:1, msg: "".tr); + return ApiResponse(code: 1, msg: "".tr); } } catch (e) { print("获取设备状态异常: $e"); @@ -257,6 +256,56 @@ class MHTBlueToothController extends GetControllerEx { } return ApiResponse(code: -1, msg: "未知错误".tr); } + + saveHabitData(sleepData) async { + String serviceAddress = ServiceConstant.service_address; + String serviceName = ServiceConstant.server_service; + String serviceApi = ServiceConstant.user_setting; + String type = "sleep_habit_${sleepData['mac']}"; + String queryUrl = "${serviceAddress}${serviceName}${serviceApi}"; + var data = { + "type": type, + "mac": sleepData['mac'], + "time": DateTime.now().millisecondsSinceEpoch, + "data": sleepData, + }; + await requestWithLog( + logTitle: "更新睡眠习惯", + method: MyHttpMethod.put, + queryUrl: queryUrl, + data: data, + ); + } + + Future loadHabitDataApi(String mac, {int time = 3}) async { + String serviceAddress = ServiceConstant.service_address; + String serviceName = ServiceConstant.server_service; + String serviceApi = ServiceConstant.user_setting; + String type = "sleep_habit_${mac}"; + String queryUrl = + "${serviceAddress}${serviceName}${serviceApi}?type=${type}"; + + // 使用 Future 来等待异步操作完成 + Map result = {}; + + await requestWithLog( + logTitle: "更新睡眠习惯", + method: MyHttpMethod.get, + queryUrl: queryUrl, + onSuccess: (res) { + ef.log("加载睡眠习惯成功: ${res.data}"); + result = res.data; // 将返回的数据存入 result + }, + onFailure: (res) { + ef.log("加载睡眠习惯失败: ${res.msg}"); + result = {}; // 如果失败,可以返回空的 Map + }, + ); + + return result; // 在 requestWithLog 完成之后返回 result + } + + //todo 解绑的时候删除自己所拥有的所有设备的睡眠习惯 } void safeShowNotification(String msg) { diff --git a/lib/pages/mh_page/new_mine_page.dart b/lib/pages/mh_page/new_mine_page.dart index 4744981..76609c9 100644 --- a/lib/pages/mh_page/new_mine_page.dart +++ b/lib/pages/mh_page/new_mine_page.dart @@ -1,5 +1,3 @@ -import 'dart:ffi'; - import 'package:ef/ef.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; diff --git a/lib/pages/mh_page/people_info.dart b/lib/pages/mh_page/people_info.dart index 58061d5..335ce64 100644 --- a/lib/pages/mh_page/people_info.dart +++ b/lib/pages/mh_page/people_info.dart @@ -136,7 +136,8 @@ class PeopleInfoPage extends GetView { textColor: Color(0XFF00C1AA)); MHTHomeController mhtHomeController = Get.find(); - mhtHomeController.getPersonList(); + await Future.delayed(Duration(seconds: 1)); + await mhtHomeController.getPersonList(); WebviewTestController webviewTestController = Get.find(); webviewTestController diff --git a/lib/pages/mh_page/smys.dart b/lib/pages/mh_page/smys.dart index 7369952..4d7b42b 100644 --- a/lib/pages/mh_page/smys.dart +++ b/lib/pages/mh_page/smys.dart @@ -177,7 +177,8 @@ class Smys extends GetView { decoration: BoxDecoration( border: Border( bottom: BorderSide( - color: const Color(0xFF929699), + color: Color(0xFF929699), + // color: Colors.red, width: 0.rpx), ), ), diff --git a/lib/pages/mh_page/test/WebviewTestModel.dart b/lib/pages/mh_page/test/WebviewTestModel.dart index eae4723..3764d82 100644 --- a/lib/pages/mh_page/test/WebviewTestModel.dart +++ b/lib/pages/mh_page/test/WebviewTestModel.dart @@ -14,6 +14,7 @@ import 'package:vbvs_app/common/util/MyUtils.dart'; import 'package:vbvs_app/common/util/requestWithLog.dart'; import 'package:vbvs_app/controller/user_info_controller.dart'; import 'package:vbvs_app/model/WebSocketMessage.dart'; +import 'package:vbvs_app/pages/mh_page/device/controller/mht_bluetooth_controller.dart'; import 'package:vbvs_app/pages/mh_page/homepage/controller/mht_home_controller.dart'; class WebviewTestModel { @@ -138,6 +139,27 @@ class WebviewTestController extends GetControllerEx { Get.toNamed("/mHTDeviceTypePage"); return true; }); + bridge.sdk.saveSleepHabit((args) async { + ef.log('更新睡眠习惯: $args[0]'); + try { + MHTBlueToothController blueToothController = Get.find(); + blueToothController.saveHabitData(args[0]); + } catch (e) { + ef.log("[更新睡眠习惯失败]:$e"); + } + return true; + }); + bridge.sdk.loadSleepHabit((args) async { + ef.log('查询睡眠习惯: $args[0]'); + try { + MHTBlueToothController blueToothController = Get.find(); + var sleepData = await blueToothController.loadHabitDataApi(args[0]); + return sleepData['data']; + } catch (e) { + ef.log("[查询睡眠习惯失败]:$e"); + } + return true; + }); }); } catch (e, s) { ef.log('$e,$s');