123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230 |
- //
- // ChatMsgTopSearchVC.m
- // smartRhino
- //
- // Created by niuzhen on 2020/4/8.
- // Copyright © 2020 tederen. All rights reserved.
- //
- #import "ChatMsgTopSearchVC.h"
- #import "MailListByZuCell.h"
- #import "MailListDetailVC.h"
- #import "ChatSearchModel.h"
- #import "ChatMsgListCell.h"
- #import "NSDate+Extension.h"
- #import "EMChatViewController.h"
- #import "WorkingGroupMainVC.h"
- @interface ChatMsgTopSearchVC ()<UITableViewDelegate,UITableViewDataSource>
- @property (nonatomic, copy) NSMutableArray *listArray;
- @end
- @implementation ChatMsgTopSearchVC
- - (void)viewDidLoad {
- [super viewDidLoad];
- self.fd_prefersNavigationBarHidden = YES;
- self.view.backgroundColor = RGB(255, 255, 255);
- self.tableView.delegate = self;
- self.tableView.dataSource = self;
- self.historySearchType = HistorySearchType_XinYuan;
- [self addObserver:self forKeyPath:@"searchText" options:NSKeyValueObservingOptionNew context:nil];
- }
- - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context
- {
- id obj = [change objectForKey:@"new"];
- NSString * text = @"";
- if ([obj isKindOfClass:[NSString class]]) {
- text = obj;
- }else{
- text = [obj stringValue];
- }
- if (text.length > 0) {
- [self getData];
- }
- }
- - (void)getData
- {
- WEAKSELF
- [self.listArray removeAllObjects];
- NSString * url = [NSString stringWithFormat:@"%@%@",Host(API_APP_Often_Contact_Search),self.searchText];
- NSString * urlHost = [url stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
- [[HttpManager sharedHttpManager] GETUrl:urlHost parameters:@{} responseStyle:JOSN success:^(id _Nonnull responseObject) {
- NSLog(@"搜索结果:%@",responseObject);
- for (NSDictionary *dic in responseObject) {
- ChatSearchModel * model = [ChatSearchModel modelWithDictionary:dic];
- [weakSelf.listArray addObject:model];
- }
- dispatch_async(dispatch_get_main_queue(), ^{
- if (weakSelf.listArray.count > 0) {
- weakSelf.collectionView.hidden = YES;
- weakSelf.noDataView.hidden = YES;
- weakSelf.tableView.hidden = NO;
- [weakSelf.tableView reloadData];
- }else{
- weakSelf.noDataView.hidden = NO;
- weakSelf.collectionView.hidden = YES;
- weakSelf.tableView.hidden = YES;
- weakSelf.noDataL.text = @"暂无数据";
- }
- });
- } failure:^(NSError * _Nonnull error) {
- SHOWERROR([ZYCTool handerResultData:error])
-
- }];
- }
- - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
- {
- return self.listArray.count;
- }
- - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
- {
- ChatSearchModel * model = [self.listArray objectAtIndex:indexPath.row];
- switch (model.TypeValue) {
- case ChatSearchUserType:
- {
- return [MailListByZuCell configCell2Height];
- }
- break;
- case ChatSearchOnlyType:
- {
- return [ChatMsgListCell configCell3Height];
- }
- break;
- case ChatSearchGroupType:
- {
- return [ChatMsgListCell configCell3Height];
- }
- break;
- default:
- {
- return [ChatMsgListCell configCell2Height];
- }
- break;
- }
- }
- - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
- {
- ChatSearchModel * model = [self.listArray objectAtIndex:indexPath.row];
- switch (model.TypeValue) {
- case ChatSearchUserType:
- {
- MailListByZuCell *cell = [MailListByZuCell configCell2:tableView indexPath:indexPath];
- cell.cell0TitleLabel.text = model.Name;
- cell.cell0DepartMentName.text = model.DepartmentName;
- [cell.cell0ImgView sd_setImageWithURL:[NSURL URLWithString:model.AvatarUrl] placeholderImage:IMG(@"chatmsg_list_testuser_img")];
- return cell;
- }
- break;
- case ChatSearchOnlyType:
- {
- ChatMsgListCell *cell = [ChatMsgListCell configCell3:tableView indexPath:indexPath];
- [cell setCellSearchModel:model];
- return cell;
- }
- break;
- case ChatSearchGroupType:
- {
- ChatMsgListCell *cell = [ChatMsgListCell configCell3:tableView indexPath:indexPath];
- [cell setCellSearchModel:model];
- return cell;
- }
- break;
- default:
- {
- ChatMsgListCell *cell = [ChatMsgListCell configCell2:tableView indexPath:indexPath];
- cell.cell2TitleLabel.text = model.Name;
- cell.cell2TimeLabel.hidden = NO;
- cell.IsTopView.hidden = YES;
- cell.cell2TimeLabel.text = [NSDate getTimeStringAutoShort2:model.LastModifiedDate];
- cell.cell2TimeLabel.textColor = RGB(153, 153, 153);
- cell.enterBtn.hidden = YES;
- return cell;
- }
- break;
- }
- }
- - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
- {
- [tableView deselectRowAtIndexPath:indexPath animated:YES];
- ChatSearchModel *model = [self.listArray objectAtIndex:indexPath.row];
- switch (model.TypeValue) {
- case ChatSearchUserType:
- {
- MailListDetailVC *vc = [MailListDetailVC initMailListDetailVC];
- vc.indexId = model.Id;
- [self.navigationController pushViewController:vc animated:YES];
- }
- break;
- case ChatSearchOnlyType:
- {
- [self enterChatView:model];
- }
- break;
- case ChatSearchGroupType:
- {
- [self getGroupInfo:model];
- }
- break;
- default:
- {
- WorkingGroupMainVC *vc = [WorkingGroupMainVC initWorkingGroupMainVC];
- vc.GroupId = [NSString stringWithFormat:@"%ld",(long)model.Id];
- vc.GroupTitle = model.Name;
- [self.navigationController pushViewController:vc animated:YES];
- }
- break;
- }
- }
- - (void)enterChatView:(ChatSearchModel *)chatModel
- {
- EMConversation *conversation = [[EMClient sharedClient].chatManager getConversation:[NSString stringWithFormat:@"%ld",(long)chatModel.ImId] type: EMConversationTypeChat createIfNotExist:YES];
- EMConversationModel *model = [[EMConversationModel alloc] initWithEMModel:conversation];
- EMChatViewController *controller = [[EMChatViewController alloc] initWithCoversationModel:model];
- if (chatModel.TypeValue == ChatSearchOnlyType) {
- controller.toUserId = chatModel.ToUserId;
- controller.ReceiveIcon = chatModel.AvatarUrl;
- SelectModel * sModel = [[SelectModel alloc] init];
- sModel.UserId = chatModel.ToUserId;
- sModel.UserName = chatModel.Name;
- sModel.AvatarUrl = chatModel.AvatarUrl;
- controller.sModel = sModel;
- }
- model.name = chatModel.Name;
- controller.ImId = chatModel.ImId;
- controller.GroupId = chatModel.Id;
- controller.chatType = 1;
- controller.listId = chatModel.Id;
- controller.isTop = chatModel.IsTop;
- [self.navigationController pushViewController:controller animated:YES];
- }
- - (void)getGroupInfo:(ChatSearchModel *)chatModel
- {
- WS(weakSelf);
- [[HttpManager sharedHttpManager] POSTUrl:Host(Group_chat_info) parameters:@{@"GroupChatImId":@(chatModel.ImId)} responseStyle:JOSN success:^(id _Nonnull responseObject) {
- EMConversation *conversation = [[EMClient sharedClient].chatManager getConversation:[NSString stringWithFormat:@"%ld",(long)chatModel.ImId] type: EMConversationTypeGroupChat createIfNotExist:YES];
- EMConversationModel *model = [[EMConversationModel alloc] initWithEMModel:conversation];
- EMChatViewController *controller = [[EMChatViewController alloc] initWithCoversationModel:model];
- controller.toUserId = chatModel.ImId;
- controller.groupUserInfoArray = responseObject[@"Item"];
- model.name = chatModel.Name;
- controller.GroupId = chatModel.Id;
- controller.ImId = chatModel.ImId;
- controller.chatType = 2;
- controller.isTop = chatModel.IsTop;
- [weakSelf.navigationController pushViewController:controller animated:YES];
- } failure:^(NSError * _Nonnull error) {
-
- }];
- }
- - (NSMutableArray *)listArray{
- if (!_listArray) {
- _listArray = [NSMutableArray new];
- }
- return _listArray;
- }
- @end
|