爵位完成

This commit is contained in:
启星
2025-11-11 17:19:21 +08:00
parent 406c481ba4
commit 7ac937ddbf
136 changed files with 3492 additions and 89 deletions

View File

@@ -31,6 +31,8 @@
#import "QXWalletRuleView.h"
#import "QXRechargeViewcController.h"
#import "QXGiftWallViewController.h"
#import "QXNobilityViewController.h"
#import "QXHomePageNetwork.h"
#import <WXApi.h>
@interface QXMineViewController ()<UITableViewDelegate,UITableViewDataSource,QXMineServiceCellDelegate,QXMainHeaderViewDelegate>
@@ -40,6 +42,7 @@
//@property (nonatomic,strong)UIButton *serviceBtn;
//@property (nonatomic,strong)UIButton *settingBtn;
@property (nonatomic,strong)QXUserModel *userModel;
@property (nonatomic,strong)NSMutableArray *bannerArry;
@end
@implementation QXMineViewController
@@ -81,6 +84,7 @@
// make.centerY.width.height.equalTo(self.settingBtn);
// }];
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(passwordDidChanged) name:noticeChangePassword object:nil];
[self getBanner];
}
-(void)getUserInfo{
MJWeakSelf
@@ -167,7 +171,8 @@
break;
case QXMainHeaderOptionTypeNobility:{
QXLOG(@"跳转贵族");
QXNobilityViewController *vc = [[QXNobilityViewController alloc] init];
[self.navigationController pushViewController:vc animated:YES];
}
break;
case QXMainHeaderOptionTypeRecharge:{
@@ -290,9 +295,18 @@
}
}
}
-(void)getBanner{
MJWeakSelf
[QXHomePageNetwork homeBannerWithType:@"6" successBlock:^(NSArray<QXBanner *> * _Nonnull list) {
weakSelf.tableHeaderView.bannerArray = list;
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
}];
}
-(void)gotoSetting{
QXSettingViewController *vc = [[QXSettingViewController alloc] init];
vc.haveNobility = self.userModel.is_hide.intValue == 1;
MJWeakSelf
vc.logOutBlock = ^(BOOL isCancel) {
if (isCancel) {
@@ -361,6 +375,12 @@
}
return _tableView;
}
-(NSMutableArray *)bannerArry{
if (!_bannerArry) {
_bannerArry = [NSMutableArray array];
}
return _bannerArry;
}
//-(UIButton *)settingBtn{
// if (!_settingBtn) {
// _settingBtn = [[UIButton alloc] init];

View File

@@ -0,0 +1,16 @@
//
// QXBuyNobilitySuccessViewController.h
// QXLive
//
// Created by 启星 on 2025/11/10.
//
#import "QXBaseViewController.h"
#import "QXNobilityGetPriceModel.h"
NS_ASSUME_NONNULL_BEGIN
@interface QXBuyNobilitySuccessViewController : QXBaseViewController
@property (nonatomic,strong)QXNobilityGetPriceModel *model;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,142 @@
//
// QXBuyNobilitySuccessViewController.m
// QXLive
//
// Created by on 2025/11/10.
//
#import "QXBuyNobilitySuccessViewController.h"
#import "QXNobilityBuyDesCell.h"
@interface QXBuyNobilitySuccessViewController ()<UITableViewDelegate,UITableViewDataSource>
@property (nonatomic,strong)UITableView *tableView;
@property (nonatomic,strong)UIView *headerView;
@property (nonatomic,strong)UIImageView *resultImageView;
@property (nonatomic,strong)UILabel *resultLabel;
@property (nonatomic,strong)UILabel *titleLabel;
@property (nonatomic,strong)UIImageView *nobilityImageView;
@end
@implementation QXBuyNobilitySuccessViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
}
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:NO animated:YES];
}
-(void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
}
-(void)initSubViews{
self.titleLabel.text = [NSString stringWithFormat:@"恭喜您已经成功开通%@爵位",self.model.nobility_name];
[self.nobilityImageView sd_setImageWithURL:[NSURL URLWithString:self.model.nobility_image]];
self.tableView.tableHeaderView = self.headerView;
[self.view addSubview:self.tableView];
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return self.model.power_list.count;
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
QXNobilityBuyDesCell *cell = [QXNobilityBuyDesCell cellWithTableView:tableView];
QXNobilityGetPricePowerList *md = self.model.power_list[indexPath.row];
cell.titleLabel.text = md.content;
return cell;
}
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 36;
}
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
UIView *header = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 42)];
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(16, 12, SCREEN_WIDTH-32, 30)];
label.font = [UIFont boldSystemFontOfSize:16];
label.text = @"骑士特权";
label.textColor = RGB16A(0x000000, 0.85);
[header addSubview:label];
return header;
}
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
return 42;
}
-(UITableView *)tableView{
if (!_tableView) {
self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, NavContentHeight, SCREEN_WIDTH, SCREEN_HEIGHT-NavContentHeight) style:UITableViewStyleGrouped];
self.tableView.backgroundColor = [UIColor clearColor];
self.tableView.delegate = self;
self.tableView.dataSource = self;
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
}
return _tableView;
}
-(UIView *)headerView{
if (!_headerView) {
_headerView = [[UIView alloc] initWithFrame:CGRectMake(0, NavContentHeight, SCREEN_WIDTH, 280)];
[_headerView addSubview:self.resultImageView];
[_headerView addSubview:self.resultLabel];
[_headerView addSubview:self.titleLabel];
[_headerView addSubview:self.nobilityImageView];
[self.resultImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(68);
make.height.mas_equalTo(60);
make.top.mas_equalTo(25);
make.centerX.equalTo(_headerView);
}];
[self.resultLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.height.mas_equalTo(22);
make.centerX.equalTo(_headerView);
make.top.equalTo(self.resultImageView.mas_bottom).offset(7);
}];
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.height.mas_equalTo(20);
make.centerX.equalTo(_headerView);
make.top.equalTo(self.resultLabel.mas_bottom).offset(7);
}];
[self.nobilityImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(104);
make.height.mas_equalTo(104);
make.top.equalTo(self.titleLabel.mas_bottom).offset(36);
make.centerX.equalTo(_headerView);
}];
}
return _headerView;
}
-(UIImageView *)resultImageView{
if (!_resultImageView) {
_resultImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"nobility_pay_result_successs"]];
}
return _resultImageView;
}
-(UILabel *)resultLabel{
if (!_resultLabel) {
_resultLabel = [[UILabel alloc] init];
_resultLabel.textColor = RGB16(0x333333);
_resultLabel.font = [UIFont boldSystemFontOfSize:20];
_resultLabel.text = @"支付成功";
}
return _resultLabel;
}
-(UILabel *)titleLabel{
if (!_titleLabel) {
_titleLabel = [[UILabel alloc] init];
_titleLabel.textColor = RGB16A(0x000000,0.65);
_titleLabel.font = [UIFont systemFontOfSize:14];
}
return _titleLabel;
}
-(UIImageView *)nobilityImageView{
if (!_nobilityImageView) {
_nobilityImageView = [[UIImageView alloc] init];
}
return _nobilityImageView;
}
@end

