import 'package:get/get.dart'; import 'package:school_asignment_app/common/job/user_info.dart'; import 'package:school_asignment_app/common/job/user_info_detail.dart'; import 'package:school_asignment_app/common/utils/storage.dart'; import 'package:school_asignment_app/common/store/app_storage_key.dart'; import 'package:school_asignment_app/routes/app_pages.dart'; class UserStore extends GetxController { static UserStore get to => Get.find(); /// 是否登录 String? token; String? xToken; /// 用户Token及过期时间信息 Rx userInfo = Rx(null); /// 用户详细信息 Rx userDetailInfo = Rx(null); UserStore init() { token = StorageService.to.read(AppStorageKey.token.value); xToken = StorageService.to.read(AppStorageKey.xToken.value); try { userInfo.value = StorageService.to.read(AppStorageKey.userInfo.value); userDetailInfo.value = StorageService.to.read(AppStorageKey.userDetailInfo.value); } catch (err) { StorageService.to.remove(AppStorageKey.userInfo.value); StorageService.to.remove(AppStorageKey.userDetailInfo.value); } if ((token?.isNotEmpty ?? false) && userInfo.value != null) { } else { Get.toNamed(Routes.login); } return this; } /// 保存 token void setToken(String token) { this.token = token; StorageService.to.write(AppStorageKey.token.value, token); } /// 更新Xtoken的匙 void setXToken(String xtoken) { xToken = xtoken; StorageService.to.write(AppStorageKey.xToken.value, xtoken); } /// 保存 用户信息 void setUserInfo(UserInfo info) { userInfo.value = info; StorageService.to.write(AppStorageKey.userInfo.value, info); } /// 保存 用户信息 void setUserDetailInfo(UserInfoDetail info) { userDetailInfo.value = info; StorageService.to.write(AppStorageKey.userDetailInfo.value, info); } void erase() { userInfo.value = null; userDetailInfo.value = null; token = null; xToken = null; } }