mine_service.dart 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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. fromJsonT: (json) => json as Map<String, dynamic>,
  22. data: parame,
  23. );
  24. if (response.success && response.code == 20000) {
  25. AppLogger.d('退出登录成功');
  26. // 退出登录成功后,清除本地 Token 和用户信息
  27. await LocalStorage.removeToken();
  28. await LocalStorage.removeUserInfo();
  29. await LocalStorage.removeInstitutionInfo();
  30. // 创建 QuitModel
  31. final quitModel = QuitModel(
  32. code: response.code,
  33. success: response.success,
  34. msg: response.msg ?? '退出成功',
  35. );
  36. return quitModel;
  37. } else {
  38. final errorMsg = response.msg ?? '退出登录失败';
  39. AppLogger.d('退出登录失败: $errorMsg');
  40. throw Exception(errorMsg);
  41. }
  42. } catch (e) {
  43. AppLogger.e('退出登录错误', e);
  44. rethrow;
  45. }
  46. }
  47. }