14 changed files with 233 additions and 117 deletions
Unified View
Diff Options
-
9lib/config/env_config.dart
-
75lib/controller/mine/login_controller.dart
-
89lib/controller/mine/user_controller.dart
-
43lib/controller/mine/user_info_controller.dart
-
1lib/network/api_urls.dart
-
15lib/network/network_config.dart
-
15lib/network/network_service.dart
-
3lib/network/user_api.dart
-
31lib/network/user_api.g.dart
-
46lib/oss/oss_manager.dart
-
18lib/pages/main/main_page.dart
-
2lib/pages/mine/login_page.dart
-
1lib/pages/mine/mine_page.dart
-
2lib/pages/mine/user_info_page.dart
@ -0,0 +1,89 @@ |
|||||
|
import 'package:get/get.dart'; |
||||
|
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; |
||||
|
import '../../network/user_api.dart'; |
||||
|
import '../../pages/mine/user_info_page.dart'; |
||||
|
import '../../pages/main/main_page.dart'; |
||||
|
|
||||
|
class UserController extends GetxController { |
||||
|
|
||||
|
// UserApi实例 |
||||
|
late UserApi _userApi; |
||||
|
|
||||
|
@override |
||||
|
void onInit() { |
||||
|
super.onInit(); |
||||
|
// 从全局依赖中获取UserApi |
||||
|
_userApi = Get.find<UserApi>(); |
||||
|
} |
||||
|
|
||||
|
/// 获取环信用户token |
||||
|
Future<String?> getHxUserToken() async { |
||||
|
|
||||
|
try { |
||||
|
// 调用获取环信用户token接口 |
||||
|
final response = await _userApi.getHxUserToken(); |
||||
|
|
||||
|
// 处理响应 |
||||
|
if (response.data.isSuccess) { |
||||
|
// 保存token到本地存储 |
||||
|
String? token = response.data.data; |
||||
|
if (token != null) { |
||||
|
// 打印获取的token |
||||
|
print('获取环信用户token成功: $token'); |
||||
|
|
||||
|
return token; |
||||
|
} else { |
||||
|
SmartDialog.showToast('获取的环信用户token为空'); |
||||
|
return null; |
||||
|
} |
||||
|
} else { |
||||
|
SmartDialog.showToast(response.data.message); |
||||
|
return null; |
||||
|
} |
||||
|
} catch (e) { |
||||
|
print('获取环信用户token失败: $e'); |
||||
|
SmartDialog.showToast('获取环信用户token失败,请重试'); |
||||
|
return null; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/// 获取用户基础信息 |
||||
|
Future<void> getBaseUserInfo(String userId) async { |
||||
|
try { |
||||
|
final response = await _userApi.getBaseUserInfo(userId); |
||||
|
|
||||
|
if (response.data.isSuccess && response.data.data != null) { |
||||
|
// 成功获取基础信息后,调用获取婚姻信息详情接口 |
||||
|
await getMarriageInformationDetail(); |
||||
|
} else { |
||||
|
SmartDialog.showToast(response.data.message); |
||||
|
} |
||||
|
} catch (e) { |
||||
|
// 获取用户信息失败不影响登录流程 |
||||
|
SmartDialog.showToast('获取用户信息失败'); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/// 获取用户婚姻信息详情 |
||||
|
Future<void> getMarriageInformationDetail() async { |
||||
|
try { |
||||
|
final response = await _userApi.getMarriageInformationDetail(); |
||||
|
if (response.data.isSuccess) { |
||||
|
// 检查data是否为null或者是空对象 |
||||
|
if (response.data.data == null) { |
||||
|
//跳转到完善信息 |
||||
|
SmartDialog.showToast('转到完善信息'); |
||||
|
// 导航到完善信息页面 |
||||
|
Get.offAll(() => UserInfoPage()); |
||||
|
} else { |
||||
|
Get.offAll(MainPage()); |
||||
|
} |
||||
|
} else { |
||||
|
// 获取婚姻信息失败不影响登录流程 |
||||
|
} |
||||
|
} catch (e) { |
||||
|
// 获取婚姻信息失败不影响登录流程 |
||||
|
print('获取婚姻信息异常: $e'); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,46 @@ |
|||||
|
import 'dart:typed_data'; |
||||
|
|
||||
|
import 'package:flutter_oss_aliyun/flutter_oss_aliyun.dart'; |
||||
|
|
||||
|
class OSSManager { |
||||
|
// 静态单例实例 |
||||
|
static final OSSManager _instance = OSSManager._internal(); |
||||
|
bool isInit = false; |
||||
|
// 工厂构造函数,返回单例实例 |
||||
|
factory OSSManager() { |
||||
|
return _instance; |
||||
|
} |
||||
|
|
||||
|
// 私有构造函数,防止外部直接实例化 |
||||
|
OSSManager._internal(); |
||||
|
|
||||
|
void init(String stsUrl, String ossEndpoint, String bucketName) { |
||||
|
// 初始化 |
||||
|
Client.init( |
||||
|
stsUrl: stsUrl, |
||||
|
ossEndpoint: ossEndpoint, |
||||
|
bucketName: bucketName, |
||||
|
); |
||||
|
isInit = true; |
||||
|
} |
||||
|
|
||||
|
Future<String> uploadFile(Uint8List fileData, String objectName, {Function(int count, int total)? onSendProgress, |
||||
|
Function(int count, int total)? onReceiveProgress}) async { |
||||
|
if (!isInit) { |
||||
|
throw Exception("请先初始化"); |
||||
|
} |
||||
|
final result = await Client().putObject(fileData, objectName, option: PutRequestOption( |
||||
|
onSendProgress: onSendProgress != null ? (count, total) { |
||||
|
onSendProgress(count, total); |
||||
|
} : null, |
||||
|
onReceiveProgress: onReceiveProgress != null ? (count, total) { |
||||
|
onReceiveProgress(count, total); |
||||
|
} : null, |
||||
|
override: false, |
||||
|
aclModel: AclMode.publicRead, |
||||
|
storageType: StorageType.ia, |
||||
|
), |
||||
|
); |
||||
|
return result.statusCode == 200 ? result.realUri.path : throw Exception("上传失败"); |
||||
|
} |
||||
|
} |
||||
Write
Preview
Loading…
Cancel
Save