87 lines
2.8 KiB
Dart
87 lines
2.8 KiB
Dart
import 'dart:async';
|
|
import 'dart:io';
|
|
import 'package:get/get.dart';
|
|
import 'package:star_lock/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_entity.dart';
|
|
import 'package:star_lock/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_state.dart';
|
|
import '../../../../network/api_repository.dart';
|
|
import '../../../../tools/baseGetXController.dart';
|
|
import '../../../tools/eventBusEventManage.dart';
|
|
import '../../../tools/storage.dart';
|
|
import 'minePersonGetUploadFileInfo_entity.dart';
|
|
|
|
class MinePersonInfoLogic extends BaseGetXController {
|
|
MinePersonInfoState state = MinePersonInfoState();
|
|
|
|
//用户信息
|
|
Future<void> getUserInfoRequest() async {
|
|
MinePersonInfoEntity entity = await ApiRepository.to.getUserInfo();
|
|
if (entity.errorCode!.codeIsSuccessful) {
|
|
state.mineInfoData.value = entity.data!;
|
|
state.headUrl.value = state.mineInfoData.value.headUrl!;
|
|
}
|
|
}
|
|
|
|
//上传头像 先获取upToken 再调用updateUserInfo
|
|
Future<void> getUpTokenRequest(String filename, int size) async {
|
|
var entity = await ApiRepository.to.getUpToken(
|
|
userId: state.mineInfoData.value.uid!.toString(),
|
|
filename: filename,
|
|
size: size);
|
|
if (entity.errorCode!.codeIsSuccessful) {
|
|
uploadFile(entity);
|
|
}
|
|
}
|
|
|
|
// 上传头像
|
|
void uploadFile(MinePersonGetUploadFileInfoEntity minePersonGetUploadFileInfoEntity) async {
|
|
Map<String, dynamic> user = minePersonGetUploadFileInfoEntity.data!.formData!;
|
|
var bytes = File(state.image!.path);
|
|
var enc = await bytes.readAsBytes();
|
|
user[minePersonGetUploadFileInfoEntity.data!.fileField!] = enc;
|
|
final form = FormData({
|
|
'file': MultipartFile(enc, filename: minePersonGetUploadFileInfoEntity.data!.formData!["key"]),
|
|
});
|
|
var entity = await ApiRepository.to.uploadFile(url: minePersonGetUploadFileInfoEntity.data!.uploadUrl!, body: form);
|
|
if (entity.errorCode! == -1) {
|
|
// 没有返回 返回null成功
|
|
updateUserInfoRequest(minePersonGetUploadFileInfoEntity.data!.fileUrl!);
|
|
}
|
|
}
|
|
|
|
//更新个人信息-头像
|
|
Future<void> updateUserInfoRequest(String headUrl) async {
|
|
var entity = await ApiRepository.to.updateUserHeadUrlInfo(
|
|
headUrl: headUrl
|
|
);
|
|
if (entity.errorCode!.codeIsSuccessful) {
|
|
state.headUrl.value = headUrl;
|
|
state.mineInfoData.value.headUrl = state.headUrl.value!;
|
|
final loginData = await Storage.getLoginData();
|
|
loginData!.headUrl = headUrl;
|
|
await Storage.saveLoginData(loginData);
|
|
eventBus.fire(MineInfoChangeRefreshUI());
|
|
showToast("上传成功".tr);
|
|
}
|
|
}
|
|
|
|
@override
|
|
void onReady() {
|
|
// TODO: implement onReady
|
|
super.onReady();
|
|
|
|
}
|
|
|
|
@override
|
|
void onInit() {
|
|
// TODO: implement onInit
|
|
super.onInit();
|
|
|
|
getUserInfoRequest();
|
|
}
|
|
|
|
@override
|
|
void onClose() {
|
|
// TODO: implement onClose
|
|
}
|
|
}
|