2024-04-10 13:36:00 +08:00

89 lines
2.9 KiB
Dart

import 'dart:async';
import 'dart:io';
import 'package:flutter_easyloading/flutter_easyloading.dart';
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 GetConnect {
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);
// print("aaaaa:$loginEntity");
}
}
// 上传头像
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());
EasyLoading.showToast("操作成功", duration: 2000.milliseconds);
}
}
@override
void onReady() {
// TODO: implement onReady
super.onReady();
}
@override
void onInit() {
// TODO: implement onInit
super.onInit();
getUserInfoRequest();
}
@override
void onClose() {
// TODO: implement onClose
}
}