View File

@@ -0,0 +1,17 @@
//
// QXNobilityBuyViewController.h
// QXLive
//
// Created by 启星 on 2025/11/7.
//
#import "QXBaseViewController.h"
NS_ASSUME_NONNULL_BEGIN
@interface QXNobilityBuyViewController : QXBaseViewController
/// 购买id
@property (nonatomic,strong)NSString *nobility_id;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,343 @@
//
// QXNobilityBuyViewController.m
// QXLive
//
// Created by on 2025/11/7.
//
#import "QXNobilityBuyViewController.h"
#import "QXNobilityBuyDesCell.h"
#import "QXRechargePayTypeTableCell.h"
#import "QXNobilityPriceView.h"
#import "QXMineNetwork.h"
#import "QXBuyNobilitySuccessViewController.h"
#import <AlipaySDK/AlipaySDK.h>
#import <WXApi.h>
@interface QXNobilityBuyViewController ()<UITableViewDelegate,UITableViewDataSource>
@property (nonatomic,strong)UITableView *tableView;
@property (nonatomic,strong)QXNobilityGetPriceModel *model;
@property (nonatomic,strong)NSMutableArray* payTypeArray;
@property (nonatomic,strong)QXNobilityPriceView *priceView;
@property (nonatomic,strong)UIView *footerView;
@property (nonatomic,strong)UIView *tableFooterView;
@property (nonatomic,assign)BOOL isSelectedAgreement;
@property (nonatomic,strong)QXPayTypeModel* selectedPayTypeModel;
@end
@implementation QXNobilityBuyViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
}
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:NO animated:YES];
}
-(void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
}
-(void)setNavgationItems{
[super setNavgationItems];
self.navigationItem.title = @"支付";
}
- (void)initSubViews{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(paySuccess) name:noticeAlipayResult object:nil];
self.tableView.tableHeaderView = self.priceView;
self.tableView.tableFooterView = self.tableFooterView;
[self.view addSubview:self.tableView];
[self getRechargeList];
}
-(void)setNobility_id:(NSString *)nobility_id{
_nobility_id = nobility_id;
MJWeakSelf
[QXMineNetwork getNobilityPriceWithId:nobility_id successBlock:^(QXNobilityGetPriceModel * _Nonnull model) {
weakSelf.model = model;
weakSelf.priceView.model = model;
[weakSelf.tableView reloadData];
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
}];
}
-(void)getRechargeList{
MJWeakSelf
[QXMineNetwork walletPayTypeWithUserId:QXGlobal.shareGlobal.loginModel.user_id successBlock:^(QXPayTypeStatusModel * _Nonnull model) {
[weakSelf.payTypeArray removeAllObjects];
if (model.wx.is_pay_open.intValue == 1) {
[weakSelf.payTypeArray addObject:model.wx];
}
if (model.ali.is_pay_open.intValue == 1) {
[weakSelf.payTypeArray addObject:model.ali];
}
if (model.wx_tl.is_pay_open.intValue == 1) {
[weakSelf.payTypeArray addObject:model.wx_tl];
}
if (model.ali_tl.is_pay_open.intValue == 1) {
[weakSelf.payTypeArray addObject:model.ali_tl];
}
[weakSelf.tableView reloadData];
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
}];
}
-(void)payAction{
if (!self.isSelectedAgreement) {
showToast(@"请先阅读并同意爵位用户协议");
return;
}
if (self.selectedPayTypeModel == nil) {
showToast(@"请选择支付方式");
return;
}
@weakify(self)
[QXMineNetwork rechargePayWithMoney:self.model.price coin:@"" type:self.selectedPayTypeModel.type userId:QXGlobal.shareGlobal.loginModel.user_id typeId:@"" nobility_id:self.nobility_id successBlock:^(NSDictionary * _Nonnull dict) {
@strongify(self)
if (self.selectedPayTypeModel.type.intValue == 2) {
NSDictionary *resultDict = dict[@"data"];
NSString *order = [NSString stringWithFormat:@"%@",resultDict[@"ali"]];
[[AlipaySDK defaultService] payOrder:order fromScheme:AppScheme callback:^(NSDictionary *resultDic) {
NSLog(@"支付宝H5支付回调 - %@", resultDic);
}];
}else if (self.selectedPayTypeModel.type.intValue == 1) {
NSDictionary *resultDict = dict[@"data"][@"wx"];
NSString *appid = resultDict[@"appid"];
NSString *partnerId = resultDict[@"partnerid"];
NSString *prepayId = [NSString stringWithFormat:@"%@",resultDict[@"prepayid"]];
NSString *nonceStr = resultDict[@"noncestr"];
UInt32 timeStamp = (UInt32)[resultDict[@"timestamp"] intValue];
NSString *package = resultDict[@"package"];
NSString *sign = resultDict[@"sign"];
PayReq *req = [[PayReq alloc] init];
req.openID = appid;
req.partnerId = partnerId;
req.prepayId = prepayId;
req.nonceStr = nonceStr;
req.timeStamp = timeStamp;
req.package = package;
req.sign = sign;
[WXApi sendReq:req completion:^(BOOL success) {
}];
}
else if (self.selectedPayTypeModel.type.intValue == 4) {
NSMutableDictionary*dic = [NSMutableDictionary dictionaryWithDictionary:dict[@"data"][@"tl"]];
[dic removeObjectForKey:@"json_data"];
NSString *json = [dic jsonStringEncoded];
NSString *thirdPartSchema = [NSString stringWithFormat:@"thirdPartSchema=%@://",AppScheme];
NSString *json1 = [json stringByReplacingOccurrencesOfString:@"\\" withString:@""];
NSCharacterSet *customSet1 = [[NSCharacterSet characterSetWithCharactersInString:@"!*'();:@&=+$,/?%#[]{}\""] invertedSet];
// NSCharacterSet *customSet2 = [[NSCharacterSet characterSetWithCharactersInString:@"!*'();:@&=+$,/?%#[]{}\""] invertedSet];
NSCharacterSet *customSet3 = [[NSCharacterSet characterSetWithCharactersInString:@"!*'();:@&=+$,/?%#[]{}\""] invertedSet];
NSString *json2 = [json1 stringByAddingPercentEncodingWithAllowedCharacters:customSet1];
NSString *encodedString = [thirdPartSchema stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *queryString = [NSString stringWithFormat:@"payinfo=%@", json2];
NSString *doubleEncodedQuery = [queryString stringByAddingPercentEncodingWithAllowedCharacters:customSet3];
NSString *jumpStr = [NSString stringWithFormat:@"alipays://platformapi/startapp?appId=2021001104615521&page=pages/orderDetail/orderDetail&%@&query=%@",encodedString,doubleEncodedQuery];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:jumpStr] options:@{} completionHandler:nil];
}else if (self.selectedPayTypeModel.type.intValue == 5) {
WXLaunchMiniProgramReq *launchMiniProgramReq = [WXLaunchMiniProgramReq object];
launchMiniProgramReq.userName = @"gh_e64a1a89a0ad";
NSDictionary *dic = dict[@"data"][@"tl"];
NSString *param = @"";
for (NSString*key in dic.allKeys) {
if (param.length == 0) {
param = [param stringByAppendingFormat:@"%@=%@",key,dic[key]];
}else{
param = [param stringByAppendingFormat:@"&%@=%@",key,dic[key]];
}
}
launchMiniProgramReq.path = [NSString stringWithFormat:@"pages/orderDetail/orderDetail?%@",param];
launchMiniProgramReq.miniProgramType = WXMiniProgramTypeRelease;
[WXApi sendReq:launchMiniProgramReq completion:nil];
}
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
}];
}
-(void)paySuccess{
QXBuyNobilitySuccessViewController *vc = [[QXBuyNobilitySuccessViewController alloc] init];
vc.model = self.model;
[self.navigationController pushViewController:vc animated:YES];
}
-(void)agreementAction{
// id = 30;
NSString *urlString = [NSString stringWithFormat:@"%@api/Page/page_show?id=%@",ServerUrl,@"30"];
QXBaseWebViewController *vc = [[QXBaseWebViewController alloc] init];
vc.urlStr = urlString;
[self.navigationController pushViewController:vc animated:YES];
}
-(void)selectedAction:(UIButton*)sender{
sender.selected = !sender.selected;
self.isSelectedAgreement = sender.isSelected;
}
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
return 2;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
if (section == 0) {
return self.payTypeArray.count;
}else{
return self.model.power_list.count;
}
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
if (indexPath.section == 0) {
QXRechargePayTypeTableCell *cell = [QXRechargePayTypeTableCell cellWithTableView:tableView];
cell.model = self.payTypeArray[indexPath.row];
return cell;
}else{
QXNobilityBuyDesCell *cell = [QXNobilityBuyDesCell cellWithTableView:tableView];
QXNobilityGetPricePowerList *md = self.model.power_list[indexPath.row];
cell.titleLabel.text = md.content;
return cell;
}
}
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 36;
}
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
if (section == 0) {
UIView *header = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 42)];
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(16, 12, SCREEN_WIDTH-32, 30)];
label.font = [UIFont boldSystemFontOfSize:16];
label.text = @"支付方式";
label.textColor = RGB16A(0x000000, 0.85);
[header addSubview:label];
return header;
}else{
return nil;
}
}
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
if (section == 0) {
return 42;
}else{
return 0;
}
}
-(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{
if (section == 0) {
return self.footerView;
}
return nil;
}
-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{
if (section == 0) {
return self.footerView.height;
}
return 0;
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
if (indexPath.section == 0) {
QXPayTypeModel *model = self.payTypeArray[indexPath.row];
if (model == self.selectedPayTypeModel) {
return;
}
if (self.selectedPayTypeModel) {
self.selectedPayTypeModel.isSelected = NO;
}
model.isSelected = YES;
self.selectedPayTypeModel = model;
[tableView reloadData];
}
}
-(UITableView *)tableView{
if (!_tableView) {
self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, NavContentHeight, SCREEN_WIDTH, SCREEN_HEIGHT-NavContentHeight) style:UITableViewStyleGrouped];
self.tableView.backgroundColor = [UIColor clearColor];
self.tableView.delegate = self;
self.tableView.dataSource = self;
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
}
return _tableView;
}
-(QXNobilityPriceView *)priceView{
if (!_priceView) {
_priceView = [[QXNobilityPriceView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 187)];
}
return _priceView;
}
-(UIView *)footerView{
if (!_footerView) {
_footerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 120)];
UIButton *payBtn = [[UIButton alloc] initWithFrame:CGRectMake(37, 28, SCREEN_WIDTH-37*2, 42)];
payBtn.backgroundColor = QXConfig.themeColor;
[payBtn addRoundedCornersWithRadius:21];
[payBtn setTitle:@"立即支付" forState:(UIControlStateNormal)];
[payBtn setTitleColor:QXConfig.btnTextColor forState:(UIControlStateNormal)];
payBtn.titleLabel.font = [UIFont systemFontOfSize:14];
[payBtn addTarget:self action:@selector(payAction) forControlEvents:(UIControlEventTouchUpInside)];
[_footerView addSubview:payBtn];
UILabel *titleLabel = [[UILabel alloc] init];
NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:@"点击支付即表示您同意《爵位用户协议》"];
[attr yy_setColor:QXConfig.textColor range:NSMakeRange(0, attr.length)];
[attr yy_setColor:QXConfig.themeColor range:NSMakeRange(attr.length-8, 8)];
[attr yy_setFont:[UIFont systemFontOfSize:12] range:NSMakeRange(0, attr.length)];
titleLabel.attributedText = attr;
[titleLabel sizeToFit];
titleLabel.x = (SCREEN_WIDTH-titleLabel.width)/2+15;
titleLabel.y = payBtn.bottom+9;
titleLabel.height = 30;
[_footerView addSubview:titleLabel];
UIButton *agreementBtn = [[UIButton alloc] initWithFrame:CGRectMake(titleLabel.right-100, titleLabel.top, 100, 30)];
[agreementBtn addTarget:self action:@selector(agreementAction) forControlEvents:(UIControlEventTouchUpInside)];
[_footerView addSubview:agreementBtn];
UIButton *selectedBtn = [[UIButton alloc] initWithFrame:CGRectMake(titleLabel.left-30, titleLabel.top, 30, 30)];
[selectedBtn setImage:[UIImage imageNamed:@"login_agreement_nor"] forState:(UIControlStateNormal)];
[selectedBtn setImage:[UIImage imageNamed:@"login_agreement_sel"] forState:(UIControlStateSelected)];
[selectedBtn addTarget:self action:@selector(selectedAction:) forControlEvents:(UIControlEventTouchUpInside)];
[_footerView addSubview:selectedBtn];
}
return _footerView;
}
-(UIView *)tableFooterView{
if (!_tableFooterView) {
_tableFooterView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 90)];
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"nobility_desc_icon"]];
imageView.frame = CGRectMake(16, 15, 18, 18);
[_tableFooterView addSubview:imageView];
UILabel *titleLabel =[[ UILabel alloc] initWithFrame:CGRectMake(imageView.right+5, 15, 100, 18)];
titleLabel.textColor = QXConfig.textColor;
titleLabel.text = @"升级说明";
titleLabel.font = [UIFont boldSystemFontOfSize:16];
[_tableFooterView addSubview:titleLabel];
UILabel *bottomLabel = [[UILabel alloc] initWithFrame:CGRectMake(16, imageView.bottom+10, SCREEN_WIDTH-16*2, 42)];
bottomLabel.numberOfLines = 0;
bottomLabel.textColor = QXConfig.textColor;
bottomLabel.font = [UIFont systemFontOfSize:14];
bottomLabel.text = @"如果您当前已有爵位,升级时将自动计算剩余价值抵扣新爵位费用";
[_tableFooterView addSubview:bottomLabel];
}
return _tableFooterView;
}
-(NSMutableArray *)payTypeArray{
if (!_payTypeArray) {
_payTypeArray = [NSMutableArray array];
}
return _payTypeArray;
}
@end

