import 'dart:async'; import 'dart:convert'; import 'package:aiplot/bean/app_config_bean.dart'; import 'package:aiplot/bean/server_bean.dart'; import 'package:aiplot/network/NetworkConfig.dart'; import 'package:aiplot/network/RequestCenter.dart'; import 'package:shared_preferences/shared_preferences.dart'; import '../bean/login_bean.dart'; import '../bean/user_bean.dart'; import '../network/BaseEntity.dart'; class StartModel { StreamController streamController = StreamController.broadcast(); StartModel() { setup(); } void setup() { //初始化 } //获取服务地址 Future getServerList() async { RequestCenter.instance.requestPlay(NetworkConfig.getServerList, {}, (BaseEntity dataEntity) { if (dataEntity.code == 0) { Map json = dataEntity.data; ServerBean data = ServerBean.fromJson(json); NetworkConfig.ServerDomain_Online = data.HissAiApiUrl!; NetworkConfig.payCenter = data.HissAiPayUrl!; streamController.sink.add({ 'code': "getServerList", //有数据 'data': "", }); } else { streamController.sink.add({ 'code': "-1", // 'data': dataEntity.code, }); } }, (ErrorEntity errorEntity) { streamController.sink.add({ 'code': "0", //无数据 'data': errorEntity.code, }); }); } //获取配置信息 Future getAppConfig() async { RequestCenter.instance.requestPlay(NetworkConfig.getAppConfig, {}, (BaseEntity dataEntity) { if (dataEntity.code == 0) { Map json = dataEntity.data; AppConfigBean data = AppConfigBean.fromJson(json); NetworkConfig.appConfigBean = data; streamController.sink.add({ 'code': "getAppConfig", //有数据 'data': "", }); } else { streamController.sink.add({ 'code': "-1", // 'data': dataEntity.code, }); } }, (ErrorEntity errorEntity) { streamController.sink.add({ 'code': "0", //无数据 'data': errorEntity.code, }); }); } //获取用户信息(验证用户token是否有效) Future getUserData() async { RequestCenter.instance.requestPlay(NetworkConfig.getUserData, {}, (BaseEntity dataEntity) { if (dataEntity.code == 0) { streamController.sink.add({ 'code': "getUserData", //验签有效 'data': "", }); } else { streamController.sink.add({ 'code': "userTokenExpire", //验签失败 'data': dataEntity.code, }); } }, (ErrorEntity errorEntity) { streamController.sink.add({ 'code': "0", //无数据 'data': errorEntity.code, }); }); } //登录 (游客) Future userLogin() async { RequestCenter.instance.requestPlay(NetworkConfig.userLogin, {"LoginType": 101, "UserName": NetworkConfig.deviceID}, (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': "visitorLogin", //有数据 'data': data, }); } else { streamController.sink.add({ 'code': "-1", // 'data': dataEntity.code, }); } }, (ErrorEntity errorEntity) { streamController.sink.add({ 'code': "0", //无数据 'data': errorEntity.code, }); }); } //保存用户登录验签 setUser(UserBean bean) async { SharedPreferences prefs = await SharedPreferences.getInstance(); prefs.setString("UserBean", jsonEncode(bean.toJson())); } }