You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

148 lines
5.2 KiB

//
// TFMonthlyTicketViewController.m
// TFReader
//
// Created by 谢腾飞 on 2020/12/21.
// Copyright © 2020 xtfei_2011@126.com. All rights reserved.
//
#import "TFMonthlyTicketViewController.h"
#import "TFMonthlyTicketModel.h"
#import "NSObject+Observer.h"
#import "TFWebViewController.h"
#import "TFMonthlyTicketViewCell.h"
@interface TFMonthlyTicketViewController ()<UITableViewDataSource>
@property (nonatomic ,strong) TFMonthlyTicketModel *logModel;
@end
@implementation TFMonthlyTicketViewController
- (void)viewDidLoad
{
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(netRequest) name:Notification_Login_Success object:nil];
[self createSubviews];
[self netRequest];
}
- (void)createSubviews
{
[self setNavigationBarTitle:TFLocalizedString(@"月票记录")];
UIButton *_rightBtn = nil;
WS(weakSelf)
[self setNavigationBarRightButton:({
UIButton *rightBtn = [UIButton buttonWithType:UIButtonTypeCustom];
_rightBtn = rightBtn;
rightBtn.hidden = YES;
rightBtn.adjustsImageWhenHighlighted = NO;
[rightBtn setImage:[UIImage imageNamed:@"book_help"] forState:UIControlStateNormal];
[rightBtn addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithActionBlock:^(id _Nonnull sender) {
TFWebViewController *vc = [[TFWebViewController alloc] init];
vc.URLString = weakSelf.logModel.ticket_rule ?: @"";
vc.navTitle = TFLocalizedString(@"月票说明");
vc.isPresentState = NO;
[weakSelf.navigationController pushViewController:vc animated:YES];
}]];
rightBtn;
})];
[_rightBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.equalTo(self.navigationBar.navTitleLabel);
make.right.equalTo(self.view).offset(- kMoreHalfMargin);
make.height.width.mas_equalTo(21);
}];
self.view.backgroundColor = [UIColor whiteColor];
[self.view addSubview:self.mainTableView];
[self.mainTableView setContentInset:UIEdgeInsetsMake(0, 0, PUB_TABBAR_OFFSET, 0)];
self.mainTableView.dataSource = self;
[self.mainTableView registerClass:TFMonthlyTicketViewCell.class forCellReuseIdentifier:@"Identifier"];
[self.mainTableView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.view).offset(PUB_NAVBAR_HEIGHT);
make.left.right.bottom.equalTo(self.view);
}];
[self createEmptyView];
self.mainTableView.mj_footer = [TFRefreshFooter footerWithRefreshingBlock:^{
weakSelf.currentPageNumber ++;
[weakSelf netRequest];
}];
}
- (void)createEmptyView
{
WS(weakSelf)
if (!TFUserInfoManager.isLogin) {
[self setEmptyOnView:self.mainTableView title:TFLocalizedString(@"登录后查看月票记录") buttonTitle:TFLocalizedString(@"立即登录") tapBlock:^{
[TFLoginOptionsViewController presentLoginView:^(TFUserInfoManager * _Nonnull userDataModel) {
weakSelf.emptyView = nil;
[weakSelf createEmptyView];
}];
}];
} else {
[self setEmptyOnView:self.mainTableView title:TFLocalizedString(@"暂无月票记录") buttonTitle:@"" tapBlock:^{
}];
}
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return self.logModel.list.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
TFMonthlyTicketViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Identifier" forIndexPath:indexPath];
[cell setTicketListModel:self.logModel.list[indexPath.row]];
[cell setSplitLineHidden:self.logModel.list.count == indexPath.row + 1];
return cell;
}
- (void)netRequest
{
if (!TFUserInfoManager.isLogin) {
[self.mainTableView xtfei_showEmptyView];
return;
}
NSDictionary *params = @{
@"page_num":[TFUtilsHelper formatStringWithInteger:self.currentPageNumber]
};
WS(weakSelf)
[TFNetworkTools POSTQuick:Book_Reward_Ticket_Log parameters:params model:TFMonthlyTicketModel.class success:^(BOOL isSuccess, TFMonthlyTicketModel *_Nullable t_model, BOOL isCache, TFNetworkRequestModel *requestModel) {
[weakSelf.mainTableView endRefreshing];
if (isSuccess) {
if (t_model.current_page == 1) {
weakSelf.logModel = t_model;
} else {
weakSelf.logModel.list = [weakSelf.logModel.list arrayByAddingObjectsFromArray:t_model.list];
}
[weakSelf.mainTableView reloadData];
if (t_model.current_page >= t_model.total_page) {
[weakSelf.mainTableView hideRefreshFooter];
}
} else {
[TFPromptManager showPromptViewWithStatus:TFPromptStatusError promptTitle:requestModel.msg];
}
if (weakSelf.logModel.list.count > 0) {
[weakSelf.mainTableView xtfei_hideEmptyView];
} else {
[weakSelf.mainTableView xtfei_showEmptyView];
}
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
[TFPromptManager showPromptWithError:error defaultText:nil];
}];
}
@end