View File

@@ -0,0 +1,16 @@
//
// QXNobilityDetailViewController.h
// QXLive
//
// Created by 启星 on 2025/11/8.
//
#import "QXBaseViewController.h"
NS_ASSUME_NONNULL_BEGIN
@interface QXNobilityDetailViewController : QXBaseViewController
@property (nonatomic,strong)NSString *cruuent_nobility_id;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,243 @@
//
// QXNobilityDetailViewController.m
// QXLive
//
// Created by on 2025/11/8.
//
#import "QXNobilityDetailViewController.h"
#import "GKCycleScrollView.h"
#import "QXNobilityDetailTopCell.h"
#import "QXMineNetwork.h"
#import "QXNobilityDetailCell.h"
#import "QXNobilityBuyViewController.h"
@interface QXNobilityDetailViewController ()<GKCycleScrollViewDataSource,GKCycleScrollViewDelegate,UICollectionViewDelegate,UICollectionViewDataSource>
@property (nonatomic,strong)GKCycleScrollView *cycleScrollView;
@property (nonatomic,strong)UIView *headerView;
@property (nonatomic,strong)UIImageView *headerImageView;
@property (nonatomic,strong)UILabel *headerLabel;
@property (nonatomic,strong)UICollectionView *collectionView;
@property (nonatomic,strong)QXNobilityListModel *currentModel;
@property (nonatomic,strong)UIView *bottomView;
@property (nonatomic,strong)UIImageView *bottomImageView;
@property (nonatomic,strong)UILabel *bottomLabel;
@property (nonatomic,strong)UIButton *openBtn;
@property (nonatomic,assign)NSInteger currentIndex;
@end
@implementation QXNobilityDetailViewController
- (void)viewDidLoad {
self.isNoChangeBgImage = YES;
[super viewDidLoad];
// Do any additional setup after loading the view.
}
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:NO animated:YES];
self.navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName:RGB16(0xffffff)};
}
-(void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
self.navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName:RGB16(0x000000)};
}
-(void)setNavgationItems{
[super setNavgationItems];
self.navigationTintColor = RGB16(0xffffff);
self.navigationItem.title = @"爵位详情";
UIButton*createBtn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 44, 44)];
[createBtn setImage:[UIImage imageNamed:@"nobility_help_icon"] forState:(UIControlStateNormal)];
createBtn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentTrailing;
[createBtn addTarget:self action:@selector(helpAction) forControlEvents:(UIControlEventTouchUpInside)];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:createBtn];
}
-(void)helpAction{
NSString *urlString = [NSString stringWithFormat:@"%@api/Page/page_show?id=%@",ServerUrl,@"29"];
QXBaseWebViewController *vc = [[QXBaseWebViewController alloc] init];
vc.urlStr = urlString;
[self.navigationController pushViewController:vc animated:YES];
}
-(void)getData{
MJWeakSelf
[QXMineNetwork getNobilityListSuccessBlock:^(NSArray<QXNobilityListModel *> * _Nonnull list) {
[weakSelf.dataArray removeAllObjects];
[weakSelf.dataArray addObjectsFromArray:list];
weakSelf.currentModel = weakSelf.dataArray.firstObject;
weakSelf.headerLabel.text = [NSString stringWithFormat:@"专属特权%@",self.currentModel.power.count_str];
[weakSelf setPirce];
for (NSInteger i = 0;i<weakSelf.dataArray.count;i++) {
QXNobilityListModel*md = weakSelf.dataArray[i];
if ([md.lid isEqualToString:weakSelf.cruuent_nobility_id]) {
weakSelf.currentIndex = i;
break;
}
}
weakSelf.cycleScrollView.defaultSelectIndex = weakSelf.currentIndex;
[weakSelf.cycleScrollView reloadData];
[weakSelf.collectionView reloadData];
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
}];
}
-(void)initSubViews{
[self updateBgImage:@"nobility_detail_bg"];
[self.view addSubview:self.headerView];
[self.view addSubview:self.cycleScrollView];
[self.view addSubview:self.bottomView];
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
int itemWidth = (SCREEN_WIDTH-16*2-8*2)/3;
layout.itemSize = CGSizeMake(itemWidth, itemWidth);
layout.minimumLineSpacing = 8;
layout.minimumInteritemSpacing = 8;
layout.sectionInset = UIEdgeInsetsMake(0, 16, 0, 16);
layout.scrollDirection = UICollectionViewScrollDirectionVertical;
self.collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(0, self.headerView.bottom+16, SCREEN_WIDTH, SCREEN_HEIGHT-self.headerView.bottom-16-24-80) collectionViewLayout:layout];
[self.collectionView registerNib:[UINib nibWithNibName:@"QXNobilityDetailCell" bundle:[NSBundle mainBundle]] forCellWithReuseIdentifier:@"QXNobilityDetailCell"];
self.collectionView.delegate = self;
self.collectionView.dataSource = self;
self.collectionView.showsHorizontalScrollIndicator = NO;
self.collectionView.bounces = NO;
self.collectionView.pagingEnabled = NO;
self.collectionView.backgroundColor = [UIColor clearColor];
[self.view addSubview:self.collectionView];
}
-(void)setPirce{
NSString *price = [NSString stringWithFormat:@"%@开通:%@/%@天",self.currentModel.name,self.currentModel.pay_price,self.currentModel.day];
NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:price];
[attr yy_setColor:RGB16(0xFFDA7E) range:[price rangeOfString:self.currentModel.pay_price]];
self.bottomLabel.attributedText = attr;
}
-(void)openAction{
QXNobilityBuyViewController *vc = [[QXNobilityBuyViewController alloc] init];
vc.nobility_id = self.currentModel.lid;
[self.navigationController pushViewController:vc animated:YES];
}
-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
return self.currentModel.power.list.count;
}
-(__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
QXNobilityDetailCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"QXNobilityDetailCell" forIndexPath:indexPath];
cell.model = self.currentModel.power.list[indexPath.row];
return cell;
}
#pragma mark - GKCycleScrollViewDataSource,GKCycleScrollViewDelegate
- (NSInteger)numberOfCellsInCycleScrollView:(GKCycleScrollView *)cycleScrollView {
return self.dataArray.count;
}
- (GKCycleScrollViewCell *)cycleScrollView:(GKCycleScrollView *)cycleScrollView cellForViewAtIndex:(NSInteger)index {
GKCycleScrollViewCell *cell = [cycleScrollView dequeueReusableCell];
if (!cell) {
cell = [QXNobilityDetailTopCell new];
}
QXNobilityDetailTopCell *topcell = (QXNobilityDetailTopCell*)cell;
topcell.index = index;
topcell.myIndex = self.currentIndex;
topcell.model = self.dataArray[index];
return cell;
}
- (CGSize)sizeForCellInCycleScrollView:(GKCycleScrollView *)cycleScrollView {
return CGSizeMake(220, 242);
}
-(void)cycleScrollView:(GKCycleScrollView *)cycleScrollView didScrollCellToIndex:(NSInteger)index{
self.currentModel = self.dataArray[index];
dispatch_async(dispatch_get_main_queue(), ^{
self.headerLabel.text = [NSString stringWithFormat:@"专属特权%@",self.currentModel.power.count_str];
[self setPirce];
[self.collectionView reloadData];
});
}
- (void)cycleScrollView:(GKCycleScrollView *)cycleScrollView didSelectCellAtIndex:(NSInteger)index {
}
-(GKCycleScrollView *)cycleScrollView{
if (!_cycleScrollView) {
_cycleScrollView = [[GKCycleScrollView alloc] initWithFrame:CGRectMake(0, NavContentHeight, SCREEN_WIDTH, 242)];
_cycleScrollView.dataSource = self;
_cycleScrollView.delegate = self;
_cycleScrollView.minimumCellAlpha = 0.0;
_cycleScrollView.leftRightMargin = 16.0f;
_cycleScrollView.topBottomMargin = 15.0f;
_cycleScrollView.isInfiniteLoop = NO;
_cycleScrollView.isAutoScroll = NO;
}
return _cycleScrollView;
}
-(UIView *)headerView{
if (!_headerView) {
_headerView = [[UIView alloc] initWithFrame:CGRectMake(0,self.cycleScrollView.bottom+16, SCREEN_WIDTH, ScaleWidth(35))];
[_headerView addSubview:self.headerImageView];;
[_headerView addSubview:self.headerLabel];;
}
return _headerView;
}
-(UIImageView *)headerImageView{
if (!_headerImageView) {
_headerImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"nobility_power_header_bg"]];
_headerImageView.contentMode = UIViewContentModeScaleToFill;
_headerImageView.frame = CGRectMake(0, 0, SCREEN_WIDTH, ScaleWidth(35));
}
return _headerImageView;
}
-(UILabel *)headerLabel{
if (!_headerLabel) {
_headerLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, ScaleWidth(35))];
_headerLabel.textColor = RGB16(0xFFEDBD);
_headerLabel.font = [UIFont systemFontOfSize:16];
_headerLabel.textAlignment = NSTextAlignmentCenter;
}
return _headerLabel;
}
-(UIView *)bottomView{
if (!_bottomView) {
_bottomView = [[UIView alloc] initWithFrame:CGRectMake(0, SCREEN_HEIGHT-24-80, SCREEN_WIDTH, 80+24)];
[_bottomView addRoundedCornersWithRadius:16 byRoundingCorners:(UIRectCornerTopLeft|UIRectCornerTopRight)];
[_bottomView addSubview:self.bottomImageView];
[_bottomView addSubview:self.openBtn];
[_bottomView addSubview:self.bottomLabel];
}
return _bottomView;
}
-(UIImageView *)bottomImageView{
if (!_bottomImageView) {
_bottomImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"nobility_detail_bottom_bg"]];
_bottomImageView.frame = CGRectMake(0, 0, self.bottomView.width, self.bottomView.height);
}
return _bottomImageView;
}
-(UIButton *)openBtn{
if (!_openBtn) {
_openBtn = [[UIButton alloc] initWithFrame:CGRectMake(SCREEN_WIDTH-16-128, 19, 128, 41)];
[_openBtn setBackgroundImage:[UIImage imageNamed:@"nobility_detail_open_btn"] forState:(UIControlStateNormal)];
[_openBtn addTarget:self action:@selector(openAction) forControlEvents:(UIControlEventTouchUpInside)];;
}
return _openBtn;
}
-(UILabel *)bottomLabel{
if (!_bottomLabel) {
_bottomLabel = [[UILabel alloc] initWithFrame:CGRectMake(16, 28, self.openBtn.left-16, 24)];
_bottomLabel.textColor = RGB16(0xF7EAC9);
_bottomLabel.font = [UIFont systemFontOfSize:16];
}
return _bottomLabel;
}
@end

