Files
featherVoice/QXLive/HomePage(声播)/Controlller/房间/QXRoomViewController+RedPacket.m
2025-10-20 09:43:10 +08:00

120 lines
4.8 KiB
Objective-C

//
// 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<QXRedPacketModel *> * _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<QXRedPacketModel *> *)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