| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440 |
- //
- // MODiaWinBaseView.m
- // MiMoLive
- //
- // Created by SuperC on 2024/7/2.
- //
- #import "MODiaWinBaseView.h"
- #import "TYCyclePagerView.h"
- #import "MOLuclyUserCell.h"
- #import "UIImage+YYAdd.h"
- #import "MOTopUpVC.h"
- //一页的size
- #define kPageSize 10
- @interface MODiaWinBaseView ()<UITableViewDelegate,UITableViewDataSource,TYCyclePagerViewDataSource,TYCyclePagerViewDelegate>
- @property (nonatomic, strong) TYCyclePagerView *pagerView;//中奖用户轮播
- @property (nonatomic, strong) NSArray *pagerDataArr;
- //默认132
- @property (weak, nonatomic) IBOutlet NSLayoutConstraint *freeViewTop;
- @property (weak, nonatomic) IBOutlet UIImageView *freeTagImg;
- @property (weak, nonatomic) IBOutlet UILabel *freeTipLab;
- @property (weak, nonatomic) IBOutlet UILabel *freeContentLab;
- @property (weak, nonatomic) IBOutlet UIButton *freeJoinBtn;
- @property (weak, nonatomic) IBOutlet UIImageView *headImgView;
- @property (weak, nonatomic) IBOutlet UILabel *nameLab;
- @property (weak, nonatomic) IBOutlet UIButton *zuanBtn;
- @property (weak, nonatomic) IBOutlet UIButton *rechargeBtn;
- @property (weak, nonatomic) IBOutlet UILabel *drawLab;
- @property (weak, nonatomic) IBOutlet UIImageView *drawImg;
- @property (weak, nonatomic) IBOutlet UIButton *drawBtn;
- @property (weak, nonatomic) IBOutlet UILabel *latestLab;
- @property (weak, nonatomic) IBOutlet UIImageView *latestImg;
- @property (weak, nonatomic) IBOutlet UIButton *latestBtn;
- @property (weak, nonatomic) IBOutlet UILabel *valueLab;
- @property (weak, nonatomic) IBOutlet UIImageView *valueImg;
- @property (weak, nonatomic) IBOutlet UIButton *valueBtn;
- @property (weak, nonatomic) IBOutlet UITableView *tableView;
- @property (nonatomic, strong) NSMutableArray *dataArr;
- @property (nonatomic, assign) NSInteger currentSort;
- /** 没有更多的数据视图 */
- @property (nonatomic, strong) MONoMoreDataView *noMoreDataView;
- /** 游标 */
- @property (nonatomic, copy) NSString *next;
- @end
- @implementation MODiaWinBaseView
- + (instancetype)moDiaWinBaseView{
- return [[[NSBundle mainBundle] loadNibNamed:@"MODiaWinBaseView" owner:self options:nil] firstObject];
- }
- - (void)awakeFromNib{
- [super awakeFromNib];
-
- [self.freeJoinBtn setFont:[MOTextTools getTheFontWithSize:18.0 AndFontName:kNormalTitleFontStr]];
- self.drawLab.font = [MOTextTools getTheFontWithSize:11.0 AndFontName:kNormalTitleFontStr];
- self.latestLab.font = [MOTextTools getTheFontWithSize:11.0 AndFontName:kNormalTitleFontStr];
- self.valueLab.font = [MOTextTools getTheFontWithSize:11.0 AndFontName:kNormalTitleFontStr];
-
- self.freeTipLab.text = NSLocalString(@"mimo_diamonds_win_m_free_tip");
- self.freeContentLab.text = NSLocalString(@"mimo_diamonds_win_m_free_c_tip");
- self.freeJoinBtn.titleLabel.numberOfLines = 0;
- [self.freeJoinBtn setTitle:NSLocalString(@"mimo_diamonds_win_m_join_btn") forState:UIControlStateNormal];
-
- self.drawLab.text = NSLocalString(@"mimo_diamonds_win_m_draw_btn");
- self.latestLab.text = NSLocalString(@"mimo_diamonds_win_m_latest_btn");
- self.valueLab.text = NSLocalString(@"mimo_diamonds_win_m_value_btn");
-
- [self.rechargeBtn setTitle:NSLocalString(@"mimo_recharge_title") forState:UIControlStateNormal];
-
- [self addSubview:self.pagerView];
- [self.pagerView mas_makeConstraints:^(MASConstraintMaker *make) {
- make.top.equalTo(self).offset(33.0);
- make.left.equalTo(self).offset(10.0);
- make.right.equalTo(self).offset(-10.0);
- make.height.equalTo(@88.0);
- }];
-
- self.tableView.layer.cornerRadius = 8.0;
- self.tableView.layer.masksToBounds = YES;
-
- self.tableView.estimatedRowHeight = 0;
- self.tableView.estimatedSectionHeaderHeight = 0;
- self.tableView.estimatedSectionFooterHeight = 0;
- self.tableView.rowHeight = 84.0;
- self.tableView.delegate = self;
- self.tableView.dataSource = self;
-
- //iOS15适配
- if (@available(iOS 15.0, *))
- {
- self.tableView.sectionHeaderTopPadding = 0;
- }
- [self.tableView registerNib:[UINib nibWithNibName:@"MOLuckyCodeCell" bundle:nil] forCellReuseIdentifier:MOLuckyCodeCell_ID];
-
- WEAKSELF
-
- MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
-
- weakSelf.next = @"";
- NSDictionary *basePage = @{@"size":@(kPageSize),@"next":weakSelf.next};
- NSDictionary *baseDict = @{@"type":@(2),
- @"sort":@(weakSelf.currentSort),
- @"page":basePage};
-
- [weakSelf toGetTheListDataWith:baseDict];
- }];
-
- header.lastUpdatedTimeLabel.hidden = YES;
- header.stateLabel.hidden = YES;
- self.tableView.mj_header = header;
-
- self.tableView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{
-
- if(weakSelf.next.length == 0){
- return;
- }
-
- NSDictionary *basePage = @{@"size":@(kPageSize),@"next":weakSelf.next};
- NSDictionary *baseDict = @{@"type":@(2),
- @"sort":@(weakSelf.currentSort),
- @"page":basePage};
-
- [weakSelf toGetTheListDataWith:baseDict];
- }];
-
- self.tableView.mj_footer.hidden = YES;
-
- self.tableView.backgroundView = self.noMoreDataView;
-
- self.zuanBtn.titleEdgeInsets = UIEdgeInsetsMake(0, 5, 0, 0);
-
- self.rechargeBtn.semanticContentAttribute = UISemanticContentAttributeForceRightToLeft;
- self.rechargeBtn.imageEdgeInsets = UIEdgeInsetsMake(0, 5, 0, 0);
-
- [self.drawImg setImage:[UIImage imageNamed:@"icon_dia_win_left_btn"]];
-
- UIImage *latestImage = [UIImage imageNamed:@"icon_dia_win_center_btn"];
- UIImage *latestImageGray = [latestImage imageByGrayscale];
- [self.latestImg setImage:latestImageGray];
-
- UIImage *valueImage = [UIImage imageNamed:@"icon_dia_win_right_btn"];
- UIImage *valueImageGray = [valueImage imageByGrayscale];
- [self.valueImg setImage:valueImageGray];
-
- MOMeDataInfo *userInfoData = (MOMeDataInfo *)[[MODataCache sharedYYCache] objectForKey:kMineUserInfo];
- [self.headImgView sd_setImageWithURL:[NSURL URLWithString:userInfoData.userProfile.avatar] placeholderImage:[UIImage imageNamed:@"icon_mine_placeHolder"]];
- self.headImgView.layer.cornerRadius = 42.0 / 2.0;
- self.headImgView.layer.masksToBounds = YES;
-
- self.nameLab.text = userInfoData.userProfile.nickname;
- [self.zuanBtn setTitle:[NSString stringWithFormat:@"%.f",userInfoData.userWallet.diamond] forState:UIControlStateNormal];
-
- self.currentSort = 1;
- }
- - (IBAction)freeJoinBtnClick:(id)sender {
- self.freeJoinBlock ? self.freeJoinBlock() : nil;
- }
- - (IBAction)valueChangeBtnClick:(UIButton *)sender {
-
- UIImage *drawImage = [UIImage imageNamed:@"icon_dia_win_left_btn"];
- UIImage *drawImageGray = [drawImage imageByGrayscale];
-
- UIImage *latestImage = [UIImage imageNamed:@"icon_dia_win_center_btn"];
- UIImage *latestImageGray = [latestImage imageByGrayscale];
-
- UIImage *valueImage = [UIImage imageNamed:@"icon_dia_win_right_btn"];
- UIImage *valueImageGray = [valueImage imageByGrayscale];
-
- if(sender == self.drawBtn){
- //左
- [self.drawImg setImage:drawImage];
- [self.latestImg setImage:latestImageGray];
- [self.valueImg setImage:valueImageGray];
-
- self.currentSort = 1;
- [self getListDataWith:1];
- }
- else if (sender == self.latestBtn){
- //中
- [self.drawImg setImage:drawImageGray];
- [self.latestImg setImage:latestImage];
- [self.valueImg setImage:valueImageGray];
-
- self.currentSort = 2;
- [self getListDataWith:2];
- }
- else{
- //右
- [self.drawImg setImage:drawImageGray];
- [self.latestImg setImage:latestImageGray];
- [self.valueImg setImage:valueImage];
-
- self.currentSort = 3;
- [self getListDataWith:3];
- }
- }
- - (void)getDrawData{
- //获取列表数据
- [self getListDataWith:1];
-
- //获取最近中奖
- [self toGetTheLateLyData];
- }
- - (void)refreshDataList{
- [self getListDataWith:self.currentSort];
- }
- - (void)getListDataWith:(NSInteger)sort{
- self.next = @"";
-
- NSDictionary *basePage = @{@"size":@(kPageSize),@"next":self.next};
- NSDictionary *baseDict = @{@"type":@(2),
- @"sort":@(sort),
- @"page":basePage};
- [self toGetTheListDataWith:baseDict];
- }
- - (IBAction)rechargeBtnClick:(id)sender {
- WEAKSELF
- UIViewController *currentVC = [MOTools currentViewController];
- MOTopUpVC *vc = [[MOTopUpVC alloc] init];
- vc.topUpSuccesssBlock = ^(MOMeDataInfo * _Nonnull model) {
- [weakSelf.zuanBtn setTitle:[NSString stringWithFormat:@"%.f",model.userWallet.diamond] forState:UIControlStateNormal];
- };
- [currentVC.navigationController pushViewController:vc animated:YES];
- }
- #pragma mark - Set
- - (void)setIsPushVC:(BOOL)isPushVC{
- _isPushVC = isPushVC;
-
- if(isPushVC){
- [self.freeTagImg setImage:[UIImage imageNamed:@"icon_dia_win_m_free_tag"]];
- }
- else{
- [self.freeTagImg setImage:[UIImage imageNamed:@"icon_dia_win_free_tag"]];
- }
- }
- #pragma mark - UITableViewDelegate,UITableViewDataSource
- - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
- return 1;
- }
- - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
- return self.dataArr.count;
- }
- - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
- MODiaWinList *model = self.dataArr[indexPath.row];
- MOLuckyCodeCell *cell = [tableView dequeueReusableCellWithIdentifier:MOLuckyCodeCell_ID];
- cell.cellModel = model;
- WEAKSELF
- cell.viewDetailBlock = ^(MODiaWinList * _Nonnull cellModel) {
- weakSelf.viewDetailBlock ? weakSelf.viewDetailBlock(cellModel) : nil;
- };
- cell.joinClickBlock = ^(MODiaWinList * _Nonnull cellModel) {
- weakSelf.joinClickBlock ? weakSelf.joinClickBlock(cellModel) : nil;
- };
- return cell;
- }
- #pragma mark - TYCyclePagerViewDataSource,TYCyclePagerViewDelegate
- - (NSInteger)numberOfItemsInPagerView:(TYCyclePagerView *)pageView{
- return self.pagerDataArr.count;
- }
- - (UICollectionViewCell *)pagerView:(TYCyclePagerView *)pagerView cellForItemAtIndex:(NSInteger)index{
- WEAKSELF
- MOWinnerList *model = self.pagerDataArr[index];
- MOLuclyUserCell *cell = [pagerView dequeueReusableCellWithReuseIdentifier:MOLuclyUserCell_ID forIndex:index];
- cell.cellModel = model;
- return cell;
- }
- - (TYCyclePagerViewLayout *)layoutForPagerView:(TYCyclePagerView *)pageView {
- TYCyclePagerViewLayout *layout = [[TYCyclePagerViewLayout alloc]init];
- layout.itemSize = CGSizeMake(88.0, 88.0);
- layout.itemSpacing = 0;
- layout.layoutType = TYCyclePagerTransformLayoutLinear;
- layout.itemHorizontalCenter = YES;
- return layout;
- }
- - (void)pagerView:(TYCyclePagerView *)pageView didScrollFromIndex:(NSInteger)fromIndex toIndex:(NSInteger)toIndex {
- // MOLogV(@"%ld -> %ld",fromIndex,toIndex);
- }
- - (void)pagerView:(TYCyclePagerView *)pageView didSelectedItemCell:(__kindof UICollectionViewCell *)cell atIndex:(NSInteger)index{
- MOWinnerList *model = self.pagerDataArr[index];
- self.headClickBlock ? self.headClickBlock(model.userProfile) : nil;
- }
- #pragma mark - Http Data
- - (void)toGetTheListDataWith:(NSDictionary *)dict{
- WEAKSELF
- [kHttpManager getTheBigWinListDataWithParams:dict andBlock:^(id _Nonnull data, NSError * _Nonnull error) {
- __strong typeof(weakSelf) self = weakSelf;
- [self.tableView.mj_header endRefreshing];
- [self.tableView.mj_footer endRefreshing];
- if(kCode_Success){
- MOLogV(@"%@",[[NSString alloc] initWithData:[NSJSONSerialization dataWithJSONObject:data options:0 error:nil] encoding:NSUTF8StringEncoding]);
- MODiaWinBaseData *baseModel = [MODiaWinBaseData modelObjectWithDictionary:data[@"data"]];
-
- if(baseModel.next == nil || baseModel.next.length == 0){
- if(self.next == nil || self.next.length == 0){
- //第一页
- [self.dataArr removeAllObjects];
- self.dataArr = [baseModel.diaWinList mutableCopy];
- }
- else{
- //最后一页
- [self.dataArr addObjectsFromArray:baseModel.diaWinList];
- }
- self.next = @"";
-
- [self.tableView.mj_footer endRefreshingWithNoMoreData];
- }
- else{
- if(self.next == nil || self.next.length == 0){
- //第一页
- [self.dataArr removeAllObjects];
- self.dataArr = [baseModel.diaWinList mutableCopy];
- }
- else{
- //最后一页
- [self.dataArr addObjectsFromArray:baseModel.diaWinList];
- }
- self.next = baseModel.next;
- }
-
- [self.tableView reloadData];
-
- self.tableView.mj_footer.hidden = (self.dataArr.count > 0) ? NO : YES;
- self.noMoreDataView.isHaveData = (self.dataArr.count > 0) ? YES : NO;
- }
- else{
- MOLogV(@"getTheBigWinListDataWithParams 接口报错了");
- kShowNetError(data)
- }
- }];
- }
- - (void)toGetTheLateLyData{
- WEAKSELF
- [kHttpManager getTheBigWinLatelyListDataWithParams:nil andBlock:^(id _Nonnull data, NSError * _Nonnull error) {
- if(kCode_Success){
- MOLogV(@"%@",[[NSString alloc] initWithData:[NSJSONSerialization dataWithJSONObject:data options:0 error:nil] encoding:NSUTF8StringEncoding]);
- MOWinnerBaseData *baseModel = [MOWinnerBaseData modelObjectWithDictionary:data[@"data"]];
-
- if(baseModel.winnerList.count < 5){
- weakSelf.pagerView.hidden = YES;
- weakSelf.freeViewTop.constant = 20.0;
- }
- else{
- weakSelf.pagerView.hidden = NO;
- weakSelf.pagerDataArr = [baseModel.winnerList mutableCopy];
- [weakSelf.pagerView reloadData];
- weakSelf.freeViewTop.constant = 132.0;
- }
-
-
- }
- else{
- MOLogV(@"getTheBigWinLatelyListDataWithParams 接口报错了");
- kShowNetError(data)
- }
- }];
- }
- - (void)updateUIWith:(MODiaWinDetailData *)dataModel{
- for (MODiaWinList *object in self.dataArr) {
- if([object.diaWinInfo.id isEqualToString:dataModel.diaWinInfo.id]){
-
- object.diaWinInfo = [dataModel.diaWinInfo copy];
- object.luckyCount = dataModel.diaWinMes.count;
- break;
- }
- }
-
- [self.tableView reloadData];
-
- [self.zuanBtn setTitle:[NSString stringWithFormat:@"%.f",dataModel.afterDiamond] forState:UIControlStateNormal];
- }
- #pragma mark - Lazy
- - (TYCyclePagerView *)pagerView{
- if(!_pagerView){
-
- _pagerView = [[TYCyclePagerView alloc] initWithFrame:CGRectMake(0.0, 0.0, SCREENWIDTH, 88.0)];
- _pagerView.isInfiniteLoop = YES;
- _pagerView.autoScrollInterval = 3.0;
- _pagerView.dataSource = self;
- _pagerView.delegate = self;
- _pagerView.layout.itemHorizontalCenter = YES;
- _pagerView.layout.layoutType = TYCyclePagerTransformLayoutLinear;
- _pagerView.layout.itemSize = CGSizeMake(88.0, 88.0);
- _pagerView.layout.itemSpacing = 0.0;
- [_pagerView registerNib:[UINib nibWithNibName:@"MOLuclyUserCell" bundle:nil] forCellWithReuseIdentifier:MOLuclyUserCell_ID];
- }
- return _pagerView;
- }
- - (MONoMoreDataView *)noMoreDataView{
- if(!_noMoreDataView){
- _noMoreDataView = [MONoMoreDataView new];
- }
- return _noMoreDataView;
- }
- - (NSMutableArray *)dataArr{
- if(!_dataArr){
- _dataArr = [NSMutableArray array];
- }
- return _dataArr;
- }
- @end
|