View File

@@ -0,0 +1,16 @@
//
// QXNobilityViewController.h
// QXLive
//
// Created by 启星 on 2025/11/7.
//
#import "QXBaseViewController.h"
NS_ASSUME_NONNULL_BEGIN
@interface QXNobilityViewController : QXBaseViewController
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,176 @@
//
// QXNobilityViewController.m
// QXLive
//
// Created by on 2025/11/7.
//
#import "QXNobilityViewController.h"
#import "QXNobilityHeaderView.h"
#import "QXNobilityContentView.h"
#import "QXMineNetwork.h"
#import "QXSeatHeaderView.h"
#import "QXNobilityDetailViewController.h"
#import "QXNobilityBuyViewController.h"
@interface QXNobilityViewController ()<QXNobilityHeaderViewDelegate>
@property (nonatomic,strong)QXNobilityHeaderView *topView;
@property (nonatomic,strong)UIView *nobilityBgView;
@property (nonatomic,strong)UIView *nobilityContentView;
@property (nonatomic,strong)UILabel *nobilityTitleLabel;
//@property (nonatomic,strong)JXCategoryTitleView *categoryView;
//@property (nonatomic,strong)JXCategoryListContainerView *containerView;
@property (nonatomic,strong)UIView *bottomView;
@property (nonatomic,strong)QXSeatHeaderView *userAvatarView;
@property (nonatomic,strong)UILabel *bottomNickNameLabel;
@property (nonatomic,strong)UIButton *bottomBuyBtn;
@property (nonatomic,strong)NSMutableArray *titles;
@property (nonatomic,strong)QXNobilityContentView *contentView;;
@property (nonatomic,strong)QXNobilityModel* model;
@end
@implementation QXNobilityViewController
- (void)viewDidLoad {
self.isNoChangeBgImage = YES;
[super viewDidLoad];
// Do any additional setup after loading the view.
}
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:NO animated:YES];
self.navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName:RGB16(0xffffff)};
}
-(void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
self.navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName:RGB16(0x000000)};
}
-(void)setNavgationItems{
[super setNavgationItems];
self.navigationTintColor = RGB16(0xffffff);
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"nobility_nav_icon"]];
imageView.frame = CGRectMake(0, 0, 71, 18);
self.navigationItem.titleView = imageView;
UIButton*createBtn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 44, 44)];
[createBtn setImage:[UIImage imageNamed:@"nobility_help_icon"] forState:(UIControlStateNormal)];
createBtn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentTrailing;
[createBtn addTarget:self action:@selector(helpAction) forControlEvents:(UIControlEventTouchUpInside)];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:createBtn];
}
- (void)initSubViews{
[self updateBgImage:@"home_rank_vc_bg"];
self.topView = [[QXNobilityHeaderView alloc] initWithFrame:CGRectMake(0, NavContentHeight, SCREEN_WIDTH,0)];
self.topView.delegate = self;
[self.view addSubview:self.topView];
self.nobilityBgView = [[UIView alloc] initWithFrame:CGRectMake(16, self.topView.bottom, SCREEN_WIDTH-32, SCREEN_HEIGHT-self.topView.bottom-80)];
self.nobilityBgView.backgroundColor = RGB16(0x1E2127);
self.nobilityBgView.layer.borderWidth = 1;
self.nobilityBgView.layer.borderColor = RGB16A(0xF5E9D1, 0.2).CGColor;
[self.nobilityBgView addRoundedCornersWithRadius:12];
[self.view addSubview:self.nobilityBgView];
self.nobilityContentView = [[UIView alloc] initWithFrame:CGRectMake(12, 12, self.nobilityBgView.width-24, self.nobilityBgView.height-24)];
[self.nobilityContentView addRoundedCornersWithRadius:6];
[self.nobilityBgView addSubview:self.nobilityContentView];
[self.view addSubview:self.bottomView];
self.contentView = [[QXNobilityContentView alloc] initWithFrame:self.nobilityContentView.bounds];
[self.nobilityContentView addSubview:self.contentView];
}
-(void)getData{
MJWeakSelf
[QXMineNetwork getUserNobilitSuccessBlock:^(QXNobilityModel * _Nonnull model) {
weakSelf.model = model;
weakSelf.topView.model = model;
weakSelf.contentView.model = model;
[weakSelf.contentView reloadData];
if (weakSelf.model.nobility_info.status.intValue == 0) {
weakSelf.bottomView.hidden = YES;;
}else{
[weakSelf.userAvatarView setHeadIcon:model.user_info.avatar dress:@""];
weakSelf.bottomNickNameLabel.text = [NSString stringWithFormat:@"%@的当前爵位状态是%@",model.user_info.nickname,model.nobility_info.name];
weakSelf.bottomView.hidden = NO;;
}
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
}];
}
-(void)helpAction{
NSString *urlString = [NSString stringWithFormat:@"%@api/Page/page_show?id=%@",ServerUrl,@"29"];
QXBaseWebViewController *vc = [[QXBaseWebViewController alloc] init];
vc.urlStr = urlString;
[self.navigationController pushViewController:vc animated:YES];
}
-(void)buyAction{
QXNobilityDetailViewController *vc = [[QXNobilityDetailViewController alloc] init];
vc.cruuent_nobility_id = self.model.nobility_info.lid;
[self.navigationController pushViewController:vc animated:YES];
}
///
-(void)didOpenNobility{
QXNobilityDetailViewController *vc = [[QXNobilityDetailViewController alloc] init];
[self.navigationController pushViewController:vc animated:YES];
}
///
-(void)didRenewNobility{
QXNobilityBuyViewController *vc = [[QXNobilityBuyViewController alloc] init];
vc.nobility_id = self.model.nobility_info.lid;
[self.navigationController pushViewController:vc animated:YES];
}
-(NSMutableArray *)titles{
if (!_titles) {
_titles = [NSMutableArray array];
}
return _titles;
}
-(UIView *)bottomView{
if (!_bottomView) {
_bottomView = [[UIView alloc] initWithFrame:CGRectMake(0, SCREEN_HEIGHT-57, SCREEN_WIDTH, 57)];
[_bottomView addRoundedCornersWithRadius:20 byRoundingCorners:(UIRectCornerTopLeft|UIRectCornerTopRight)];
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"nobility_my_info_bg"]];
imageView.frame = _bottomView.bounds;
[_bottomView addSubview:imageView];
[_bottomView addSubview:self.userAvatarView];
[_bottomView addSubview:self.bottomNickNameLabel];
[_bottomView addSubview:self.bottomBuyBtn];
}
return _bottomView;
}
-(QXSeatHeaderView *)userAvatarView{
if (!_userAvatarView) {
_userAvatarView = [[QXSeatHeaderView alloc] initWithFrame:CGRectMake(12, 12, 30, 30)];
// [_userAvatarView setHeadIcon:QXGlobal.shareGlobal.loginModel.avatar dress:@""];
}
return _userAvatarView;
}
-(UIButton *)bottomBuyBtn{
if (!_bottomBuyBtn) {
_bottomBuyBtn = [[UIButton alloc] initWithFrame:CGRectMake(SCREEN_WIDTH-14-118, (57-36)/2, 118, 36)];
[_bottomBuyBtn setBackgroundImage:[UIImage imageNamed:@"nobility_update_btn"] forState:(UIControlStateNormal)];
[_bottomBuyBtn addTarget:self action:@selector(buyAction) forControlEvents:(UIControlEventTouchUpInside)];
}
return _bottomBuyBtn;
}
-(UILabel *)bottomNickNameLabel{
if (!_bottomNickNameLabel) {
_bottomNickNameLabel = [[UILabel alloc] initWithFrame:CGRectMake(self.userAvatarView.right+6, 0, self.bottomBuyBtn.left-self.userAvatarView.right-20, 57)];
// _bottomNickNameLabel.text = QXGlobal.shareGlobal.loginModel.nickname;
_bottomNickNameLabel.textColor = RGB16(0xF5E9D1);
_bottomNickNameLabel.font = [UIFont systemFontOfSize:12];
}
return _bottomNickNameLabel;
}
@end

