@@ -107,9 +107,34 @@ class HomePage extends StatelessWidget { | |||||
child: Text('打开日志视图'), | child: Text('打开日志视图'), | ||||
), | ), | ||||
RaisedButton( | |||||
onPressed: (){ | |||||
// NetUtil.request('/api/v1/mod', params: {'ids': [6] } ,method: NetMethod.POST, | |||||
// onSuccess: (params){ | |||||
// Logger.log("onSuccess#$params"); | |||||
// }, | |||||
// onCache: (params){ | |||||
// Logger.log("onCache#$params"); | |||||
// }); | |||||
testPost(); | |||||
}, | |||||
child: Text('测试接口'), | |||||
), | |||||
], | ], | ||||
), | ), | ||||
), | ), | ||||
); | ); | ||||
} | } | ||||
void testPost() async{ | |||||
var cached = await NetUtil.getRequestCachedData( '/api/v1/mod', params: {'ids': [7] }); | |||||
print("cahced ${cached?.toString()}"); | |||||
var param = await NetUtil.post('/api/v1/mod', params: {'ids': [7] }, method: NetMethod.POST); | |||||
print('apapapsdjfdsjf: ${param?.toString()}'); | |||||
} | |||||
} | } |
@@ -1,3 +1,4 @@ | |||||
import 'package:zhiying_comm/util/empty_util.dart'; | |||||
/// | /// | ||||
/// 用户信息类 | /// 用户信息类 | ||||
@@ -10,12 +11,10 @@ class UserInfoModel { | |||||
List<String> perms; | List<String> perms; | ||||
String registerInviteCodeEnable; | String registerInviteCodeEnable; | ||||
UserInfoModel( | |||||
{this.token, | |||||
this.userId, | |||||
this.username, | |||||
this.perms, | |||||
this.registerInviteCodeEnable}); | |||||
// 获取模糊手机号码 | |||||
get blurMobile => !EmptyUtil.isEmpty(mobile) ? mobile.length == 11 ? '${mobile.substring(0, 3)}****${mobile.substring(7, mobile.length)}' : mobile : mobile; | |||||
UserInfoModel({this.token, this.userId, this.username, this.perms, this.registerInviteCodeEnable}); | |||||
UserInfoModel.fromJson(Map<String, dynamic> json) { | UserInfoModel.fromJson(Map<String, dynamic> json) { | ||||
token = json['token']; | token = json['token']; | ||||
@@ -1,35 +1,50 @@ | |||||
import 'dart:convert'; | |||||
import 'package:flutter/material.dart'; | import 'package:flutter/material.dart'; | ||||
import 'package:zhiying_comm/models/user/user_info_model.dart'; | import 'package:zhiying_comm/models/user/user_info_model.dart'; | ||||
import 'package:zhiying_comm/util/global_config.dart'; | |||||
import 'package:zhiying_comm/util/log/let_log.dart'; | |||||
import 'package:zhiying_comm/util/shared_prefe_util.dart'; | |||||
/// | /// | ||||
/// 用户信息 | |||||
/// 用户信息Provider | |||||
/// | /// | ||||
class UserInfoNotifier with ChangeNotifier { | class UserInfoNotifier with ChangeNotifier { | ||||
/// 用户信息 | |||||
UserInfoModel _userInfo; | UserInfoModel _userInfo; | ||||
/// 初始化,是否需要读取缓存信息? | |||||
UserInfoNotifier(); | |||||
/// 更新用户数据 | /// 更新用户数据 | ||||
void setUserInfo(UserInfoModel loginUser) async { | void setUserInfo(UserInfoModel loginUser) async { | ||||
print('${loginUser.toString()}'); | print('${loginUser.toString()}'); | ||||
this._userInfo = loginUser; | this._userInfo = loginUser; | ||||
// 缓存数据 TODO | |||||
/// token | |||||
// 缓存数据 | |||||
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())); | |||||
notifyListeners(); | |||||
} | } | ||||
/// 退出登陆 | /// 退出登陆 | ||||
void unLogin() { | |||||
void unLogin() async { | |||||
this._userInfo = null; | this._userInfo = null; | ||||
// 清除缓存数据 TODO | |||||
// 清除缓存数据 | |||||
await SharedPreferencesUtil.setStringValue(GlobalConfig.SHARED_KEY_TOKEN, ''); | |||||
await SharedPreferencesUtil.setStringValue(GlobalConfig.SHARED_KEY_MOBILE, ''); | |||||
await SharedPreferencesUtil.setStringValue(GlobalConfig.SHARED_KEY_USER_INFO, ''); | |||||
notifyListeners(); | |||||
} | } | ||||
/// 获取登陆数据 | /// 获取登陆数据 | ||||
UserInfoModel getUserInfoModel() { | |||||
Future<UserInfoModel> getUserInfoModel() async { | |||||
if (null != _userInfo) { | if (null != _userInfo) { | ||||
return _userInfo; | return _userInfo; | ||||
} | } | ||||
// TODO 需要读取缓存的数据? | |||||
return null; | |||||
try { | |||||
String userInfoJson = await SharedPreferencesUtil.getStringValue(GlobalConfig.SHARED_KEY_USER_INFO); | |||||
_userInfo = UserInfoModel.fromJson(jsonDecode(userInfoJson)); | |||||
} catch (e) { | |||||
Logger.log(e); | |||||
} | |||||
return _userInfo; | |||||
} | } | ||||
} | } |
@@ -3,6 +3,17 @@ class GlobalConfig { | |||||
static final String HTTP_RESPONSE_KEY_CODE = 'code'; | static final String HTTP_RESPONSE_KEY_CODE = 'code'; | ||||
static final String HTTP_RESPONSE_KEY_MSG = 'msg'; | static final String HTTP_RESPONSE_KEY_MSG = 'msg'; | ||||
static final String HTTP_RESPONSE_KEY_DATA = 'data'; | static final String HTTP_RESPONSE_KEY_DATA = 'data'; | ||||
/// 成功返回的CODE值 | /// 成功返回的CODE值 | ||||
static final int RESPONSE_SUCCESS_CODE = 1; | static final int RESPONSE_SUCCESS_CODE = 1; | ||||
/// ====================== Shared_prefe_key ====================== /// | |||||
/// 用户token | |||||
static final String SHARED_KEY_TOKEN = 'sp_token'; | |||||
/// 用户手机号码 | |||||
static final String SHARED_KEY_MOBILE = 'sp_mobile'; | |||||
/// 用户json | |||||
static final String SHARED_KEY_USER_INFO = 'sp_userinfo'; | |||||
} | } |
@@ -1,5 +1,6 @@ | |||||
import 'package:dio/dio.dart'; | import 'package:dio/dio.dart'; | ||||
import 'package:dio/adapter.dart'; | import 'package:dio/adapter.dart'; | ||||
import 'package:provider/provider.dart'; | |||||
import 'package:zhiying_comm/util/empty_util.dart'; | import 'package:zhiying_comm/util/empty_util.dart'; | ||||
import 'dart:io'; | import 'dart:io'; | ||||
import 'dart:ui'; | import 'dart:ui'; | ||||
@@ -235,11 +236,9 @@ class NetUtil { | |||||
// secret_key | // secret_key | ||||
params['secret_key'] = setting['secret_key']; | params['secret_key'] = setting['secret_key']; | ||||
// token | |||||
String token = setting['token']; | |||||
if (token != null && | |||||
token != '' && | |||||
(!params.containsKey('token') || params['token'] == '')) { | |||||
// token 读取SP缓存中的用户token | |||||
String token = await SharedPreferencesUtil.getStringValue(GlobalConfig.SHARED_KEY_TOKEN); | |||||
if(!EmptyUtil.isEmpty(token)){ | |||||
params['token'] = token; | params['token'] = token; | ||||
} | } | ||||
@@ -2,6 +2,7 @@ import 'dart:convert'; | |||||
import 'package:shared_preferences/shared_preferences.dart'; | import 'package:shared_preferences/shared_preferences.dart'; | ||||
import 'package:zhiying_comm/util/empty_util.dart'; | import 'package:zhiying_comm/util/empty_util.dart'; | ||||
import 'package:zhiying_comm/util/log/let_log.dart'; | |||||
class SharedPreferencesUtil { | class SharedPreferencesUtil { | ||||
static Future<Map<String, dynamic>> getNetCacheResult(String key) async { | static Future<Map<String, dynamic>> getNetCacheResult(String key) async { | ||||
@@ -11,7 +12,7 @@ class SharedPreferencesUtil { | |||||
// TODO need解密? | // TODO need解密? | ||||
if (!EmptyUtil.isEmpty(cacheResult)) { | if (!EmptyUtil.isEmpty(cacheResult)) { | ||||
Map<String, dynamic> map = json.decode(cacheResult); | Map<String, dynamic> map = json.decode(cacheResult); | ||||
if(!EmptyUtil.isEmpty(map)) { | |||||
if (!EmptyUtil.isEmpty(map)) { | |||||
return map; | return map; | ||||
} | } | ||||
} | } | ||||
@@ -27,4 +28,25 @@ class SharedPreferencesUtil { | |||||
} | } | ||||
return; | return; | ||||
} | } | ||||
static Future<bool> setStringValue(String key, String value) async { | |||||
if (!EmptyUtil.isEmpty(key) && !EmptyUtil.isEmpty(value)) { | |||||
Logger.log('key = ${key}, value = $value'); | |||||
SharedPreferences prefs = await SharedPreferences.getInstance(); | |||||
if (null != prefs) { | |||||
return prefs.setString(key, value); | |||||
} | |||||
} | |||||
return false; | |||||
} | |||||
static Future<String> getStringValue(String key, {String defaultVal = ''}) async { | |||||
if (!EmptyUtil.isEmpty(key)) { | |||||
SharedPreferences prefs = await SharedPreferences.getInstance(); | |||||
if (null != prefs && prefs.containsKey(key)) { | |||||
return prefs.getString(key); | |||||
} | |||||
} | |||||
return defaultVal; | |||||
} | |||||
} | } |
@@ -16,6 +16,7 @@ export 'util/widget_factory.dart'; | |||||
export 'util/router_util.dart'; | export 'util/router_util.dart'; | ||||
export 'util/log/let_log.dart'; | export 'util/log/let_log.dart'; | ||||
export 'util/empty_util.dart'; | export 'util/empty_util.dart'; | ||||
export 'util/global_config.dart'; | |||||
// 用户信息 | // 用户信息 | ||||
export 'models/user/user_info_model.dart'; | export 'models/user/user_info_model.dart'; | ||||