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

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