View File

@@ -21,6 +21,7 @@
@implementation QXGiftWallViewController
- (void)viewDidLoad {
self.isNoChangeBgImage = YES;
[super viewDidLoad];
// Do any additional setup after loading the view.
}

View File

@@ -11,6 +11,7 @@ NS_ASSUME_NONNULL_BEGIN
@interface QXSettingViewController : QXBaseViewController
@property (nonatomic,copy)void(^logOutBlock)(BOOL isCancel);
@property (nonatomic,assign)BOOL haveNobility;
@end
NS_ASSUME_NONNULL_END

View File

@@ -36,15 +36,27 @@ static NSInteger maxClickCount = 6;
self.navigationItem.title = QXText(@"设置");
}
-(void)initSubViews{
NSArray *section1 = @[
// QXText(@"消息通知"),
// QXText(@"未成年人模式"),
QXText(@"黑名单"),
QXText(@"设置密码"),
QXText(@"手机绑定"),
QXText(@"关于我们"),
QXText(@"版本号")
];
NSArray *section1;
if (self.haveNobility) {
section1 = @[
QXText(@"隐身进入房间"),
QXText(@"黑名单"),
QXText(@"设置密码"),
QXText(@"手机绑定"),
QXText(@"关于我们"),
QXText(@"版本号")
];
}else{
section1 = @[
// QXText(@"消息通知"),
QXText(@"黑名单"),
QXText(@"设置密码"),
QXText(@"手机绑定"),
QXText(@"关于我们"),
QXText(@"版本号")
];
}
NSArray *section2 = @[
QXText(@"切换账号"),
@@ -62,7 +74,8 @@ static NSInteger maxClickCount = 6;
QXText(@"切换账号"):[NSNumber numberWithInteger:QXSettingCellTypeOnlyArrow],
QXText(@"实名认证"):[NSNumber numberWithInteger:QXSettingCellTypeNormal],
QXText(@"账号注销"):[NSNumber numberWithInteger:QXSettingCellTypeOnlyArrow],
QXText(@"退出登录"):[NSNumber numberWithInteger:QXSettingCellTypeOnlyArrow]
QXText(@"退出登录"):[NSNumber numberWithInteger:QXSettingCellTypeOnlyArrow],
QXText(@"隐身进入房间"):[NSNumber numberWithInteger:QXSettingCellTypeSwitch]
};
self.controllerDict = @{
@@ -89,7 +102,8 @@ static NSInteger maxClickCount = 6;
QXText(@"切换账号"):@"",
QXText(@"实名认证"):@"",
QXText(@"账号注销"):@"",
QXText(@"退出登录"):@""
QXText(@"退出登录"):@"",
QXText(@"隐身进入房间"):QXGlobal.shareGlobal.loginModel.hide_status
};
[self.dataArray addObject:section1];
[self.dataArray addObject:section2];
@@ -111,10 +125,27 @@ static NSInteger maxClickCount = 6;
NSString *value = self.valueDict[text];
cell.titleLabel.text = text;
cell.detailLabel.text = value;
cell.btnSwitch.selected = value.intValue==1;
[cell.btnSwitch addTarget:self action:@selector(setHideJoinRoom:) forControlEvents:(UIControlEventTouchUpInside)];
cell.cellType = [self.cellTypeDict[text] integerValue];
cell.needLine = (indexPath.row>=0) && (indexPath.row < arr.count-1);
return cell;
}
-(void)setHideJoinRoom:(UIButton *)sender{
sender.selected = !sender.selected;
__block NSString *status = QXGlobal.shareGlobal.loginModel.hide_status;
if ([status isEqualToString:@"0"]) {
status = @"1";
}else{
status = @"0";
}
[QXMineNetwork getNobilityPriceWithHideStatus:status successBlock:^(NSDictionary * _Nonnull dict) {
QXGlobal.shareGlobal.loginModel.hide_status = status;
} failBlock:^(NSError * _Nonnull error, NSString * _Nonnull msg) {
}];
}
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
return [UIView new];
}