mine_service.dart 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import 'package:path/path.dart' as path;
  2. import '../../../base/common_response.dart';
  3. import '../../../core/constants/api_constants.dart';
  4. import '../../../core/network/dio_client.dart';
  5. import '../../../core/storage/local_storage.dart';
  6. import '../../../core/utils/logger.dart';
  7. class MineService {
  8. static Future<BaseCommonResponse> logout({
  9. required String loginSystem
  10. }) async {
  11. try {
  12. final parame = {
  13. "login_system": loginSystem
  14. };
  15. AppLogger.d('退出登录请求参数: $parame');
  16. final response = await DioClient.post<Map<String, dynamic>>(
  17. path.join(ApiConstants.baseUrl, ApiConstants.logout),
  18. fromJsonT: (json) => json as Map<String, dynamic>,
  19. data: parame,
  20. );
  21. if (response.success && response.code == 20000) {
  22. AppLogger.d('退出登录成功');
  23. // 退出登录成功后,清除本地 Token 和用户信息
  24. await LocalStorage.removeToken();
  25. await LocalStorage.removeUserInfo();
  26. await LocalStorage.removeInstitutionInfo();
  27. return response;
  28. } else {
  29. final errorMsg = response.msg ?? '退出登录失败';
  30. AppLogger.d('退出登录失败: $errorMsg');
  31. throw Exception(errorMsg);
  32. }
  33. } catch (e) {
  34. AppLogger.e('退出登录错误', e);
  35. rethrow;
  36. }
  37. }
  38. }