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 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 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 getNewUserPackage() async { RequestCenter.instance.requestPlay(NetworkConfig.getNewUserPackage, {}, (BaseEntity dataEntity) { if (dataEntity.code == 0) { Map 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 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 getPopoutList() async { RequestCenter.instance.requestPlay(NetworkConfig.getPopoutList, {}, (BaseEntity dataEntity) { if (dataEntity.code == 0) { List data = (dataEntity.data as List).map((e) => PopoutBean.fromJson(e as Map)).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())); } }