// // QXRoomViewController+RedPacket.m // QXLive // // Created by 启星 on 2025/10/13. // #import "QXRoomViewController+RedPacket.h" #import "QXMineNetwork.h" @implementation QXRoomViewController (RedPacket) -(void)recievedRedPacket:(QXRedPacketModel *)model{ self.redBagTagView.hidden = NO; [[QXRedPacketManager sharedManager] addRedPacket:model]; } -(void)redPacketDidFinished:(NSString *)redpacket_id{ [[QXRedPacketManager sharedManager] removeRedPacket:redpacket_id]; NSArray *arr = [QXRedPacketManager sharedManager].allRedPackets; if (self.redbagListView) { self.redbagListView.dataArray = arr; } self.redBagTagView.count = [NSString stringWithFormat:@"%ld",arr.count]; } -(void)initRedpacketManager{ [QXRedPacketManager sharedManager].delegate = self; [[QXRedPacketManager sharedManager] startCheckTimer]; // 获取红包列表 [self getRedBagList]; } -(void)getRedBagList{ MJWeakSelf [QXMineNetwork getRedpacketListWithRoomId:self.roomId successBlock:^(NSArray * _Nonnull list) { if (list.count > 0) { weakSelf.redBagTagView.count = [NSString stringWithFormat:@"%ld",list.count]; weakSelf.redBagTagView.hidden = NO; [[QXRedPacketManager sharedManager] addRedPackets:list]; }else{ [[QXRedPacketManager sharedManager] removeAllRedpackets]; } } failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) { }]; } #pragma mark - QXRedPacketManagerDelegate /// 添加红包成功 -(void)QXRedPacketManager:(QXRedPacketManager *)manager didAddRedPacket:(QXRedPacketModel *)redPacket remainingCount:(NSInteger)remainingCount{ self.redBagTagView.count = [NSString stringWithFormat:@"%ld",remainingCount]; } /// 移除红包回调 - (void)QXRedPacketManager:(QXRedPacketManager *)manager didRemoveRedPacket:(NSString *)packetId remainingCount:(NSInteger)remainingCount{ self.redBagTagView.count = [NSString stringWithFormat:@"%ld",remainingCount]; } /// 更新红包回调 - (void)QXRedPacketManager:(QXRedPacketManager *)manager didUpdateRedPacket:(QXRedPacketModel *)redPacket remainingCount:(NSInteger)remainingCount{ if (self.redbagDrawView.redpacketModel != nil && self.redbagDrawView.redpacketModel.countdown > 0) { if (self.redbagDrawView.redpacketModel.type.intValue == 1) { [self.redbagDrawView changeViewType:(QXRedBagDrawTypeOpen)]; }else{ if (self.redbagDrawView.isFromToComment) { [self.redbagDrawView changeViewType:(QXRedBagDrawTypeOpen)]; } } } } - (void)QXRedPacketManager:(QXRedPacketManager *)manager didAddRedPackets:(NSArray *)redPackets remainingCount:(NSInteger)remainingCount{ self.redBagTagView.count = [NSString stringWithFormat:@"%ld",remainingCount]; } - (void)QXRedPacketManager:(QXRedPacketManager *)manager didUpdateRedPacketTime:(long)time redPacket:(QXRedPacketModel *)redPacket { /// 开红包的倒计时 if (self.redbagDrawView.redpacketModel != nil && self.redbagDrawView.redpacketModel.countdown > 0 && time>=0) { if (self.redbagDrawView.redpacketModel.type.intValue == 1) { // 普通红包 if ([self.redbagDrawView.redpacketModel.conditions containsString:@"1"]) { // 有收藏房间条件 if (self.roomModel.user_info.is_collect.intValue == 1) { /// 需要满足收藏再倒计时 if (redPacket == self.redbagDrawView.redpacketModel) { self.redbagDrawView.needTime = time; } } }else{ if (redPacket == self.redbagDrawView.redpacketModel) { self.redbagDrawView.needTime = time; } } }else{ if (self.redbagDrawView.isFromToComment) { // 普通红包 if ([self.redbagDrawView.redpacketModel.conditions containsString:@"1"]) { // 有收藏房间条件 if (self.roomModel.user_info.is_collect.intValue == 1) { /// 需要满足收藏再倒计时 if (redPacket == self.redbagDrawView.redpacketModel) { self.redbagDrawView.needTime = time; } } }else{ if (redPacket == self.redbagDrawView.redpacketModel) { self.redbagDrawView.needTime = time; } } } } } /// 红包列表的倒计时 if (self.redbagListView.dataArray.count > 0) { NSInteger index = [self.redbagListView.dataArray indexOfObject:redPacket]; [self.redbagListView updateRedpacketTimeWithIndex:index time:time]; } } @end