148 lines
4.4 KiB
Dart
148 lines
4.4 KiB
Dart
import 'dart:async';
|
|
import 'dart:convert';
|
|
|
|
import 'package:aiplot/bean/login_bean.dart';
|
|
import 'package:aiplot/network/NetworkConfig.dart';
|
|
import 'package:aiplot/network/RequestCenter.dart';
|
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
|
|
import '../../bean/levitating_ball_pop_bean.dart';
|
|
import '../../bean/popout_bean.dart';
|
|
import '../../bean/user_bean.dart';
|
|
import '../../network/BaseEntity.dart';
|
|
|
|
class HomeModel {
|
|
StreamController streamController = StreamController.broadcast();
|
|
|
|
HomeModel() {
|
|
setup();
|
|
}
|
|
|
|
void setup() {
|
|
//初始化
|
|
}
|
|
|
|
//登录
|
|
/// loginType 0 普通用户名密码登录 1 手机 2 邮箱 3 微信 4 QQ 5 钉钉 6 谷歌 7 苹果 100 游客
|
|
/// phoneNum 手机号 | userName
|
|
/// password 密码(没有传"")
|
|
/// VerificationCode 验证码(verCode)
|
|
/// LoginInfos 第三方登录(token)
|
|
///
|
|
Future<void> userLogin(int loginType, String phoneNum, String password, String verCode, String token) async {
|
|
RequestCenter.instance.requestPlay(NetworkConfig.userLogin, {
|
|
"LoginType": loginType,
|
|
"UserName": phoneNum,
|
|
"Password": password,
|
|
"VerificationCode": verCode,
|
|
"LoginInfos": token,
|
|
}, (BaseEntity dataEntity) {
|
|
if (dataEntity.code == 0) {
|
|
Map<String, dynamic> json = dataEntity.data;
|
|
LoginBean data = LoginBean.fromJson(json);
|
|
|
|
NetworkConfig.userId = data.UserId.toString();
|
|
NetworkConfig.userName = data.UserName.toString();
|
|
if (data.Token != null && data.Token != "") {
|
|
NetworkConfig.token = data.Token.toString();
|
|
NetworkConfig.userToken = data.Token?.split('.')[2] as String;
|
|
}
|
|
|
|
UserBean userBean = UserBean(NetworkConfig.userId, NetworkConfig.token, NetworkConfig.userToken);
|
|
setUser(userBean);
|
|
|
|
streamController.sink.add({
|
|
'code': "login", //有数据
|
|
'data': data,
|
|
});
|
|
} else {
|
|
streamController.sink.add({
|
|
'code': "-1", //
|
|
'data': dataEntity.code,
|
|
});
|
|
}
|
|
}, (ErrorEntity errorEntity) {
|
|
streamController.sink.add({
|
|
'code': "0", //无数据
|
|
'data': errorEntity.code,
|
|
});
|
|
});
|
|
}
|
|
|
|
//新用户弹框
|
|
Future<void> getNewUserPackage() async {
|
|
RequestCenter.instance.requestPlay(NetworkConfig.getNewUserPackage, {}, (BaseEntity dataEntity) {
|
|
if (dataEntity.code == 0) {
|
|
Map<String, dynamic> json = dataEntity.data;
|
|
LevitatingBallPopBean data = LevitatingBallPopBean.fromJson(json);
|
|
streamController.sink.add({
|
|
'code': "getNewUserPackage", //有数据
|
|
'data': data,
|
|
});
|
|
} else {
|
|
streamController.sink.add({
|
|
'code': "-1", //
|
|
'data': dataEntity.message,
|
|
});
|
|
}
|
|
}, (ErrorEntity errorEntity) {
|
|
streamController.sink.add({
|
|
'code': "0", //无数据
|
|
'data': errorEntity.message,
|
|
});
|
|
});
|
|
}
|
|
|
|
//观看广告
|
|
Future<void> lookAdReward() async {
|
|
RequestCenter.instance.requestPlay(NetworkConfig.lookAdReward, {}, (BaseEntity dataEntity) {
|
|
if (dataEntity.code == 0) {
|
|
streamController.sink.add({
|
|
'code': "lookAdReward", //有数据
|
|
'data': dataEntity.message,
|
|
});
|
|
} else {
|
|
streamController.sink.add({
|
|
'code': "-1", //
|
|
'data': dataEntity.message,
|
|
});
|
|
}
|
|
}, (ErrorEntity errorEntity) {
|
|
streamController.sink.add({
|
|
'code': "0", //无数据
|
|
'data': errorEntity.message,
|
|
});
|
|
});
|
|
}
|
|
|
|
//弹框
|
|
Future<void> getPopoutList() async {
|
|
RequestCenter.instance.requestPlay(NetworkConfig.getPopoutList, {}, (BaseEntity dataEntity) {
|
|
if (dataEntity.code == 0) {
|
|
List<PopoutBean> data = (dataEntity.data as List<dynamic>).map((e) => PopoutBean.fromJson(e as Map<String, dynamic>)).toList();
|
|
streamController.sink.add({
|
|
'code': "getPopoutList", //有数据
|
|
'data': data,
|
|
});
|
|
} else {
|
|
streamController.sink.add({
|
|
'code': "-1", //
|
|
'data': dataEntity.message,
|
|
});
|
|
}
|
|
}, (ErrorEntity errorEntity) {
|
|
streamController.sink.add({
|
|
'code': "0", //无数据
|
|
'data': errorEntity.message,
|
|
});
|
|
});
|
|
}
|
|
|
|
|
|
//保存用户登录验签
|
|
setUser(UserBean bean) async {
|
|
SharedPreferences prefs = await SharedPreferences.getInstance();
|
|
prefs.setString("UserBean", jsonEncode(bean.toJson()));
|
|
}
|
|
}
|