// // YYJYApplyUpView.m // YaYin // // Created by bj_szd on 2023/4/26. // Copyright © 2023 YaYin. All rights reserved. // #import "YYJYApplyUpView.h" #import "YYJYApplyUpCell.h" #import "YYApplyUpGiftAlert.h" #import "YYJYChooseTeamAlert.h" #import "YYXQPickTimeAlert.h" @interface YYJYApplyUpView () @property (nonatomic, strong) NSArray *vipDataArr; @property (nonatomic, strong) NSArray *waitDataArr; @property (nonatomic, strong) YYApplyUpMicModel *model; @property(nonatomic, assign) NSInteger is_apply;//1在申请 2不在 @property(nonatomic, copy) NSString *apply_id;//申请通道id @property(nonatomic, assign) BOOL isHost;//主持麦上 @property(nonatomic, assign) BOOL isManager;//管理 @property (nonatomic, strong) YYApplyUpUser *selUserModel; @end @implementation YYJYApplyUpView - (void)awakeFromNib { [super awakeFromNib]; self.is_apply = 2; self.apply_id = @""; [self createUI]; } - (void)setViewModel:(RCMicRoomViewModel *)viewModel { _viewModel = viewModel; [self fetchData]; if ([self.viewModel isRoomHost]) { self.isHost = YES; [self.sendBtn setTitle:@"设置" forState:UIControlStateNormal]; }else { self.isHost = NO; [self.sendBtn setTitle:@"赠送" forState:UIControlStateNormal]; } if ([self.viewModel isRoomOwner] || [self.viewModel isRoomAdministrator]) { self.isManager = YES; self.refuseBtn.hidden = self.agreeBtn.hidden = self.clearBtn.hidden = NO; }else { self.isManager = NO; self.refuseBtn.hidden = self.agreeBtn.hidden = self.clearBtn.hidden = YES; } } - (void)fetchData { NSDictionary *params = @{@"rid":_viewModel.roomInfo.roomId}; [AFNetworkRequset.shared postRequestWithParams:params Path:@"/api/room_micro/get_room_micro_list" Loading:NO Hud:NO Success:^(id _Nonnull responseDic) { self.model = [YYApplyUpMicModel mj_objectWithKeyValues:responseDic[@"data"]]; [self onUpdateUIWith:self.model]; } Failure:^(id _Nonnull errorData) { }]; } - (void)onUpdateUIWith:(YYApplyUpMicModel *)model { self.vipLab.text = [NSString stringWithFormat:@"优先通道(%@/%@)", model.priority_count, model.priority_total_count]; self.vipDataArr = model.priority_aisle; [self.vipCollectionView reloadData]; self.waitLab.text = [NSString stringWithFormat:@"等待上台(%@/%@)", model.common_count, model.common_total_count]; self.waitDataArr = model.common_aisle; [self.waitCollectionView reloadData]; self.is_apply = 2; self.apply_id = @""; for (YYApplyUpUser *obj in self.vipDataArr) { if ([obj.uid integerValue] == [BJUserManager.userInfo.uid integerValue]) { self.is_apply = 1; self.apply_id = obj.id; } } for (YYApplyUpUser *obj in self.waitDataArr) { if ([obj.uid integerValue] == [BJUserManager.userInfo.uid integerValue]) { self.is_apply = 1; self.apply_id = obj.id; } } if (self.is_apply == 1) { [self.applyBtn setTitle:@"取消申请" forState:UIControlStateNormal]; }else { [self.applyBtn setTitle:@"申请" forState:UIControlStateNormal]; } if (model.gift_name.length > 0) { [self.giftImgV sd_setImageWithURL:[NSURL URLWithString:model.base_image]]; self.giftNameLab.text = [NSString stringWithFormat:@"赠送%@ 插队", model.gift_name]; }else { self.giftNameLab.text = @"未设置插队礼物"; } } - (void)onReceiveSocketWith:(NSDictionary *)dict { self.model = [YYApplyUpMicModel mj_objectWithKeyValues:dict]; [self onUpdateUIWith:self.model]; } - (void)createUI { WEAK_SELF [self.touchImgV dg_Tapped:^{ [weakSelf removeFromSuperview]; }]; [self.clearBtn styleGradiBlueColor]; [self.agreeBtn styleGradiBlueColor]; [self.applyBtn styleGradiBlueColor]; [self.sendBtn styleGradiBlueColor]; // UIColor *bgColor = [UIColor bm_colorGradientChangeWithSize:CGSizeMake(ScreenWidth-6*2, 100) direction:FXGradientChangeDirectionHorizontal startColor:HEXCOLOR(0xAE4EFF) endColor:HEXCOLOR(0x403BFF)]; // self.vipCollectionView.backgroundColor = self.waitCollectionView.backgroundColor = [bgColor colorWithAlphaComponent:0.25]; { UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; layout.itemSize = CGSizeMake(70, 105); layout.minimumInteritemSpacing = 0; layout.minimumLineSpacing = 0; layout.sectionInset = UIEdgeInsetsMake(0, 8, 0, 8); layout.scrollDirection = UICollectionViewScrollDirectionHorizontal; _vipCollectionView.collectionViewLayout = layout; _vipCollectionView.delegate = self; _vipCollectionView.dataSource = self; [_vipCollectionView registerNib:[UINib nibWithNibName:@"YYJYApplyUpCell" bundle:nil] forCellWithReuseIdentifier:@"YYJYApplyUpCell"]; } { UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; layout.itemSize = CGSizeMake(70, 105); layout.minimumInteritemSpacing = 0; layout.minimumLineSpacing = 0; layout.sectionInset = UIEdgeInsetsMake(0, 8, 0, 8); layout.scrollDirection = UICollectionViewScrollDirectionHorizontal; _waitCollectionView.collectionViewLayout = layout; _waitCollectionView.delegate = self; _waitCollectionView.dataSource = self; [_waitCollectionView registerNib:[UINib nibWithNibName:@"YYJYApplyUpCell" bundle:nil] forCellWithReuseIdentifier:@"YYJYApplyUpCell"]; } } - (IBAction)onClear:(id)sender { NSDictionary *params = @{@"rid":_viewModel.roomInfo.roomId}; [AFNetworkRequset.shared postRequestWithParams:params Path:@"/api/room_micro/clears_room_micro_list" Loading:YES Hud:YES Success:^(id _Nonnull responseDic) { } Failure:^(id _Nonnull errorData) { }]; } - (IBAction)onRefuse:(id)sender { if (_selUserModel == nil) { [HelpPageDefine showMessage:@"请选择人员"]; return; } NSDictionary *params = @{@"rid":_viewModel.roomInfo.roomId, @"id":_selUserModel.id, @"type":@"2"}; [AFNetworkRequset.shared postRequestWithParams:params Path:@"/api/room_micro/operate_user_micro" Loading:YES Hud:YES Success:^(id _Nonnull responseDic) { } Failure:^(id _Nonnull errorData) { }]; } - (IBAction)onAgreeOrApply:(id)sender { if (_selUserModel == nil) { [HelpPageDefine showMessage:@"请选择人员"]; return; } if (self.viewModel.roomInfo.is_dating == 1) { YYJYChooseTeamAlert *alert = LoadNib(@"YYJYChooseTeamAlert"); [alert onPopupWithSize:CGSizeMake(338, 250) parent:KEYWINDOW]; NSDictionary *params = @{@"rid":_viewModel.roomInfo.roomId, @"id":_selUserModel.id, @"type":@"1"}; alert.dict = params; }else if (self.viewModel.roomInfo.is_blind_date == 1) { YYXQPickTimeAlert *view = LoadNib(@"YYXQPickTimeAlert"); view.frame = [UIScreen mainScreen].bounds; [MainWindow() addSubview:view]; view.onConfirmBlock = ^(NSString * _Nonnull time) { NSDictionary *params = @{@"rid":self.viewModel.roomInfo.roomId, @"id":self.selUserModel.id, @"type":@"1", @"time":time}; [AFNetworkRequset.shared postRequestWithParams:params Path:@"/api/room_micro/operate_user_micro" Loading:YES Hud:YES Success:^(id _Nonnull responseDic) { } Failure:^(id _Nonnull errorData) { }]; }; }else { NSDictionary *params = @{@"rid":_viewModel.roomInfo.roomId, @"id":_selUserModel.id, @"type":@"1"}; [AFNetworkRequset.shared postRequestWithParams:params Path:@"/api/room_micro/operate_user_micro" Loading:YES Hud:YES Success:^(id _Nonnull responseDic) { } Failure:^(id _Nonnull errorData) { }]; } } - (IBAction)onApply:(id)sender { NSString *urlStr = self.is_apply == 1 ? @"/api/room_micro/unapply_room_micro" : @"/api/room_micro/apply_room_micro"; NSDictionary *params = @{@"rid":_viewModel.roomInfo.roomId, @"id":C_string(self.apply_id)}; [AFNetworkRequset.shared postRequestWithParams:params Path:urlStr Loading:YES Hud:YES Success:^(id _Nonnull responseDic) { } Failure:^(id _Nonnull errorData) { }]; } - (IBAction)onSendOrSetGift:(id)sender { if (self.isHost) { YYApplyUpGiftAlert *view = LoadNib(@"YYApplyUpGiftAlert"); view.frame = [UIScreen mainScreen].bounds; [view onShowWith:_viewModel.roomInfo.roomId]; }else { [self onSendGiftWithHelpUid:BJUserManager.userInfo.uid]; } } - (void)onSendGiftWithHelpUid:(NSString *)help_uid { NSDictionary *params = @{@"rid":_viewModel.roomInfo.roomId, @"help_uid":help_uid, @"gid":self.model.gid, @"num":@"1"}; [AFNetworkRequset.shared postRequestWithParams:params Path:@"/api/room_micro/send_gift_user_micro_help" Loading:YES Hud:YES Success:^(id _Nonnull responseDic) { } Failure:^(id _Nonnull errorData) { }]; } #pragma mark -------- collectionView代理方法 ------ - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView { return 1; } - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { if (collectionView == _vipCollectionView) { return self.vipDataArr.count; }else { return self.waitDataArr.count; } } - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { if (collectionView == _vipCollectionView) { YYJYApplyUpCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"YYJYApplyUpCell" forIndexPath:indexPath]; YYApplyUpUser *model = self.vipDataArr[indexPath.row]; [cell onUpdateYYJYApplyUpCell:model isVip:YES isRoomOwner:self.isManager]; WEAK_SELF [cell.selBtn buttonAddTaget:^(UIButton *btn) { [weakSelf onSelWith:model]; } forControlEvents:UIControlEventTouchUpInside]; [cell.chaduiBtn buttonAddTaget:^(UIButton *btn) { [weakSelf onSendGiftWithHelpUid:model.uid]; } forControlEvents:UIControlEventTouchUpInside]; return cell; }else { YYJYApplyUpCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"YYJYApplyUpCell" forIndexPath:indexPath]; YYApplyUpUser *model = self.waitDataArr[indexPath.row]; [cell onUpdateYYJYApplyUpCell:model isVip:NO isRoomOwner:self.isManager]; WEAK_SELF [cell.selBtn buttonAddTaget:^(UIButton *btn) { [weakSelf onSelWith:model]; } forControlEvents:UIControlEventTouchUpInside]; [cell.chaduiBtn buttonAddTaget:^(UIButton *btn) { [weakSelf onSendGiftWithHelpUid:model.uid]; } forControlEvents:UIControlEventTouchUpInside]; return cell; } } - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { if (collectionView == _vipCollectionView) { YYApplyUpUser *model = self.vipDataArr[indexPath.row]; if (self.onClickUserBlock) { self.onClickUserBlock(model.uid); } }else { YYApplyUpUser *model = self.waitDataArr[indexPath.row]; if (self.onClickUserBlock) { self.onClickUserBlock(model.uid); } } } - (void)onSelWith:(YYApplyUpUser *)model { for (YYApplyUpUser *obj in self.vipDataArr) { obj.is_sel = NO; } for (YYApplyUpUser *obj in self.waitDataArr) { obj.is_sel = NO; } model.is_sel = YES; _selUserModel = model; [_vipCollectionView reloadData]; [_waitCollectionView reloadData]; } @end