import 'package:path/path.dart' as path; import '../../../core/constants/api_constants.dart'; import '../../../core/network/dio_client.dart'; import '../../../core/storage/local_storage.dart'; import '../../../core/utils/logger.dart'; import '../data/quit_model.dart'; class MineService { static Future logout({ required String loginSystem }) async { try { // 在请求之前获取并打印 Token final token = await LocalStorage.getToken(); AppLogger.d('退出登录 - 本地存储的 Token: $token'); final parame = { "login_system": loginSystem }; AppLogger.d('退出登录请求参数: $parame'); final response = await DioClient.post>( path.join(ApiConstants.baseUrl, ApiConstants.logout), data: parame, ); if (response.statusCode == 200) { final data = response.data; if (data != null && data['code'] == 20000) { AppLogger.d('退出登录成功: $data'); // 退出登录成功后,清除本地 Token 和用户信息 await LocalStorage.removeToken(); await LocalStorage.removeUserInfo(); await LocalStorage.removeInstitutionInfo(); // 解析为 QuitModel final authModel = QuitModel.fromJson(data); return authModel; } else { final errorMsg = data?['message'] ?? '退出登录失败'; AppLogger.d('退出登录失败: $errorMsg'); throw Exception(errorMsg); } } else { AppLogger.d('退出登录请求错误: ${response.statusCode}, ${response.statusMessage}'); throw Exception('请求失败: ${response.statusCode}'); } } catch (e) { AppLogger.e('退出登录错误', e); rethrow; } } }