mine_service.dart 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import 'package:path/path.dart' as path;
  2. import '../../../core/constants/api_constants.dart';
  3. import '../../../core/network/dio_client.dart';
  4. import '../../../core/storage/local_storage.dart';
  5. import '../../../core/utils/logger.dart';
  6. import '../data/quit_model.dart';
  7. class MineService {
  8. static Future<QuitModel> logout({
  9. required String loginSystem
  10. }) async {
  11. try {
  12. // 在请求之前获取并打印 Token
  13. final token = await LocalStorage.getToken();
  14. AppLogger.d('退出登录 - 本地存储的 Token: $token');
  15. final parame = {
  16. "login_system": loginSystem
  17. };
  18. AppLogger.d('退出登录请求参数: $parame');
  19. final response = await DioClient.post<Map<String, dynamic>>(
  20. path.join(ApiConstants.baseUrl, ApiConstants.logout),
  21. data: parame,
  22. );
  23. if (response.statusCode == 200) {
  24. final data = response.data;
  25. if (data != null && data['code'] == 20000) {
  26. AppLogger.d('退出登录成功: $data');
  27. // 解析为 QuitModel
  28. final authModel = QuitModel.fromJson(data);
  29. return authModel;
  30. } else {
  31. final errorMsg = data?['message'] ?? '退出登录失败';
  32. AppLogger.d('退出登录失败: $errorMsg');
  33. throw Exception(errorMsg);
  34. }
  35. } else {
  36. AppLogger.d('退出登录请求错误: ${response.statusCode}, ${response.statusMessage}');
  37. throw Exception('请求失败: ${response.statusCode}');
  38. }
  39. } catch (e) {
  40. AppLogger.e('退出登录错误', e);
  41. rethrow;
  42. }
  43. }
  44. }