// // MessageViewController.m // Lighting // // Created by 曹云霄 on 2017/2/16. // Copyright © 2017年 上海勾芒科技有限公司. All rights reserved. // #import "MessageViewController.h" #import "MessageTableViewCell.h" #import "UITableView+FDTemplateLayoutCell.h" @interface MessageViewController () /** 查询对象 */ @property (nonatomic,strong) NoticeCondition *messageModel; /** 数据源 */ @property (nonatomic,strong) NSMutableArray *messageArray; @end @implementation MessageViewController - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; self.navigationController.fd_fullscreenPopGestureRecognizer.enabled = NO; if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) { self.navigationController.interactivePopGestureRecognizer.enabled = NO; } [self.tableView.mj_header beginRefreshing]; } - (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; self.navigationController.fd_fullscreenPopGestureRecognizer.enabled = YES; if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) { self.navigationController.interactivePopGestureRecognizer.enabled = YES; } } - (void)viewDidLoad { [super viewDidLoad]; [self uiConfigAction]; } #pragma mark -UI - (void)uiConfigAction { [self.timeOrderButton addTarget:self action:@selector(timeOrderClickAction:) forControlEvents:UIControlEventTouchUpInside]; } #pragma mark -上、下拉回调 - (void)loadWebDataSource { WS(weakSelf); if (self.pullPageIndex == ONE) { [self.messageArray removeAllObjects]; } self.messageModel.page.page = self.pullPageIndex; [self getAllMessageDatasCompleted:^(NoticeResponse *result) { if (weakSelf.pullPageIndex >= result.totalpages) { [weakSelf endRefresh:EndRefreshNotData]; }else { [weakSelf endRefresh:EndRefreshDefault]; } }]; } #pragma mark -获取数据 - (void)getAllMessageDatasCompleted:(void(^)(NoticeResponse *result))completed { WS(weakSelf); [HTTP networkRequestWithURL:SERVERREQUESTURL(MESSAGELIST) withRequestType:0 withParameter:self.messageModel withReturnValueBlock:^(id returnValue) { if (RESULT(returnValue)) { NoticeResponse *resultModel = [[NoticeResponse alloc] initWithDictionary:RESPONSE(returnValue) error:nil]; completed(resultModel); [weakSelf.messageArray addObjectsFromArray:resultModel.noticeEntity]; [weakSelf.tableView reloadData]; }else { [XBLoadingView showHUDViewWithText:MESSAGE(returnValue)]; } } withFailureBlock:^(NSError *error) { [weakSelf endRefresh:EndRefreshDefault]; [XBLoadingView showHUDViewWithText:error.localizedDescription]; }]; } #pragma mark -设为已读 - (void)readedMessage:(NSString *)messageId withIndexPath:(NSIndexPath *)indexPath { WS(weakSelf); [XBLoadingView showHUDViewWithDefault]; [HTTP networkRequestWithURL:[NSString stringWithFormat:SERVERREQUESTURL(MESSAGE_READ),messageId,[Shoppersmanager manager].shoppers.employee.fid] withRequestType:0 withParameter:nil withReturnValueBlock:^(id returnValue) { [XBLoadingView hideHUDViewWithDefault]; if (RESULT(returnValue)) { TONoticeEntity *entity = weakSelf.messageArray[indexPath.row]; entity.readed = YES; [weakSelf cornerMarkIsShow]; [weakSelf configCell:[weakSelf.tableView cellForRowAtIndexPath:indexPath] withIndexPath:indexPath]; [weakSelf.tableView reloadData]; } } withFailureBlock:^(NSError *error) { [XBLoadingView showHUDViewWithText:error.localizedDescription]; }]; } #pragma mark -UITableViewDataSource - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { MessageTableViewCell *messageCell = [tableView dequeueReusableCellWithIdentifier:@"MessageTableViewCell" forIndexPath:indexPath]; [self configCell:messageCell withIndexPath:indexPath]; return messageCell; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return self.messageArray.count; } - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [tableView deselectRowAtIndexPath:indexPath animated:YES]; WS(weakSelf); TONoticeEntity *entity = self.messageArray[indexPath.row]; if (!entity.readed) { ShowAlertView(@"提示", @"是否设置为已读", @[@"确认",@"取消"], UIAlertControllerStyleAlert, ^(NSInteger index) { if (index == ONE) { return; } TONoticeEntity *entity = weakSelf.messageArray[indexPath.row]; [weakSelf readedMessage:entity.fid withIndexPath:indexPath]; }); } } - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { return [tableView fd_heightForCellWithIdentifier:@"MessageTableViewCell" cacheByIndexPath:indexPath configuration:^(id cell) { [self configCell:cell withIndexPath:indexPath]; }]; } #pragma mark -cell赋值 - (void)configCell:(MessageTableViewCell *)cell withIndexPath:(NSIndexPath *)indexPath { TONoticeEntity *entity = self.messageArray[indexPath.row]; cell.isReadedImageView.hidden = entity.readed; cell.messageLabel.text = entity.message; cell.releaseTimeLabel.text = entity.createDate; } #pragma mark --设置已读,未读个数减一 - (void)cornerMarkIsShow { [Notification postNotificationName:MESSAGE_COUNT object:@1]; } #pragma mark -时间排序 - (void)timeOrderClickAction:(UIButton *)sender { sender.selected = !sender.selected; self.messageModel.order = sender.selected?SORTDIRECTION_ASC:SORTDIRECTION_DESC; [self.tableView.mj_header beginRefreshing]; } #pragma mark -lazy - (NoticeCondition *)messageModel { if (!_messageModel) { _messageModel = [[NoticeCondition alloc] init]; DataPage *page = [[DataPage alloc] init]; page.page = ZERO; page.rows = KROWS; _messageModel.sort = @"createDate"; _messageModel.order = SORTDIRECTION_DESC; _messageModel.page = page; _messageModel.employeeId = [Shoppersmanager manager].shoppers.employee.fid; } return _messageModel; } - (NSMutableArray *)messageArray { if (!_messageArray) { _messageArray = [NSMutableArray array]; } return _messageArray; } @end