小说绘上架版本
This commit is contained in:
+18
@@ -0,0 +1,18 @@
|
||||
//
|
||||
// TFRewardRecordViewController.h
|
||||
// TFReader
|
||||
//
|
||||
// Created by 谢腾飞 on 2020/12/21.
|
||||
// Copyright © 2020 xtfei_2011@126.com. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "TFBasicViewController.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface TFRewardRecordViewController : TFBasicViewController
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
+128
@@ -0,0 +1,128 @@
|
||||
//
|
||||
// TFRewardRecordViewController.m
|
||||
// TFReader
|
||||
//
|
||||
// Created by 谢腾飞 on 2020/12/21.
|
||||
// Copyright © 2020 xtfei_2011@126.com. All rights reserved.
|
||||
//
|
||||
|
||||
#import "TFRewardRecordViewController.h"
|
||||
#import "TFRewardRecordViewCell.h"
|
||||
#import "TFRewardRecordModel.h"
|
||||
|
||||
@interface TFRewardRecordViewController ()<UITableViewDataSource>
|
||||
|
||||
@property (nonatomic ,strong) TFRewardRecordModel *recordModel;
|
||||
|
||||
@end
|
||||
|
||||
@implementation TFRewardRecordViewController
|
||||
|
||||
- (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(@"打赏记录")];
|
||||
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:TFRewardRecordViewCell.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];
|
||||
|
||||
WS(weakSelf)
|
||||
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.recordModel.list.count;
|
||||
}
|
||||
|
||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
|
||||
{
|
||||
TFRewardRecordViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Identifier" forIndexPath:indexPath];
|
||||
[cell setRecordModel:self.recordModel.list[indexPath.row]];
|
||||
[cell setSplitLineHidden:self.recordModel.list.count == indexPath.row + 1];
|
||||
return cell;
|
||||
}
|
||||
|
||||
- (void)netRequest
|
||||
{
|
||||
if (!TFUserInfoManager.isLogin || [TFNetworkManager networkingStatus] == NO) {
|
||||
[self.mainTableView xtfei_showEmptyView];
|
||||
return;
|
||||
}
|
||||
|
||||
NSDictionary *params = @{
|
||||
@"page_num":[TFUtilsHelper formatStringWithInteger:self.currentPageNumber]
|
||||
};
|
||||
|
||||
WS(weakSelf)
|
||||
[TFNetworkTools POSTQuick:Book_Reward_Gift_Log parameters:params model:TFRewardRecordModel.class success:^(BOOL isSuccess, TFRewardRecordModel *_Nullable t_model, BOOL isCache, TFNetworkRequestModel *requestModel) {
|
||||
[weakSelf.mainTableView endRefreshing];
|
||||
if (isSuccess) {
|
||||
if (t_model.current_page == 1) {
|
||||
weakSelf.recordModel = t_model;
|
||||
} else {
|
||||
weakSelf.recordModel.list = [weakSelf.recordModel.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.recordModel.list.count > 0) {
|
||||
[weakSelf.mainTableView xtfei_hideEmptyView];
|
||||
} else {
|
||||
[weakSelf.mainTableView xtfei_showEmptyView];
|
||||
}
|
||||
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
|
||||
if (weakSelf.recordModel.list.count > 0) {
|
||||
[weakSelf.mainTableView xtfei_hideEmptyView];
|
||||
} else {
|
||||
[weakSelf.mainTableView xtfei_showEmptyView];
|
||||
}
|
||||
[TFPromptManager showPromptWithError:error defaultText:nil];
|
||||
}];
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -0,0 +1,34 @@
|
||||
//
|
||||
// TFRewardRecordModel.h
|
||||
// TFReader
|
||||
//
|
||||
// Created by 谢腾飞 on 2020/12/21.
|
||||
// Copyright © 2020 xtfei_2011@126.com. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
@class TFRewardRecordListModel, TFPagingModel;
|
||||
|
||||
@interface TFRewardRecordModel : TFPagingModel
|
||||
|
||||
@property (nonatomic ,copy) NSArray<TFRewardRecordListModel *> *list;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
|
||||
@interface TFRewardRecordListModel : NSObject
|
||||
|
||||
@property (nonatomic ,copy) NSString *title;
|
||||
|
||||
@property (nonatomic ,copy) NSString *desc;
|
||||
|
||||
@property (nonatomic ,copy) NSString *time;
|
||||
|
||||
@property (nonatomic ,assign) NSInteger log_id;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,25 @@
|
||||
//
|
||||
// TFRewardRecordModel.m
|
||||
// TFReader
|
||||
//
|
||||
// Created by 谢腾飞 on 2020/12/21.
|
||||
// Copyright © 2020 xtfei_2011@126.com. All rights reserved.
|
||||
//
|
||||
|
||||
#import "TFRewardRecordModel.h"
|
||||
|
||||
@implementation TFRewardRecordModel
|
||||
|
||||
+ (NSDictionary<NSString *,id> *)modelContainerPropertyGenericClass
|
||||
{
|
||||
return @{
|
||||
@"list" : TFRewardRecordListModel.class
|
||||
};
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@implementation TFRewardRecordListModel
|
||||
|
||||
@end
|
||||
@@ -0,0 +1,22 @@
|
||||
//
|
||||
// TFRewardRecordViewCell.h
|
||||
// TFReader
|
||||
//
|
||||
// Created by 谢腾飞 on 2020/12/21.
|
||||
// Copyright © 2020 xtfei_2011@126.com. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
@class TFRewardRecordListModel;
|
||||
|
||||
@interface TFRewardRecordViewCell : UITableViewCell
|
||||
|
||||
@property (nonatomic ,strong) TFRewardRecordListModel *recordModel;
|
||||
|
||||
- (void)setSplitLineHidden:(BOOL)hidden;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,82 @@
|
||||
//
|
||||
// TFRewardRecordViewCell.m
|
||||
// TFReader
|
||||
//
|
||||
// Created by 谢腾飞 on 2020/12/21.
|
||||
// Copyright © 2020 xtfei_2011@126.com. All rights reserved.
|
||||
//
|
||||
|
||||
#import "TFRewardRecordViewCell.h"
|
||||
#import "TFRewardRecordModel.h"
|
||||
#import "NSObject+Observer.h"
|
||||
|
||||
@interface TFRewardRecordViewCell ()
|
||||
{
|
||||
UIView *_splitLine;
|
||||
}
|
||||
@end
|
||||
|
||||
@implementation TFRewardRecordViewCell
|
||||
|
||||
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
|
||||
{
|
||||
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
|
||||
self.selectionStyle = UITableViewCellSelectionStyleNone;
|
||||
[self createSubviews];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)createSubviews
|
||||
{
|
||||
UILabel *nameLabel = [[UILabel alloc] init];
|
||||
nameLabel.textColor = kBlackColor;
|
||||
nameLabel.font = kFont14;
|
||||
[self.contentView addSubview:nameLabel];
|
||||
[nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.equalTo(self.contentView).offset(kMargin);
|
||||
make.left.equalTo(self.contentView).offset(kMoreHalfMargin);
|
||||
}];
|
||||
|
||||
UILabel *descLabel = [[UILabel alloc] init];
|
||||
descLabel.textColor = kGrayTextColor;
|
||||
descLabel.font = kFont13;
|
||||
[self.contentView addSubview:descLabel];
|
||||
[descLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.equalTo(nameLabel.mas_bottom).offset(kHalfMargin);
|
||||
make.left.equalTo(nameLabel);
|
||||
}];
|
||||
|
||||
UILabel *timeLabel = [[UILabel alloc] init];
|
||||
timeLabel.textColor = kGrayTextColor;
|
||||
timeLabel.font = kFont13;
|
||||
[self.contentView addSubview:timeLabel];
|
||||
[timeLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.equalTo(descLabel.mas_bottom).offset(kHalfMargin);
|
||||
make.left.equalTo(nameLabel);
|
||||
}];
|
||||
|
||||
_splitLine = [[UIView alloc] init];
|
||||
_splitLine.backgroundColor = kGrayLineColor;
|
||||
[self.contentView addSubview:_splitLine];
|
||||
[_splitLine mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.height.mas_equalTo(kCellLineHeight);
|
||||
make.bottom.equalTo(self.contentView);
|
||||
make.left.equalTo(self.contentView).offset(kMoreHalfMargin);
|
||||
make.right.equalTo(self.contentView).offset(-kMoreHalfMargin);
|
||||
make.top.equalTo(timeLabel.mas_bottom).offset(kHalfMargin).priorityLow();
|
||||
}];
|
||||
|
||||
[self addObserver:KEY_PATH(self, recordModel) complete:^(id _Nonnull obj, id _Nullable oldVal, TFRewardRecordListModel * _Nullable newVal) {
|
||||
nameLabel.text = newVal.title ? : @"";
|
||||
timeLabel.text = newVal.time ? : @"";
|
||||
descLabel.text = newVal.desc ? : @"";
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)setSplitLineHidden:(BOOL)hidden
|
||||
{
|
||||
_splitLine.hidden = hidden;
|
||||
}
|
||||
|
||||
@end
|
||||
Reference in New Issue
Block a user