| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- 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<TodayOverviewModel> getTodayOverview() async {
- try {
- final response = await DioClient.get<Map<String, dynamic>>(
- path.join(ApiConstants.baseUrl, ApiConstants.getTodayOverview),
- fromJsonT: (json) => json as Map<String, dynamic>,
- );
- 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<TodayWaitModel> getTodayWait() async {
- try {
- final response = await DioClient.get<Map<String, dynamic>>(
- path.join(ApiConstants.baseUrl, ApiConstants.getTodayWait),
- fromJsonT: (json) => json as Map<String, dynamic>,
- );
- 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<List<TodayPatientModel>> getTodayPatient({
- required int limit,
- required int offset,
- String? search,
- String? nameOrMobile
- }) async {
- try {
- // 构建查询参数
- final queryParameters = <String, dynamic>{
- '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<TodayPatientModel>(
- path.join(ApiConstants.baseUrl, ApiConstants.getTodayPatient),
- fromJsonT: (json) => TodayPatientModel.fromJson(json as Map<String, dynamic>),
- 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;
- }
- }
- }
|