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.
362 lines
14 KiB
362 lines
14 KiB
// |
|
// AttentionMessageViewController.m |
|
// tongxin |
|
// |
|
// Created by WeiChaoZheng on 2018/6/27. |
|
// Copyright © 2018年 xTT. All rights reserved. |
|
// |
|
|
|
#import "AttentionMessageViewController.h" |
|
#import "MessageTableViewCell.h" |
|
|
|
@interface AttentionMessageViewController ()<UITableViewDelegate,UITableViewDataSource,DZNEmptyDataSetSource,DZNEmptyDataSetDelegate> |
|
|
|
@property (nonatomic ,strong) UITableView *myTableView; |
|
@property (nonatomic ,assign) NSInteger page; |
|
|
|
|
|
@end |
|
|
|
@implementation AttentionMessageViewController |
|
|
|
|
|
|
|
- (UITableView *)myTableView |
|
{ |
|
if (!_myTableView) |
|
{ |
|
kWeakSelf(self) |
|
if (@available(iOS 13.0, *)) { |
|
_myTableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleInsetGrouped]; |
|
} else { |
|
_myTableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; |
|
} |
|
_myTableView.backgroundColor = KKClearColor; |
|
_myTableView.delegate = self; |
|
_myTableView.dataSource = self; |
|
_myTableView.emptyDataSetSource = self; |
|
_myTableView.emptyDataSetDelegate = self; |
|
_myTableView.showsHorizontalScrollIndicator = NO; |
|
_myTableView.showsVerticalScrollIndicator = NO; |
|
_myTableView.estimatedRowHeight = 0; |
|
_myTableView.estimatedSectionHeaderHeight = 0; |
|
_myTableView.estimatedSectionFooterHeight = 0; |
|
//去线 |
|
//_myTableView.separatorStyle = UITableViewCellSelectionStyleNone; |
|
[_myTableView registerNib:[UINib nibWithNibName:@"MessageTableViewCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"MessageTableViewCellID"]; |
|
[_myTableView bindHeadRefreshHandler:^{ |
|
[UICommon feedbackGenerator]; |
|
[weakself GetQueryFollowInfo:TableisReload_h]; |
|
} themeColor:KKMainColor refreshStyle:KafkaRefreshStyleReplicatorWoody]; |
|
|
|
[_myTableView bindFootRefreshHandler:^{ |
|
[weakself GetQueryFollowInfo:TableisReload_f]; |
|
} themeColor:KKMainColor refreshStyle:KafkaRefreshStyleReplicatorWoody]; |
|
|
|
} |
|
return _myTableView; |
|
} |
|
|
|
|
|
- (void)viewDidLoad { |
|
[super viewDidLoad]; |
|
self.emptyTitle = GJText(@"没有关注记录"); |
|
self.emptyText = GJText(@"点击刷新一下"); |
|
self.ImgType = Xiaoxi; |
|
[self.view addSubview:self.myTableView]; |
|
[self.myTableView mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.top.equalTo(self.view); |
|
make.left.right.equalTo(self.view).inset(-10); |
|
make.bottom.equalTo(self.view.mas_bottom); |
|
}]; |
|
if (@available(iOS 15.0, *)) { |
|
self.myTableView.sectionHeaderTopPadding = 0.01; |
|
} |
|
[self GetQueryFollowInfo:TableisReload_h]; |
|
|
|
// Do any additional setup after loading the view. |
|
} |
|
|
|
#pragma mark 获取关注记录 |
|
/// 获取关注记录 |
|
- (void)GetQueryFollowInfo:(TableisReload)isReload |
|
{ |
|
kWeakSelf(self) |
|
[UICommon MessageUpload:@"加载中"]; |
|
if (isReload == TableisReload_h) |
|
{ |
|
self.page = 1; |
|
[self.modelListArr removeAllObjects]; |
|
} |
|
NSMutableDictionary *parameters = [NSMutableDictionary dictionary]; |
|
// [parameters setValue:@(self.page) forKey:@"pageNumber"]; |
|
// [parameters setValue:@(KSizeNO) forKey:@"pageSize"]; |
|
// [parameters setValue:APIManager.sharedManager.loginModel.openid forKey:@"userId"]; |
|
NSString *url = F(@"%@/20/%ld", APIManager.sharedManager.loginModel.openid,self.page); |
|
[[[APIManager sharedManager] APPOST:F(@"%@%@", QueryFollowInfo_URL,url) parameters:parameters isJson:YES resultClass:BaseModel.class] subscribeNext:^(BaseModel *model) { |
|
[UICommon HidenLoading]; |
|
NSArray *arr = model.records; |
|
[weakself.myTableView.headRefreshControl endRefreshingWithAlertText:GJText(@"已为你加载最新数据~") completion:^{ |
|
|
|
}]; |
|
[weakself.myTableView.footRefreshControl endRefreshing]; |
|
for (NSDictionary *dic in arr) |
|
{ |
|
AttentionModel *model = [AttentionModel yy_modelWithJSON:dic]; |
|
[self.modelListArr addObject:model]; |
|
} |
|
weakself.page++; |
|
weakself.myTableView.footRefreshControl.hidden = arr.count < KSizeNO ? YES : NO; |
|
|
|
NSLog(@"%@",self.modelListArr); |
|
[weakself.myTableView reloadData]; |
|
|
|
} error:^(NSError * _Nullable error) { |
|
NSDictionary *dic = error.userInfo; |
|
[UICommon MessageErrorText:dic[NSLocalizedDescriptionKey]]; |
|
}]; |
|
} |
|
|
|
#pragma mark 删除关注记录 |
|
/// 删除关注记录 |
|
- (void)DeleteAttention |
|
{ |
|
[UICommon MessageUpload:@"加载中"]; |
|
NSMutableDictionary *parameters = [NSMutableDictionary dictionary]; |
|
[[[APIManager sharedManager] APGET:F(@"%@648454/2", UpdateInfoStatus_URL) parameters:parameters resultClass:nil] subscribeNext:^(id _Nullable x) { |
|
[UICommon HidenLoading]; |
|
[UICommon MessageSuccessText:@"删除成功"]; |
|
[self GetQueryFollowInfo:TableisReload_h]; |
|
[[NSNotificationCenter defaultCenter] postNotificationName:KK_UPDATE_ALL_NEWS_MESSAGE object:nil]; |
|
|
|
} error:^(NSError * _Nullable error) { |
|
NSDictionary *dic = error.userInfo; |
|
[UICommon MessageErrorText:dic[NSLocalizedDescriptionKey]]; |
|
}]; |
|
} |
|
|
|
|
|
//MARK :刪除方法 |
|
-(void)deletAction |
|
{ |
|
kWeakSelf(self) |
|
LGAlertView *alertView = [[LGAlertView alloc] initWithTitle:GJText(@"注意") message:GJText(@"确认要清空关注消息?") style:LGAlertViewStyleAlert buttonTitles:@[GJText(@"确定")] cancelButtonTitle:GJText(@"取消") destructiveButtonTitle:nil actionHandler:^(LGAlertView * _Nonnull alertView, NSUInteger index, NSString * _Nullable title) { |
|
[weakself DeleteAttention]; |
|
} cancelHandler:^(LGAlertView * _Nonnull alertView) { |
|
} destructiveHandler:^(LGAlertView * _Nonnull alertView) { |
|
}]; |
|
[alertView showAnimated:YES completionHandler:nil]; |
|
} |
|
|
|
|
|
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView |
|
editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{ |
|
return UITableViewCellEditingStyleNone; |
|
} |
|
|
|
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView |
|
{ |
|
return self.modelListArr.count; |
|
} |
|
|
|
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section |
|
{ |
|
return 1; |
|
} |
|
|
|
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section |
|
{ |
|
return 12; |
|
} |
|
|
|
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath |
|
{ |
|
AttentionModel *dMessage = self.modelListArr[indexPath.section]; |
|
|
|
NSString *str ; |
|
if([dMessage.type isEqualToString:@"applicationRrecord"]){ |
|
//申请记录的消息 |
|
str = [NSString stringWithFormat:GJText(@"用户(%@)申请关注【%@】的设备"),dMessage.phone,dMessage.name]; |
|
CGFloat cellHeight = [self getLineHeight:str withWidth:SCREEN_WIDTH*(280.0/320) withFont:FontADA_(14)]+25; |
|
return cellHeight; |
|
}else if ([dMessage.type isEqualToString:@"checkResults"]) { |
|
//审核结果消息 |
|
NSString *checkStr = [NSString stringWithFormat:GJText(@"您已同意用户(%@)关注设备"),dMessage.phone]; |
|
str = [NSString stringWithFormat:GJText(@"用户(%@)申请关注【%@】的设备 \n %@"),dMessage.phone,dMessage.name,checkStr]; |
|
|
|
}else if ([dMessage.type isEqualToString:@"checkedResults"]) { |
|
//被审核结果消息 |
|
str = [NSString stringWithFormat:GJText(@"设备(%@)的管理员同意您关注设备"),dMessage.imei]; |
|
|
|
}else if ([dMessage.type isEqualToString:@"applicationOvertime"]) { |
|
//记录失效消息 |
|
str = [NSString stringWithFormat:GJText(@"用户(%@)申请关注【%@】设备,记录未及时处理,已失效"),dMessage.phone,dMessage.name]; |
|
} |
|
CGFloat cellHeight = [self getLineHeight:str withWidth:SCREEN_WIDTH*(280.0/320) withFont:FontADA_(14)]; |
|
return cellHeight; |
|
} |
|
|
|
|
|
|
|
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath |
|
{ |
|
AttentionModel *dMessage = self.modelListArr[indexPath.section]; |
|
|
|
MessageTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MessageTableViewCellID" forIndexPath:indexPath]; |
|
cell.timeLabel.text = [UICommon getDateFormatWithStr:@"HH:mm" date:[UICommon getTimeStrWithString:dMessage.createTime]]; //时间 |
|
//信息 |
|
|
|
NSString * titleStr ; |
|
cell.isApplicationRrecord = NO; |
|
titleStr = GJText(@"申请关注设备记录"); |
|
if(dMessage.action == 0 && [dMessage.adminId isEqualToString:APIManager.sharedManager.loginModel.openid]) |
|
{ |
|
//申请记录的消息 |
|
// 用户(17328339622)申请关注【宝贝】设备 |
|
cell.isApplicationRrecord = YES; |
|
NSString *tmp = [NSString stringWithFormat:GJText(@"用户(%@)"),dMessage.phone]; |
|
NSInteger lenght = tmp.length; |
|
tmp = [NSString stringWithFormat:GJText(@"%@申请关注【%@】的设备"),tmp,dMessage.name]; |
|
NSMutableAttributedString *att = [[NSMutableAttributedString alloc] initWithString:tmp]; |
|
|
|
[att addAttribute:NSForegroundColorAttributeName |
|
value:KKMainColor |
|
range:NSMakeRange(0,lenght)]; |
|
cell.messageLabel.attributedText = att; |
|
kWeakSelf(self) |
|
cell.agreeOrNOBlock = ^(BOOL ifAgree) { |
|
NSString *msg = [NSString stringWithFormat:GJText(@"确认%@用户关注【%@】?"),ifAgree ? GJText(@"同意"):GJText(@"拒绝"),dMessage.name]; |
|
EasyAlertView *alertV = [EasyAlertView alertViewWithTitle:GJText(@"提示") subtitle:msg AlertViewType:AlertViewTypeSystemAlert config:nil]; |
|
[alertV addAlertItem:^EasyAlertItem *{ |
|
return [EasyAlertItem itemWithTitle:GJText(@"取消") type:AlertItemTypeSystemCancel callback:nil]; |
|
}]; |
|
[alertV addAlertItem:^EasyAlertItem *{ |
|
return [EasyAlertItem itemWithTitle:GJText(@"确定") type:AlertItemTypeSystemDefault callback:^(EasyAlertView *showview, long index) { |
|
[weakself ApprovalFollow:dMessage status:ifAgree ? 1 : 2]; |
|
}]; |
|
}]; |
|
[alertV showAlertView]; |
|
}; |
|
|
|
} |
|
else if (dMessage.action == 0 && ![dMessage.adminId isEqualToString:APIManager.sharedManager.loginModel.openid]) |
|
{ |
|
//审核结果消息 |
|
cell.messageLabel.text = F(GJText(@"关注(%@)设备审核中"),dMessage.imei); |
|
} |
|
else |
|
{ |
|
NSString *state = dMessage.action == 1 ? GJText(@"同意") : dMessage.action == 2 ? GJText(@"拒绝") : GJText(@"审核中"); |
|
NSString *str = F(GJText(@"设备(%@)的管理员%@关注设备"),dMessage.imei,state); |
|
if ([dMessage.adminId isEqualToString:APIManager.sharedManager.loginModel.openid]) |
|
str = F(GJText(@"您%@用户(%@)申请关注【%@】的设备"),state,dMessage.phone,dMessage.name); |
|
cell.messageLabel.text = str; |
|
} |
|
cell.aTitleLabel.text = titleStr; |
|
|
|
if (dMessage.read && [dMessage.read intValue] == 0) { |
|
cell.readLabel.hidden = NO; |
|
} else { |
|
cell.readLabel.hidden = YES; |
|
} |
|
|
|
return cell; |
|
|
|
} |
|
|
|
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ |
|
|
|
AttentionModel *dMessage = self.modelListArr[indexPath.section]; |
|
[UICommon MessageUpload:@"加载中"]; |
|
[self updateInfoStatus:dMessage]; |
|
} |
|
|
|
//- (void)viewWillAppear:(BOOL)animated |
|
//{ |
|
// [super viewWillAppear:animated]; |
|
// [self xiaoxiyidu]; |
|
//} |
|
|
|
|
|
- (void)xiaoxiyidu |
|
{ |
|
[self.modelListArr enumerateObjectsUsingBlock:^(AttentionModel *model, NSUInteger idx, BOOL * _Nonnull stop) { |
|
if (model.read && model.read == 0) |
|
{ |
|
[self updateInfoStatus:model]; |
|
} |
|
}]; |
|
} |
|
|
|
- (void)updateInfoStatus:(AttentionModel *)model |
|
{ |
|
kWeakSelf(self) |
|
NSMutableDictionary *parameters = [NSMutableDictionary dictionary]; |
|
[[[APIManager sharedManager] APGET:F(@"%@%@/1", UpdateInfoStatus_URL,model.Id) parameters:parameters resultClass:nil] subscribeNext:^(id _Nullable x) { |
|
[UICommon HidenLoading]; |
|
[weakself GetQueryFollowInfo:TableisReload_h]; |
|
[[NSNotificationCenter defaultCenter] postNotificationName:KK_UPDATE_ALL_NEWS_MESSAGE object:nil]; |
|
} error:^(NSError * _Nullable error) { |
|
NSDictionary *dic = error.userInfo; |
|
[UICommon MessageErrorText:dic[NSLocalizedDescriptionKey]]; |
|
}]; |
|
} |
|
|
|
|
|
|
|
#pragma mark 管理员审批申请关注接口 |
|
/// 管理员审批申请关注接口 |
|
- (void)ApprovalFollow:(AttentionModel *)dMessage status:(NSInteger)status |
|
{ |
|
[UICommon MessageUpload:@"加载中"]; |
|
NSMutableDictionary *parameters = [NSMutableDictionary dictionary]; |
|
[parameters setValue:dMessage.adminId forKey:@"adminId"]; |
|
[parameters setValue:@"" forKey:@"email"]; |
|
[parameters setValue:dMessage.Id forKey:@"id"]; |
|
[parameters setValue:dMessage.imei forKey:@"imei"]; |
|
[parameters setValue:dMessage.phone forKey:@"phone"]; |
|
[parameters setValue:dMessage.relationship forKey:@"relationship"]; |
|
[parameters setValue:dMessage.relationshipImageId forKey:@"relationshipImageId"]; |
|
[parameters setValue:dMessage.userId forKey:@"userId"]; |
|
[parameters setValue:@(status) forKey:@"status"];// 1通过,2拒绝 |
|
|
|
[[[APIManager sharedManager] APPOST:ApprovalFollow_URL parameters:parameters isJson:YES resultClass:nil] subscribeNext:^(id _Nullable x) { |
|
[UICommon HidenLoading]; |
|
[[NSNotificationCenter defaultCenter] postNotificationName:KK_UPDATE_ALL_NEWS_MESSAGE object:nil]; |
|
[UICommon MessageSuccessText:@"操作成功"]; |
|
[self GetQueryFollowInfo:TableisReload_h]; |
|
} error:^(NSError * _Nullable error) { |
|
NSDictionary *dic = error.userInfo; |
|
[UICommon MessageErrorText:dic[NSLocalizedDescriptionKey]]; |
|
}]; |
|
} |
|
|
|
|
|
|
|
- (CGFloat)getLineHeight:(NSString *)string withWidth:(CGFloat)width withFont:(UIFont *)font{ |
|
|
|
UILabel *label = [[UILabel alloc]init]; |
|
label.numberOfLines = 0; |
|
label.lineBreakMode = NSLineBreakByWordWrapping; |
|
label.textAlignment = NSTextAlignmentLeft; |
|
label.text = string; |
|
label.font = font; |
|
CGSize labelSize = [label sizeThatFits:CGSizeMake(width, MAXFLOAT)]; |
|
CGFloat height = ceil(labelSize.height) + 1 + 34 + 10 +8; |
|
|
|
|
|
// xLog(@"文本框应该高 Height :%f ", height); |
|
if(height < 66){ |
|
height = 66; |
|
} |
|
return height; |
|
} |
|
|
|
|
|
#pragma mark - DZNEmptyDataSetSource,DZNEmptyDataSetDelegate |
|
- (void)emptyDataSet:(UIScrollView *)scrollView didTapView:(UIView *)view |
|
{ |
|
[self GetQueryFollowInfo:TableisReload_h]; |
|
} |
|
|
|
@end
|
|
|