FondleTalk/lib/tools/login/login_model.dart
2024-07-28 17:43:50 +08:00

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}");
});
}
}