小说绘上架版本

This commit is contained in:
xtfei2011
2021-02-07 11:24:08 +08:00
commit ee5c1c8b12
1762 changed files with 115892 additions and 0 deletions
@@ -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
@@ -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