Files
peko-ios/YuMi/Modules/YMRoom/View/SendGiftView/Presenter/XPGiftPresenter.m
eggmanQQQ fb30106c63 -- 客户端“我的装扮”入口
-- 礼物面板 API 调试
-- 礼物面板调整
2024-08-02 21:09:02 +08:00

180 lines
6.3 KiB
Objective-C

//
// YMGiftPresenter.m
// YUMI
//
// Created by YUMI on 2021/11/9.
//
#import "XPGiftPresenter.h"
///Tool
#import "AccountInfoStorage.h"
#import "XPGiftStorage.h"
#import "Api+Gift.h"
#import "XNDJTDDLoadingTool.h"
///Model
#import "WalletInfoModel.h"
#import "GiftReceiveInfoModel.h"
#import "UserInfoModel.h"
#import "GiftLuckyBroadcastModel.h"
#import "GiftTwelveStarFirstModel.h"
///P
#import "XPGiftProtocol.h"
@interface XPGiftPresenter ()
///
@property (nonatomic,weak) id view;
@end
@implementation XPGiftPresenter
/// 获取用户信息
/// @param uid 查询的用户的uid
- (void)getUserInfo:(NSString *)uid {
if (uid == nil) {
return;
}
@kWeakify(self);
[Api getUserInfo:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
@kStrongify(self);
UserInfoModel * infoModel = [UserInfoModel modelWithDictionary:data.data];
[[self getView] onGetUserInfoSuccess:infoModel];
}] uid:uid];
}
/// 获取用户钱包信息
- (void)getUserWallInfo {
NSString * uid = [AccountInfoStorage instance].getUid;
NSString * ticket = [AccountInfoStorage instance].getTicket;
@kWeakify(self);
[Api getUserWalletInfo:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
@kStrongify(self);
WalletInfoModel * model = [WalletInfoModel modelWithDictionary:data.data];
[[self getView] getUserWalletInfo:model];
}] uid:uid ticket:ticket];
}
/// 获取普通的礼物
/// @param roomUid 房主的uid 获取房间专属礼物
- (void)getNormalGiftList:(NSString *)roomUid {
///先不请求接口 从缓存中获取
CGFloat delayDuration = 0.0;
NSArray * arrary = [[XPGiftStorage shareStorage] getGiftDatasource:roomUid];
if (arrary.count > 0) {
delayDuration = 1;
[[self getView] getNormalGiftListSuccess:arrary];
}
@kWeakify(self);
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayDuration * NSEC_PER_SEC)), dispatch_get_global_queue(0, 0), ^{
[Api requestNormalGiftList:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
@kStrongify(self);
[[self getView] getNormalGiftListSuccess:[[XPGiftStorage shareStorage] cacheWith:data.data inRoom:roomUid]];
}fail:^(NSInteger code, NSString * _Nullable msg) {
@kStrongify(self);
[[self getView] getNormalGiftListFail:msg];
}] roomUid:roomUid];
});
}
- (void)getTagsAndGifts:(NSString *)roomUid {
CGFloat delayDuration = 0.0;
NSArray * arrary = [[XPGiftStorage shareStorage] getGiftPanelTagsDatasource:roomUid];
if (arrary.count > 0) {
delayDuration = 1;
[[self getView] getTagsSuccess:arrary];
}
@kWeakify(self);
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayDuration * NSEC_PER_SEC)), dispatch_get_global_queue(0, 0), ^{
[Api requestAllTagsAndNormalGifts:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
@kStrongify(self);
[[XPGiftStorage shareStorage] cacheWith:data.data inRoom:roomUid];
[[self getView] getTagsSuccess:[[XPGiftStorage shareStorage] cacheTagsWith:data.data inRoom:roomUid]];
}fail:^(NSInteger code, NSString * _Nullable msg) {
@kStrongify(self);
[[self getView] getNormalGiftListFail:msg];
}] roomUid:roomUid];
});
}
/// 获取背包礼物
- (void)getPackGiftList {
NSString * uid = [AccountInfoStorage instance].getUid;
NSString * ticket = [AccountInfoStorage instance].getTicket;
@kWeakify(self);
[Api requestPackGiftList:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
@kStrongify(self);
NSArray * info = [GiftInfoModel modelsWithArray:data.data];
[[self getView] getPacketGiftListSuccess:info];
}fail:^(NSInteger code, NSString * _Nullable msg) {
@kStrongify(self);
[[self getView] getPacketGiftListFail:msg];
}] uid:uid ticket:ticket];
}
/// 送礼物
/// @param targetUids 送礼物的人
/// @param giftNum 礼物的个数
/// @param sendType 送的类型
/// @param giftId 送礼物的id
/// @param giftSource 送礼物的来源
/// @param giftType 礼物的类型
/// @param roomSendType 赠送的类型
/// @param roomUid 房主的uid
/// @param msg 喊话的内容
- (void)sendGift:(NSString *)targetUids
giftNum:(NSString *)giftNum
sendType:(GiftSendType)sendType
giftId:(NSString *)giftId
giftSource:(GiftSourceType)giftSource
giftType:(GiftType)giftType
roomSendType:(RoomSendGiftType)roomSendType
roomUid:(NSString *)roomUid
msg:(NSString *)msg
{
NSString * uid = [AccountInfoStorage instance].getUid;
NSString * giftSourceStr = [NSString stringWithFormat:@"%ld", giftSource];
NSString * giftTypeStr = [NSString stringWithFormat:@"%ld", giftType];
NSString * giftSendTypeStr = [NSString stringWithFormat:@"%ld", sendType];
if (roomUid.length <=0) {
roomUid = @"";
}
@kWeakify(self);
[Api requestSendGift:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
@kStrongify(self);
GiftReceiveInfoModel *receive = [GiftReceiveInfoModel modelWithJSON:data.data];
receive.sourceType = giftSource;
receive.roomSendGiftType = roomSendType;
NSArray * array = [targetUids componentsSeparatedByString:@","];
[self.getView sendGiftSuccess:receive originDic:data.data uidCount:array.count];
}fail:^(NSInteger code, NSString * _Nullable msg) {
@kStrongify(self);
[[self getView] sendGiftFailWithCode:code msg:msg];
}] targetUids:targetUids giftNum:giftNum sendType:giftSendTypeStr giftId:giftId giftSource:giftSourceStr giftType:giftTypeStr roomUid:roomUid msg:msg uid:uid];
}
///全服福袋记录记录
- (void)luckyGiftBroadcastRecord {
@kWeakify(self);
[Api requestLuckGiftServerBagRecord:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
@kStrongify(self);
NSArray * array = [GiftLuckyBroadcastModel modelsWithArray:data.data];
[[self getView] luckyGiftBroadcastRecordSuccess:array];
}fail:^(NSInteger code, NSString * _Nullable msg) {
// NSLog(@"%@",msg);
}]];
}
///获取十二星座礼物banner
- (void)getTwelveStarLastRankFirst:(NSString *)roomUid {
@kWeakify(self);
[Api requestTwelveStarFirst:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
@kStrongify(self);
GiftTwelveStarFirstModel * model = [GiftTwelveStarFirstModel modelWithDictionary:data.data];
[[self getView] getTwelveStarLastRankFirstSuccess:model];
}] roomUid:roomUid];
}
@end