AI_Drawing/lib/tools/home/home_model.dart
2024-06-03 15:30:15 +08:00

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