user_service.dart 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import 'dart:core';
  2. import 'package:plugin_platform/engine/sp/sp_util.dart';
  3. import 'package:shared/utils/event_bus.dart';
  4. import 'package:shared/utils/log_utils.dart';
  5. import 'package:shared/utils/util.dart';
  6. import '../constants/app_constant.dart';
  7. /// 用户相关的单例服务,保存了Token,UserProfile等信息
  8. class UserService {
  9. UserService();
  10. //用户登录Token
  11. String? token;
  12. //用户是否已经登录 - 可变字段
  13. bool haslogin = false;
  14. //用户详情信息 - 可变字段
  15. // Rx<HotelInfoEntity> hotelInfo = HotelInfoEntity();
  16. //极光推送的 registrationId - 可变字段
  17. String registrationId = '';
  18. //当前用户的未读消息数量
  19. int unreadNotificationsCount = 0;
  20. /// 设置全局的Token,同时更新 hasLogin 的值,赋值时机如下
  21. /*
  22. 1. 在登录或注册成功的时候赋值
  23. 2. 在main.dart中初始化的时候查询是否有Token,如果有的话需要赋值
  24. 3. 退出登录的时候需要赋值
  25. */
  26. void setToken(String? token) {
  27. this.token = token;
  28. if (Utils.isEmpty(token)) {
  29. haslogin = false;
  30. SPUtil.remove(AppConstant.storageToken);
  31. } else {
  32. haslogin = true;
  33. SPUtil.putString(AppConstant.storageToken, token!);
  34. }
  35. Log.d('UserService =========> 设置Token为:$token');
  36. }
  37. /// 处理退出登录之后的数据清除
  38. void handleLogoutParams() {
  39. SPUtil.remove(AppConstant.storageToken);
  40. haslogin = false;
  41. // hotelInfo = HotelInfoEntity();
  42. }
  43. void init() {
  44. String? token = SPUtil.getString(AppConstant.storageToken);
  45. Log.d('UserService - 查询SP token:$token 并赋值');
  46. setToken(token);
  47. }
  48. }