更新短信第二次登录报错的问题

This commit is contained in:
wyf
2025-06-18 09:20:11 +08:00
parent f3f3e4f73f
commit 81689d2fe8
4 changed files with 94 additions and 26 deletions

View File

@@ -47,6 +47,8 @@ class MHTHomeController extends GetControllerEx<MHTHomeModel> {
String wifiMac = "";
var sleepDays = [].obs;
var homeSleepDays = [].obs;
var selectedDayIndex = (6).obs;
@@ -426,4 +428,71 @@ class MHTHomeController extends GetControllerEx<MHTHomeModel> {
},
);
}
Future<void> getHomeSleeps(String? mac) async {
String serviceAddress = ServiceConstant.service_address;
String serviceName = ServiceConstant.server_service;
String serviceApi = ServiceConstant.sleep_report;
String queryUrl = "$serviceAddress$serviceName$serviceApi";
// 当前时间的毫秒时间戳
int timestamp = DateTime.now().millisecondsSinceEpoch;
// 拼接参数
List<String> queryParams = [];
if (mac != null && mac.isNotEmpty) {
queryParams.add("mac=$mac");
}
queryParams.add("time=$timestamp");
if (queryParams.isNotEmpty) {
queryUrl += "?${queryParams.join("&")}";
}
await requestWithLog(
logTitle: "请求睡眠信息列表",
method: MyHttpMethod.get,
queryUrl: queryUrl,
onSuccess: (res) {
if (res.data != null && res.data is List) {
List<dynamic> rawList = res.data;
List<Map<String, dynamic>> processedList =
rawList.map<Map<String, dynamic>>((item) {
Map<String, dynamic> map = Map<String, dynamic>.from(item);
// 取出 time
String? timeStr = map['time'];
int? timeMillis = timeStr != null ? int.tryParse(timeStr) : null;
if (timeMillis != null) {
DateTime dateTime =
DateTime.fromMillisecondsSinceEpoch(timeMillis);
// 格式化 week 和 date
String week = MyUtils.formatDateTimeWeek(dateTime);
String date = MyUtils.formatDateTimeDay(dateTime);
// 添加到 map 中
map['week'] = week;
map['date'] = date;
}
return map;
}).toList();
// 赋值给 sleepDays
homeSleepDays.value = processedList;
} else {
// 为空时直接赋空数组
homeSleepDays.value = [];
}
// 更新UI
updateAll();
},
onFailure: (res) {
EasyDartModule.logger.warning("请求睡眠信息列表失败: ${res.msg}");
},
);
}
}