Files
yinmeng-ios/xplan-ios/Main/Mine/Presenter/XPMinePresent.m
2023-01-04 14:14:33 +08:00

140 lines
4.4 KiB
Objective-C

//
// XPMinePresent.m
// xplan-ios
//
// Created by 冯硕 on 2021/9/16.
//
#import "XPMinePresent.h"
///Tool
#import "AccountInfoStorage.h"
#import "StatisticsServiceHelper.h"
///Api
#import "Api+Mine.h"
#import "Api+Guild.h"
#import "Api+LittleGame.h"
#import "Api+Home.h"
#import "Api+NobleCenter.h"
///Model
#import "XPMineItemModel.h"
#import "UserInfoModel.h"
#import "ClanDetailInfoModel.h"
#import "XPMineFuntionItemModel.h"
#import "LittleGameInfoModel.h"
#import "HomeBannerInfoModel.h"
#import "HomeLittleGameRoomModel.h"
#import "WalletInfoModel.h"
#import "NobleCenterModel.h"
#import "ClanDetailInfoModel.h"
#import "AnchorLevelModel.h"
///Protocol
#import "XPMineProtocol.h"
@implementation XPMinePresent
- (id<XPMineProtocol>)getView {
return ((id<XPMineProtocol>) [super getView]);
}
/// 获取用户信息
- (void)getUserInfo {
NSString * uid = [[AccountInfoStorage instance] getUid];
if (!uid.length) {
return;
}
[Api getUserInfo:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
UserInfoModel * infoModel = [UserInfoModel modelWithDictionary:data.data];
[[self getView] onGetUserInfoSuccess:infoModel];
}] uid:uid];
}
/// 获取钱包信息
- (void)getUserWalletInfo {
NSString * uid = [AccountInfoStorage instance].getUid;
NSString * ticket = [AccountInfoStorage instance].getTicket;
if (!uid.length) {
return;
}
[Api getUserWalletInfo:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
WalletInfoModel * model = [WalletInfoModel modelWithDictionary:data.data];
[[self getView] getUserWalletInfo:model];
}] uid:uid ticket:ticket];
}
///获取贵族信息
- (void)getNobleInfo {
[Api nobleCenterLevelList:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
NobleCenterModel *model = [NobleCenterModel modelWithDictionary:data.data];
[[self getView] getNobleCenterInfoSuccess:model];
}]];
}
/// 获取家族详细的信息
- (void)getClanDetailInfo {
NSString * uid = [[AccountInfoStorage instance] getUid];
if (!uid.length) {
return;
}
[Api getClanDetailInfo:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
ClanDetailInfoModel * clanDetailInfo = [ClanDetailInfoModel modelWithDictionary:data.data];
[[self getView] onGetClanDetailInfoSuccess:clanDetailInfo];
}] uid:uid];
}
///获取个人功能列表
- (void)getPersonItemList {
NSString * uid = [[AccountInfoStorage instance] getUid];
if (!uid.length) {
return;
}
[Api requestPersonalFunctionItem:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
NSArray *array = [XPMineFuntionItemModel modelsWithArray:data.data];
[[self getView] onGetMineFuntionItemSuccess:array];
}] uid:uid];
}
///获取小游戏列表
- (void)getLittleGameList {
NSString * uid = [[AccountInfoStorage instance] getUid];
if (!uid.length) {
return;
}
[Api getLittleGameList:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
NSArray * array = [LittleGameInfoModel modelsWithArray:data.data];
[[self getView] onGetLittleGameListSuccess:array];
}]];
}
///获取个人中心banner
- (void)getMineBannerList {
NSString * uid = [[AccountInfoStorage instance] getUid];
if (!uid.length) {
return;
}
[Api requestMineBannerList:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
NSArray * array = [HomeBannerInfoModel modelsWithArray:data.data];
[[self getView] onGetPersonalBannerListSuccess:array];
}] uid:uid type:@"10"];
}
///快速匹配小游戏房
/// @param mgId 游戏ID
- (void)quickMatchLittleGameWithMgId:(NSString *)mgId {
NSString * uid = [AccountInfoStorage instance].getUid;
[Api requestMineQuickMatchLittleGame:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
HomeLittleGameRoomModel *gameRoom = [HomeLittleGameRoomModel modelWithDictionary:data.data];
[[self getView] quickMatchLittleGameRoomSuccess:gameRoom mgId:mgId];
} fail:^(NSInteger code, NSString * _Nullable msg) {
[StatisticsServiceHelper trackEventWithKey:StatisticsServiceEventusercenter_quick_entry_click eventAttributes:@{@"mgId" : mgId}];
}] uid:uid mgId:mgId];
}
///主播评级
- (void)getAnchorGradeInfo {
[Api requestAnchorGradeInfo:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
AnchorLevelModel * model = [AnchorLevelModel modelWithDictionary:data.data];
[[self getView] getAnchorGradeInfoSuccess:model];
}]];
}
@end