import 'package:path/path.dart' as path; import 'package:sino_med_cloud/core/utils/logger.dart'; import '../../../core/constants/api_constants.dart'; import '../../../core/network/dio_client.dart'; import '../data/today_overview_model.dart'; import '../data/today_patient_model.dart'; import '../data/today_wait_model.dart'; class WorkBenchService { // 获取今日概况数据 static Future getTodayOverview() async { try { final response = await DioClient.get>( path.join(ApiConstants.baseUrl, ApiConstants.getTodayOverview), fromJsonT: (json) => json as Map, ); if (response.success && response.code == 20000) { AppLogger.d('获取今日概况成功: ${response.data}'); final jsonData = response.data!; // 解析为 TodayOverviewModel final todayOverviewModel = TodayOverviewModel.fromJson(jsonData); return todayOverviewModel; } else { final errorMsg = response.msg ?? '获取今日概况失败'; AppLogger.d('获取今日概况失败: $errorMsg'); throw Exception(errorMsg); } } catch (e) { AppLogger.e('获取今日概况错误', e); rethrow; } } // 获取今日代办数据 static Future getTodayWait() async { try { final response = await DioClient.get>( path.join(ApiConstants.baseUrl, ApiConstants.getTodayWait), fromJsonT: (json) => json as Map, ); if (response.success && response.code == 20000) { AppLogger.d('获取今日代办成功: ${response.data}'); final jsonData = response.data!; // 解析为 TodayOverviewModel final todayOverviewModel = TodayWaitModel.fromJson(jsonData); return todayOverviewModel; } else { final errorMsg = response.msg ?? '获取今日代办失败'; AppLogger.d('获取今日代办失败: $errorMsg'); throw Exception(errorMsg); } } catch (e) { AppLogger.e('获取今日代办错误', e); rethrow; } } // 获取今日患者数据 static Future> getTodayPatient({ required int limit, required int offset, String? search, String? nameOrMobile }) async { try { // 构建查询参数 final queryParameters = { 'limit': limit, 'offset': offset, }; if (search != null && search.isNotEmpty) { queryParameters['search'] = search; } if (nameOrMobile != null && nameOrMobile.isNotEmpty) { queryParameters['name_or_mobile'] = nameOrMobile; } final response = await DioClient.getList( path.join(ApiConstants.baseUrl, ApiConstants.getTodayPatient), fromJsonT: (json) => TodayPatientModel.fromJson(json as Map), queryParameters: queryParameters, ); if (response.success && response.code == 20000) { AppLogger.d('获取今日患者成功,共 ${response.data.count} 条,返回 ${response.data.results.length} 条'); return response.data.results; } else { final errorMsg = response.msg ?? '获取今日患者失败'; AppLogger.d('获取今日患者失败: $errorMsg'); throw Exception(errorMsg); } } catch (e) { AppLogger.e('获取今日患者错误', e); rethrow; } } }