// // XPGiftPresenter.m // xplan-ios // // Created by 冯硕 on 2021/11/9. // #import "XPGiftPresenter.h" ///Tool #import "AccountInfoStorage.h" #import "XPGiftStorage.h" #import "Api+Gift.h" #import "XCHudTool.h" ///Model #import "WalletInfoModel.h" #import "GiftReceiveInfoModel.h" #import "UserInfoModel.h" #import "GiftLuckyBroadcastModel.h" #import "GiftTwelveStarFirstModel.h" #import "XPPrivilegeCardItemModel.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; } [Api getUserInfo:[self createHttpCompletion:^(BaseModel * _Nonnull data) { UserInfoModel * infoModel = [UserInfoModel modelWithDictionary:data.data]; [[self getView] onGetUserInfoSuccess:infoModel]; }] uid:uid]; } /// 获取用户钱包信息 - (void)getUserWallInfo { NSString * uid = [AccountInfoStorage instance].getUid; NSString * ticket = [AccountInfoStorage instance].getTicket; [Api getUserWalletInfo:[self createHttpCompletion:^(BaseModel * _Nonnull data) { WalletInfoModel * model = [WalletInfoModel modelWithDictionary:data.data]; [[self getView] getUserWalletInfo:model]; }] uid:uid ticket:ticket]; } /// 获取普通的礼物 /// @param roomUid 房主的uid 获取房间专属礼物 - (void)getNormalGiftList:(NSString *)roomUid { ///先不请求接口 从缓存中获取 NSArray * arrary = [[XPGiftStorage shareStorage] getGiftDatasource:roomUid]; if (arrary.count > 0) { [[self getView] getNormalGiftListSuccess:arrary]; } [Api requestNormalGiftList:[self createHttpCompletion:^(BaseModel * _Nonnull data) { NSArray *luckyBagGift = [GiftInfoModel modelsWithArray:data.data[@"interestGift"]]; // 福袋礼物 NSArray *vipGift = [GiftInfoModel modelsWithArray:data.data[@"vipGift"]]; // 贵族礼物 NSArray *luckyPoolGift = [GiftInfoModel modelsWithArray:data.data[@"luckyPoolGift"]];// 福袋奖池礼物 NSArray *normalGift = [GiftInfoModel modelsWithArray:data.data[@"normalGift"]]; // 普通面板礼物 NSArray *weekStarGift = [GiftInfoModel modelsWithArray:data.data[@"weekStarGift"]]; // 周星礼物 NSArray *drawGift = [GiftInfoModel modelsWithArray:data.data[@"drawGift"]]; // 涂鸦礼物 NSArray *penaltyGift = [GiftInfoModel modelsWithArray:data.data[@"penaltyGift"]]; // 惩罚礼物 NSArray *anchorGift = [GiftInfoModel modelsWithArray:data.data[@"singlePopularGift"]]; // 个播礼物 NSArray *twelveStarGiftList = [GiftInfoModel modelsWithArray:data.data[@"twelveStarGiftList"]]; // 星座礼物 NSMutableArray *info = [NSMutableArray array]; NSMutableArray *totalInfo = [NSMutableArray array]; [info addObjectsFromArray:luckyBagGift]; [info addObjectsFromArray:vipGift]; [info addObjectsFromArray:normalGift]; [info addObjectsFromArray:weekStarGift]; [info addObjectsFromArray:drawGift]; [info addObjectsFromArray:anchorGift]; [info addObjectsFromArray:penaltyGift]; [info addObjectsFromArray:twelveStarGiftList]; [totalInfo addObjectsFromArray:info]; [totalInfo addObjectsFromArray:luckyPoolGift]; ///把礼物信息保存一下 [[XPGiftStorage shareStorage] saveGiftDatasource:info roomUid:roomUid]; [[XPGiftStorage shareStorage] writeGiftToDirectory:totalInfo]; [[self getView] getNormalGiftListSuccess:info]; }fail:^(NSInteger code, NSString * _Nullable msg) { [[self getView] getNormalGiftListFail:msg]; }] roomUid:roomUid]; } /// 获取背包礼物 - (void)getPackGiftList { NSString * uid = [AccountInfoStorage instance].getUid; NSString * ticket = [AccountInfoStorage instance].getTicket; [Api requestPackGiftList:[self createHttpCompletion:^(BaseModel * _Nonnull data) { NSArray * info = [GiftInfoModel modelsWithArray:data.data]; [[self getView] getPacketGiftListSuccess:info]; }fail:^(NSInteger code, NSString * _Nullable msg) { [[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 = @""; } [Api requestSendGift:[self createHttpCompletion:^(BaseModel * _Nonnull data) { 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) { [[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)sendPrivilegeCardWithCardId:(NSString *)cardId roomUid:(NSString *)roomUid sendUid:(NSString *)sendUid cardUrl:(NSString *)url{ [Api requestsendPrivilegeCard:[self createHttpCompletion:^(BaseModel * _Nonnull data) { [[self getView]sendPrivilegeCardSuccess:url]; } fail:^(NSInteger code, NSString * _Nullable msg) { [[self getView]sendPrivilegeCardFail]; } showLoading:NO errorToast:YES] cardId:cardId roomUid:roomUid sendUid:sendUid]; } ///全服福袋记录记录 - (void)luckyGiftBroadcastRecord { [Api requestLuckGiftServerBagRecord:[self createHttpCompletion:^(BaseModel * _Nonnull data) { NSArray * array = [GiftLuckyBroadcastModel modelsWithArray:data.data]; [[self getView] luckyGiftBroadcastRecordSuccess:array]; }]]; } ///获取十二星座礼物banner - (void)getTwelveStarLastRankFirst:(NSString *)roomUid { [Api requestTwelveStarFirst:[self createHttpCompletion:^(BaseModel * _Nonnull data) { GiftTwelveStarFirstModel * model = [GiftTwelveStarFirstModel modelWithDictionary:data.data]; [[self getView] getTwelveStarLastRankFirstSuccess:model]; }] roomUid:roomUid]; } -(void)getGiftPrivilegeCardWithRoomUid:(NSString *)roomUid uid:(NSString *)uid{ [Api requestGiftPrivilegeCard:[self createHttpCompletion:^(BaseModel * _Nonnull data) { NSArray *list = [XPPrivilegeCardItemModel modelsWithArray:data.data]; [[self getView]getGiftPrivilegeCardSuccess:list]; } fail:^(NSInteger code, NSString * _Nullable msg) { }] roomUid:roomUid uid:uid]; } @end