
Moment 模块: - ✅ 集成真实动态列表 API (momentsRecommendList) - ✅ 集成点赞 API (momentsLike) - ✅ 使用 MomentsInfoModel 替代 mock 数据 - ✅ 实现时间格式化(相对时间显示) - ✅ 实现点赞状态切换和 UI 更新 - ✅ 分页加载功能完善 Mine 模块: - ✅ 集成用户信息 API (getUserInfo) - ✅ 集成钱包信息 API (getUserWalletInfo) - ✅ 使用 UserInfoModel 和 WalletInfoModel - ✅ 头部视图动态显示真实数据 - ✅ 昵称、等级、经验、关注/粉丝数 改进: - NewMomentCell: 支持点赞交互,实时更新 - NewMineViewController: viewWillAppear 时自动刷新数据 - 所有 API 调用都有错误处理和日志 下一步: - 测试真实 API 调用是否成功 - 完善评论和发布功能 - 准备图片资源
120 lines
4.6 KiB
Objective-C
120 lines
4.6 KiB
Objective-C
//
|
||
// 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] 已切换到白牌 TabBar:NewTabBarController");
|
||
|
||
// ========== 原代码(已注释) ==========
|
||
/*
|
||
TabbarViewController *vc = [[TabbarViewController alloc] init];
|
||
vc.isFormLogin = YES;
|
||
vc.inviteCode = inviteCode;
|
||
BaseNavigationController *bnc = [[BaseNavigationController alloc] initWithRootViewController:vc];
|
||
kWindow.rootViewController = bnc;
|
||
*/
|
||
}
|
||
@end
|