Files
real-e-party-iOS/YuMi/Modules/YMLogin/Api/PILoginManager.m
edwinQQQ 5294f32ca7 完成 Moment 和 Mine 模块的 API 集成
Moment 模块:
-  集成真实动态列表 API (momentsRecommendList)
-  集成点赞 API (momentsLike)
-  使用 MomentsInfoModel 替代 mock 数据
-  实现时间格式化(相对时间显示)
-  实现点赞状态切换和 UI 更新
-  分页加载功能完善

Mine 模块:
-  集成用户信息 API (getUserInfo)
-  集成钱包信息 API (getUserWalletInfo)
-  使用 UserInfoModel 和 WalletInfoModel
-  头部视图动态显示真实数据
-  昵称、等级、经验、关注/粉丝数

改进:
- NewMomentCell: 支持点赞交互,实时更新
- NewMineViewController: viewWillAppear 时自动刷新数据
- 所有 API 调用都有错误处理和日志

下一步:
- 测试真实 API 调用是否成功
- 完善评论和发布功能
- 准备图片资源
2025-10-09 19:02:02 +08:00

120 lines
4.6 KiB
Objective-C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// PILoginManager.m
// YuMi
//
// Created by duoban on 2023/10/7.
//
#import "PILoginManager.h"
///api
#import "Api+Main.h"
///vc
#import "LoginFullInfoViewController.h"
#import "TabbarViewController.h"
#import "BaseNavigationController.h"
#import "LoginVerifCodeViewController.h"
///Model
#import "ThirdUserInfo.h"
#import "AccountModel.h"
#import "UserInfoModel.h"
#import "XPLoginAuthCodeVC.h"
///Manager
#import "TurboModeStateManager.h"
#import "FirstRechargeManager.h"
#import "PublicRoomManager.h"
///Tool
#import "XNDJTDDLoadingTool.h"
#import "AccountInfoStorage.h"
@implementation PILoginManager
+(void)loginWithVC:(MvpViewController *)VC isLoginPhone:(BOOL)isLoginPhone{
[XNDJTDDLoadingTool showLoading];
AccountModel *accountModel = [[AccountInfoStorage instance] getCurrentAccountInfo];
HomeUserModel *homeUserModel = [HomeUserModel new];
if (accountModel == nil || accountModel.uid == nil || accountModel.access_token == nil) {
[XNDJTDDLoadingTool hideOnlyView:VC.view];
[XNDJTDDLoadingTool showErrorWithMessage:YMLocalizedString(@"LoginPresenter1")];
return;
}
__block UserInfoModel *userInfo;
dispatch_group_t group = dispatch_group_create();
dispatch_queue_t queue =dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0);
dispatch_group_enter(group);
dispatch_async(queue, ^{
[Api requestTicket:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
if(code == 200){
NSArray *tickets = [data.data valueForKey:@"tickets"];
NSString *ticket = [tickets[0] valueForKey:@"ticket"];
homeUserModel.ticket = ticket;
[[AccountInfoStorage instance] saveTicket:ticket];
[Api getUserInfo:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
if(code == 200){
userInfo = [UserInfoModel modelWithDictionary:data.data];
[AccountInfoStorage instance].name = userInfo.nick;
homeUserModel.nick = userInfo.nick;
homeUserModel.avatar = userInfo.avatar;
homeUserModel.isBindPhone = userInfo.isBindPhone;
}
dispatch_group_leave(group);
} uid:accountModel.uid];
return;
}
dispatch_group_leave(group);
} access_token:accountModel.access_token issue_type:@"multi"];
});
dispatch_group_notify(group, dispatch_get_main_queue(), ^{
[XNDJTDDLoadingTool hideOnlyView:VC.view];
if ([[AccountInfoStorage instance] getTicket].length <= 0 || userInfo == nil) {
[XNDJTDDLoadingTool showErrorWithMessage:YMLocalizedString(@"LoginPresenter1")];
return;
}
[[AccountInfoStorage instance]saveHomeUserInfo:homeUserModel];
if (userInfo.nick == nil || userInfo.avatar == nil) {
LoginFullInfoViewController * FullVC = [[LoginFullInfoViewController alloc] init];
[VC.navigationController pushViewController:FullVC animated:YES];
return;
}
[XNDJTDDLoadingTool showSuccessWithMessage:YMLocalizedString(@"PKIDLoginViewController0")];
[PILoginManager jumpToHomeVCWithInviteCode:@""];
});
}
+(void)jumpToHomeVCWithInviteCode:(NSString *)inviteCode{
// ========== 白牌版本:使用新的 NewTabBarController ==========
// 原代码已注释,改用 Swift 实现的 NewTabBarController
NewTabBarController *newTabBar = [NewTabBarController create];
[newTabBar refreshTabBarWithIsLogin:YES];
// 设置为根控制器(不需要 NavigationController 包装)
kWindow.rootViewController = newTabBar;
// 登录成功并进入主页后,启动首充监控
[[FirstRechargeManager sharedManager] startMonitoring];
// 初始化公共房间管理器
[[PublicRoomManager sharedManager] initialize];
// 🔧 启动 TurboModeStateManager
NSString *userId = [[AccountInfoStorage instance] getUid];
if (userId) {
[[TurboModeStateManager sharedManager] startupWithCurrentUser:userId];
}
NSLog(@"[PILoginManager] 已切换到白牌 TabBarNewTabBarController");
// ========== 原代码(已注释) ==========
/*
TabbarViewController *vc = [[TabbarViewController alloc] init];
vc.isFormLogin = YES;
vc.inviteCode = inviteCode;
BaseNavigationController *bnc = [[BaseNavigationController alloc] initWithRootViewController:vc];
kWindow.rootViewController = bnc;
*/
}
@end