141 lines
4.1 KiB
Dart
141 lines
4.1 KiB
Dart
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<void> getServerList() async {
|
|
RequestCenter.instance.requestPlay(NetworkConfig.getServerList, {}, (BaseEntity dataEntity) {
|
|
if (dataEntity.code == 0) {
|
|
Map<String, dynamic> 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<void> getAppConfig() async {
|
|
RequestCenter.instance.requestPlay(NetworkConfig.getAppConfig, {}, (BaseEntity dataEntity) {
|
|
if (dataEntity.code == 0) {
|
|
Map<String, dynamic> 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<void> 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<void> userLogin() async {
|
|
RequestCenter.instance.requestPlay(NetworkConfig.userLogin, {"LoginType": 101, "UserName": NetworkConfig.deviceID}, (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': "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()));
|
|
}
|
|
}
|