Files
yuyin_ios/SweetParty/主类/狸猫新增/周星榜/LMWeekStarViewController.m

202 lines
7.4 KiB
Mathematica
Raw Permalink Normal View History

2025-08-08 11:05:33 +08:00
//
// LMWeekStarViewController.m
// SweetParty
//
// Created by Xmac on 2024/8/6.
//
#import "LMWeekStarViewController.h"
#import "LMWeekLastCollectionViewCell.h"
#import "LMWeekListTableViewCell.h"
#import "LMWeekListHeaderView.h"
@interface LMWeekStarViewController ()<UITableViewDelegate,UITableViewDataSource,UICollectionViewDelegate,UICollectionViewDataSource>
@property (weak, nonatomic) IBOutlet UITableView *currentTableView;
@property (weak, nonatomic) IBOutlet UICollectionView *lastWeekTopItemView;
@property (nonatomic, strong) LMWeekListHeaderView *headerView;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *topLayout;
@property (nonatomic, strong) NSMutableArray *lastWeekDataArr;
@property (nonatomic, strong) NSMutableArray *currentListDataArr;
@property (weak, nonatomic) IBOutlet UILabel *meInfoisRank;
@property (weak, nonatomic) IBOutlet UIImageView *meInfoHeaderPic;
@property (weak, nonatomic) IBOutlet UILabel *meInfoNicknameLabel;
@property (weak, nonatomic) IBOutlet UILabel *meInfoDeffNumLabel;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *heightConstraint;
@end
@implementation LMWeekStarViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
self.navTitle = @"周星榜";
[self.customNavBar styleClear];
self.customNavBar.titleLab.textColor = kWhiteColor;
[self.customNavBar.left0Btn setImage:ImageNamed(@"whiteBack") forState:(UIControlStateNormal)];
self.view.backgroundColor = HEXCOLOR(0x390780);
UIButton *btn = [UIButton buttonWithType:(UIButtonTypeCustom)];
[btn setImage:ImageNamed(@"week_home_yiwen") forState:(UIControlStateNormal)];
[self.customNavBar addSubview:btn];
[btn buttonAddTaget:^(UIButton *btn) {
[UIViewController goWebWithUrl:[VERSION_HTTPS_SERVER stringByAppendingString:@"index.php/index/index/page_show?id=20"]];
} forControlEvents:(UIControlEventTouchUpInside)];
[btn mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.mas_equalTo(-15);
make.width.height.mas_equalTo(30);
make.top.mas_equalTo(yb_StatusBar_H+7);
}];
[self setupUI];
[self requestGiftLastWeekRank];
}
- (void)setupUI
{
self.topLayout.constant = yb_NavigationBar_H;
[self.currentTableView registerNib:[UINib nibWithNibName:@"LMWeekListTableViewCell" bundle:nil] forCellReuseIdentifier:LMWeekListTableViewCellID];
self.currentTableView.tableHeaderView = self.headerView;
UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
flowLayout.itemSize = CGSizeMake((APPW-30)/4, 140);
flowLayout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
flowLayout.minimumLineSpacing = 0;
self.lastWeekTopItemView.collectionViewLayout = flowLayout;
self.lastWeekTopItemView.delegate = self;
self.lastWeekTopItemView.dataSource = self;
[self.lastWeekTopItemView registerNib:[UINib nibWithNibName:@"LMWeekLastCollectionViewCell" bundle:nil] forCellWithReuseIdentifier:LMWeekLastCollectionViewCellID];
}
- (void)setmeInfoWithDict:(NSDictionary *)myinfo
{
NSInteger is_top_rank = [myinfo safeIntForKey:@"is_top_rank"];//1 2
if (is_top_rank == 1){
self.meInfoisRank.text = @"已上榜";
self.meInfoDeffNumLabel.hidden = YES;
}else{
self.meInfoisRank.text = @"未上榜";
self.meInfoDeffNumLabel.text = [NSString stringWithFormat:@"距上榜还差%@个",[myinfo safeStringForKey:@"diff_num"]];
self.meInfoDeffNumLabel.hidden = NO;
}
self.meInfoNicknameLabel.text = [myinfo safeStringForKey:@"nick_name"];
[self.meInfoHeaderPic sd_setImageWithURL:[NSURL URLWithString:[myinfo safeStringForKey:@"head_pic"]] placeholderImage:kDefaultUserIcon];
}
#pragma mark
- (void)requestGiftLastWeekRank
{
[BJHttpTool BJ_Last_week_rankWithParameters:@{} success:^(id response) {
self.lastWeekDataArr = [LMLastWeekRankListModel mj_objectArrayWithKeyValuesArray:response[@"data"]];
[self.lastWeekTopItemView reloadData];
if (self.lastWeekDataArr.count > 0) {
self.heightConstraint.constant = 200;
}else {
self.heightConstraint.constant = 55;
}
} failure:^(NSError *error) {
}];
}
- (void)requestGiftCurrentWeekRankListWithGid:(NSString *)gid
{
[BJHttpTool BJ_Now_week_rankWithParameters:@{@"gid":gid} success:^(id response) {
NSDictionary *data = [response safeDictionaryForKey:@"data"];
self.currentListDataArr = [LMCurrentWeekGiftRankListModel mj_objectArrayWithKeyValuesArray:[data safeArrayForKey:@"list"]];
[self.currentTableView reloadData];
NSDictionary *myinfo = [data safeDictionaryForKey:@"my_user_info"];
[self setmeInfoWithDict:myinfo];
} failure:^(NSError *error) {
}];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return self.currentListDataArr.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
LMWeekListTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:LMWeekListTableViewCellID forIndexPath:indexPath];
cell.model = self.currentListDataArr[indexPath.row];
cell.rankLabel.text = [NSString stringWithFormat:@"%02ld",indexPath.row+1];
if (indexPath.row < 3){
NSString *rankiconStr = [NSString stringWithFormat:@"week_rank_%ld",indexPath.row+1];
cell.rankIcon.image = ImageNamed(rankiconStr);
cell.rankIcon.hidden = NO;
cell.rankLabel.hidden = YES;
// if (indexPath.row == 0){
// cell.receiveHeaderPic.layer.borderColor = HEXCOLOR(0xF9A920).CGColor;
// }else if (indexPath.row == 1){
// cell.receiveHeaderPic.layer.borderColor = HEXCOLOR(0xAEBAC3).CGColor;
// }else if (indexPath.row == 2){
// cell.receiveHeaderPic.layer.borderColor = HEXCOLOR(0xF36745).CGColor;
// }
}else{
cell.receiveHeaderPic.layer.borderColor = kClearColor.CGColor;
cell.rankIcon.hidden = YES;
cell.rankLabel.hidden = NO;
}
return cell;
}
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
return self.lastWeekDataArr.count;
}
- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
LMWeekLastCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:LMWeekLastCollectionViewCellID forIndexPath:indexPath];
cell.model = self.lastWeekDataArr[indexPath.row];
return cell;
}
- (LMWeekListHeaderView *)headerView
{
if (!_headerView){
_headerView = LoadNib(@"LMWeekListHeaderView");
_headerView.frame = CGRectMake(0, 0, APPW-30, 110);
WEAK_SELF;
_headerView.updateListBlock = ^(NSString * _Nonnull gid) {
[weakSelf requestGiftCurrentWeekRankListWithGid:gid];
};
}
return _headerView;
}
- (NSMutableArray *)lastWeekDataArr
{
if (!_lastWeekDataArr){
_lastWeekDataArr = [NSMutableArray array];
}
return _lastWeekDataArr;
}
- (NSMutableArray *)currentListDataArr
{
if (!_currentListDataArr){
_currentListDataArr = [NSMutableArray array];
}
return _currentListDataArr;
}
@end