Files
featherVoice/QXLive/Room(房间)/View/点唱/QXSingerSongListContentView.m

161 lines
5.3 KiB
Mathematica
Raw Normal View History

2025-11-21 16:17:05 +08:00
//
// QXSingerSongListContentView.m
// QXLive
//
// Created by on 2025/11/14.
//
#import "QXSingerSongListContentView.h"
#import "QXSingerSongListCell.h"
#import "QXMineNetwork.h"
@interface QXSingerSongListContentView()<UITableViewDelegate,UITableViewDataSource,QXSingerSongListCellDelegate>
@property (nonatomic,strong)UITableView *tableView;
@property (nonatomic,assign)NSInteger page ;
@property (nonatomic,strong)NSMutableArray *dataArray;
@end
@implementation QXSingerSongListContentView
-(UIView *)listView{
return self;
}
-(void)listWillAppear{
[self getSongList];
}
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self initSubviews];
}
return self;
}
-(void)initSubviews{
self.backgroundColor = [UIColor clearColor];
self.page = 1;
self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.width, self.height) style:(UITableViewStylePlain)];
self.tableView.delegate = self;
self.tableView.dataSource = self;
self.tableView.backgroundColor = RGB16(0x1B1926);
// self.tableView.rowHeight = 73;
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
MJWeakSelf
self.tableView.mj_footer = [MJRefreshBackStateFooter footerWithRefreshingBlock:^{
weakSelf.page++;
[weakSelf getSongList];
}];
self.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
weakSelf.page = 1;
[weakSelf getSongList];
}];
[self addSubview:self.tableView];
}
-(void)setType:(NSInteger)type{
_type = type;
}
-(void)setPitModel:(QXRoomPitModel *)pitModel{
_pitModel = pitModel;
}
-(void)getSongList{
MJWeakSelf
if (self.type == 0) {
///
NSString *roomId = @"";
NSString *userId = @"";
if (self.pitModel == nil) {
///
roomId = self.roomId;
userId = @"";
}else{
///
userId = self.pitModel.user_id;
roomId = @"";
}
[QXMineNetwork getUserSongListWithRoomId:roomId user_id:userId page:self.page SuccessBlock:^(NSArray<QXUserSongListModel *> * _Nonnull list, NSString * _Nonnull count) {
if (weakSelf.page == 1) {
[weakSelf.dataArray removeAllObjects];
}
[weakSelf.dataArray addObjectsFromArray:list];
[weakSelf.tableView reloadData];
[weakSelf.tableView.mj_header endRefreshing];
if (list.count == 0) {
weakSelf.tableView.mj_footer.state = MJRefreshStateNoMoreData;
}else{
[weakSelf.tableView.mj_header endRefreshing];
}
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
}];
}else if (self.type == 1){
///
[QXMineNetwork requestSongWithRoomId:self.roomId type:1 page:self.page successBlock:^(NSArray<QXUserSongListModel *> * _Nonnull list, NSString * _Nonnull count) {
if (weakSelf.page == 1) {
[weakSelf.dataArray removeAllObjects];
}
[weakSelf.dataArray addObjectsFromArray:list];
[weakSelf.tableView reloadData];
[weakSelf.tableView.mj_header endRefreshing];
if (list.count == 0) {
weakSelf.tableView.mj_footer.state = MJRefreshStateNoMoreData;
}else{
[weakSelf.tableView.mj_header endRefreshing];
}
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
}];
}else{
///
[QXMineNetwork requestSongWithRoomId:self.roomId type:self.historyType page:self.page successBlock:^(NSArray<QXUserSongListModel *> * _Nonnull list, NSString * _Nonnull count) {
if (weakSelf.page == 1) {
[weakSelf.dataArray removeAllObjects];
}
[weakSelf.dataArray addObjectsFromArray:list];
[weakSelf.tableView reloadData];
[weakSelf.tableView.mj_header endRefreshing];
if (list.count == 0) {
weakSelf.tableView.mj_footer.state = MJRefreshStateNoMoreData;
}else{
[weakSelf.tableView.mj_header endRefreshing];
}
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
}];
}
}
-(void)updateSongList{
self.page = 1;
[self getSongList];
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return self.dataArray.count;
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
QXSingerSongListCell *cell = [QXSingerSongListCell cellWithTableView:tableView];
cell.type = self.type;
cell.isCompere = self.isCompere;
cell.index = indexPath.row;
cell.model = self.dataArray[indexPath.row];
cell.roomId = self.roomId;
cell.delegate = self;
return cell;
}
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
if (self.type == 0) {
return 73;
}else{
return 75+8;
}
}
-(NSMutableArray *)dataArray{
if (!_dataArray) {
_dataArray = [NSMutableArray array];
}
return _dataArray;
}
@end