103 lines
2.9 KiB
Dart
103 lines
2.9 KiB
Dart
import 'dart:async';
|
|
|
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
import 'package:talk/network/NetworkConfig.dart';
|
|
import 'package:talk/network/RequestCenter.dart';
|
|
|
|
import '../../beans/login_bean.dart';
|
|
import '../../beans/user_info_bean.dart';
|
|
import '../../network/BaseEntity.dart';
|
|
|
|
class LoginModel {
|
|
StreamController streamController = StreamController.broadcast();
|
|
|
|
LoginModel() {
|
|
setup();
|
|
}
|
|
|
|
void setup() {
|
|
//初始化
|
|
}
|
|
|
|
///获取验证码
|
|
Future<void> sendPhoneNumber(phoneNumber) async {
|
|
RequestCenter.instance.request(NetworkConfig.sendPhoneNumber, {"phoneNumber": phoneNumber}, (BaseEntity dataEntity) {
|
|
print("dataEntity==${dataEntity.message}");
|
|
|
|
if (dataEntity.code == 0) {
|
|
streamController.sink.add({
|
|
'code': "sendPhoneNumber", //有数据
|
|
'data': dataEntity.message,
|
|
});
|
|
} else {
|
|
streamController.sink.add({
|
|
'code': "error", //
|
|
'data': dataEntity.message,
|
|
});
|
|
}
|
|
}, (ErrorEntity errorEntity) {
|
|
print("errorEntity==${errorEntity.message}");
|
|
});
|
|
}
|
|
|
|
///登录
|
|
Future<void> login(phoneNumber, verificationCode, loginType, token) async {
|
|
RequestCenter.instance.request(NetworkConfig.accountLogin, {
|
|
"phoneNumber": phoneNumber,
|
|
"verificationCode": verificationCode,
|
|
"loginType": loginType,
|
|
"token": token,
|
|
}, (BaseEntity dataEntity) async {
|
|
|
|
if (dataEntity.code == 0) {
|
|
// Map<String, dynamic> json = jsonDecode(dataEntity.data);
|
|
LoginBean loginBean = LoginBean.fromJson(dataEntity.data);
|
|
NetworkConfig.userId = loginBean.userId!.toString();
|
|
NetworkConfig.userName = loginBean.nickName!;
|
|
NetworkConfig.token = loginBean.token!;
|
|
|
|
//
|
|
final SharedPreferences prefs = await SharedPreferences.getInstance();
|
|
await prefs.setString('token', loginBean.token!);
|
|
|
|
getUserInfo();
|
|
|
|
streamController.sink.add({
|
|
'code': "login", //有数据
|
|
'data': dataEntity.message,
|
|
});
|
|
} else {
|
|
streamController.sink.add({
|
|
'code': "error", //
|
|
'data': dataEntity.message,
|
|
});
|
|
}
|
|
}, (ErrorEntity errorEntity) {
|
|
print("errorEntity==${errorEntity.message}");
|
|
});
|
|
}
|
|
|
|
///用户信息
|
|
Future<void> getUserInfo() async {
|
|
RequestCenter.instance.requestGet(NetworkConfig.getUserInfo, {}, (BaseEntity dataEntity) {
|
|
if (dataEntity.code == 0) {
|
|
UserInfoBean userInfoBean = UserInfoBean.fromJson(dataEntity.data);
|
|
NetworkConfig.userInfoBean = userInfoBean;
|
|
|
|
streamController.sink.add({
|
|
'code': "getUserInfo", //有数据
|
|
'data': userInfoBean,
|
|
});
|
|
} else {
|
|
streamController.sink.add({
|
|
'code': "error", //
|
|
'data': dataEntity.message,
|
|
});
|
|
}
|
|
}, (ErrorEntity errorEntity) {
|
|
print("errorEntity==${errorEntity.message}");
|
|
});
|
|
}
|
|
|
|
}
|