|
- import 'dart:async';
- import 'dart:convert';
-
- import 'package:flutter/material.dart';
- import 'package:flutter_alibc/flutter_alibc.dart';
- import 'package:zhiying_comm/models/user/user_info_model.dart';
- import 'package:zhiying_comm/util/empty_util.dart';
- import 'package:zhiying_comm/util/event_util/event_util.dart';
- import 'package:zhiying_comm/util/event_util/log_out.dart';
- import 'package:zhiying_comm/util/global_config.dart';
- import 'package:zhiying_comm/util/log/let_log.dart';
- import 'package:zhiying_comm/util/mob_util/mob_util.dart';
- import 'package:zhiying_comm/util/shared_prefe_util.dart';
- import 'package:zhiying_flutter_webview/zhiying_flutter_webview.dart';
-
- ///
- /// 用户信息Provider
- ///
- class UserInfoNotifier with ChangeNotifier {
- /// 用户信息
- static UserInfoModel _userInfo;
- static bool reFresh=false;
-
- static UserInfoModel get staitcUserInfo {
- return _userInfo;
- }
-
- UserInfoModel get userInfo {
- if (null == _userInfo) {
- getUserInfoModel().then((user) {
- if (user != null) {
- _userInfo = user;
- notifyListeners();
- }
- });
- }
- return _userInfo;
- }
-
- /// 更新淘宝授权
- void updateUserAuth(bool isAuth) {
- if (null == _userInfo) {
- getUserInfoModel().then((user) {
- if (user != null) {
- _userInfo = user;
- _userInfo.isTBAuth = isAuth;
- Logger.log('upate data TBAuth');
- notifyListeners();
- }
- });
- } else {
- _userInfo.isTBAuth = isAuth;
- Logger.log('upate data TBAuth');
- notifyListeners();
- }
- }
-
- /// 更新用户数据
- void setUserInfo(UserInfoModel loginUser) async {
- print('${loginUser.toString()}');
- _userInfo = loginUser;
- // 缓存数据
- await SharedPreferencesUtil.setStringValue(GlobalConfig.SHARED_KEY_TOKEN, loginUser.token);
- await SharedPreferencesUtil.setStringValue(GlobalConfig.SHARED_KEY_MOBILE, loginUser.mobile);
- await SharedPreferencesUtil.setStringValue(GlobalConfig.SHARED_KEY_USER_INFO, jsonEncode(loginUser.toJson()));
- FlutterAlibc.loginOut();
- // 设置H5的Token
- if(!EmptyUtil.isEmpty(loginUser?.token)) {
- String domain = await SharedPreferencesUtil.getStringValue(GlobalConfig.H5_DOMAIN);
- if (!EmptyUtil.isEmpty(domain)) {
- ZhiyingFlutterWebview.registLocalStore({'TOKEN_KEY': loginUser?.token}, [domain]);
- }
- }
- notifyListeners();
- }
-
- /// 退出登陆
- void unLogin() async {
- _userInfo = null;
- // 清除缓存数据
- await SharedPreferencesUtil.setStringValue(GlobalConfig.SHARED_KEY_TOKEN, '');
- await SharedPreferencesUtil.setStringValue(GlobalConfig.SHARED_KEY_MOBILE, '');
- await SharedPreferencesUtil.setStringValue(GlobalConfig.SHARED_KEY_USER_INFO, '');
- // 退出淘宝登录
- FlutterAlibc.loginOut();
- // 退出QQ登录
- MobUtil.cancelQQAuth();
- // 退出微信登录
- MobUtil.cancelWeChatAuth();
- // 清除H5 Token
- String domain = await SharedPreferencesUtil.getStringValue(GlobalConfig.H5_DOMAIN);
- if (!EmptyUtil.isEmpty(domain)) {
- ZhiyingFlutterWebview.registLocalStore({'TOKEN_KEY': ''}, [domain]);
- }
- if(!reFresh){
- reFresh = true;
- Timer(Duration(milliseconds: 1000), (){
- EventUtil.instance.fire(LogOut());
- });
- }
-
- notifyListeners();
- }
-
- /// 获取登陆数据
- Future<UserInfoModel> getUserInfoModel() async {
- if (null != _userInfo) {
- return _userInfo;
- }
- try {
- String userInfoJson = await SharedPreferencesUtil.getStringValue(GlobalConfig.SHARED_KEY_USER_INFO);
- if (userInfoJson == null || userInfoJson == '') {
- _userInfo = UserInfoModel();
- } else {
- _userInfo = UserInfoModel.fromJson(jsonDecode(userInfoJson));
- }
- } catch (e) {
- Logger.log(e);
- }
- return _userInfo;
- }
- }
|