120 lines
4.8 KiB
Objective-C
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
|