// // ChatNewRowVC.m // smartRhino // // Created by niuzhen on 2019/12/10. // Copyright © 2019 tederen. All rights reserved. // #import "ChatNewRowVC.h" #import "ShowPhotoCameraAlertView.h" #import "LYLPhotoTailoringTool.h" #import "SendInfoGroupVC.h" #import "MailListVC.h" #import "AddLookUpUserSecondVC.h" #import "TDGroupQrcodeVC.h" #import "TDGroupInfoListModel.h" #import "NewRowUserCell.h" @interface ChatNewRowVC () @property (strong,nonatomic) IBOutlet UIButton *rightSureBtn; @property (weak, nonatomic) IBOutlet UITextField *groupNameTf; @property (weak, nonatomic) IBOutlet UITextField *groupIntroTf; @property (weak, nonatomic) IBOutlet UIImageView *groupImgView; @property (weak, nonatomic) IBOutlet UILabel *avatarTipLab; @property (weak, nonatomic) IBOutlet UITableView *tableView; @property (nonatomic, strong) NSString *groupName ; @property (nonatomic, strong) NSString *groupIntroduce ; @property (nonatomic, strong) NSString *avatarUrl ; @property (nonatomic, strong) NSString *imId ; @property (nonatomic, strong) UIImage *groupImage ; @property (nonatomic, strong) NSMutableArray * selectArray; @property (nonatomic, strong) NSMutableArray * selectIdArray; @property (nonatomic, assign) bool isWords; @property (nonatomic, assign) bool isAdmin; @property (nonatomic, assign) bool isUDisturb ; @end @implementation ChatNewRowVC +(ChatNewRowVC *)initChatNewRowVC{ ChatNewRowVC *controller = [StoryboardManager.shared.TDGroup instantiateViewControllerWithIdentifier:@"ChatNewRowVC"]; return controller; } - (void)viewDidLoad { [super viewDidLoad]; self.tableView.delegate = self; self.tableView.dataSource = self; self.fd_prefersNavigationBarHidden = YES; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(recviveChaoSongRen:) name:NOTIFI_ChaoSongRen object:nil]; WEAKSELF [self.rightSureBtn setAction:^{ weakSelf.rightSureBtn.enabled = NO; [weakSelf createGroupChat]; }]; self.groupNameTf.delegate = self; self.groupIntroTf.delegate = self; self.groupNameTf.returnKeyType = UIReturnKeyDone; self.groupIntroTf.returnKeyType = UIReturnKeyDone; [self.groupNameTf becomeFirstResponder]; } -(IBAction)userDidUpImgAction:(id)sender{ WEAKSELF [self.groupNameTf resignFirstResponder]; [self.groupIntroTf resignFirstResponder]; [[ShowPhotoCameraAlertView initShowPhotoCameraAlertViewConfirm:^(ShowPhotoCameraType type) { if(type == ShowPhotoCameraType1){ [[LYLPhotoTailoringTool sharedTool] selectPhotoWithPhoroOrCamera:SelectPhotoWithTypePhoroOrCamera2 crop:YES showImgBlock:^(NSString *imageUrlStr) { } choosImgBlock:^(UIImage *image) { weakSelf.groupImage = image; weakSelf.groupImgView.image = image; weakSelf.avatarTipLab.text = @""; }]; }else if (type == ShowPhotoCameraType2){ NSLog(@"相册"); TZImagePickerController *imagePickerVc = [[TZImagePickerController alloc] initWithMaxImagesCount:1 delegate:nil]; [imagePickerVc setNavLeftBarButtonSettingBlock:^(UIButton *leftButton){ leftButton.hidden = YES; }]; imagePickerVc.showSelectBtn = NO; imagePickerVc.allowCrop = YES; imagePickerVc.cropRect = CGRectMake(0, (SCREEN_HEIGHT - SCREEN_WIDTH) * 0.5, SCREEN_WIDTH, SCREEN_WIDTH); imagePickerVc.allowTakePicture = NO; imagePickerVc.allowTakeVideo = NO; imagePickerVc.allowPickingOriginalPhoto = NO; imagePickerVc.allowPickingGif = NO; [imagePickerVc setIsStatusBarDefault:YES]; [imagePickerVc setNaviTitleColor:[UIColor blackColor]]; [imagePickerVc setBarItemTextColor:[UIColor blackColor]]; [imagePickerVc setDidFinishPickingPhotosHandle:^(NSArray *photos, NSArray *assets, BOOL isSelectOriginalPhoto) { PHAsset *asset = assets.firstObject; switch (asset.mediaType) { case PHAssetMediaTypeVideo: { } break; case PHAssetMediaTypeImage: { UIImage * image = photos.firstObject; weakSelf.groupImage = image; weakSelf.groupImgView.image = image; weakSelf.avatarTipLab.text = @""; } break; case PHAssetMediaTypeAudio: break; case PHAssetMediaTypeUnknown: break; default: break; } }]; [self presentViewController:imagePickerVc animated:YES completion:nil]; } } cancle:^{ }] showWithAnimation:kAlertAnimationBottom]; } -(IBAction)userDidAddFriendeAction:(id)sender{ [self.view endEditing:YES]; Department *defaltGroupSetion = [[Department alloc]init]; defaltGroupSetion.Name = @"单位通讯录"; defaltGroupSetion.Id = 0; Department *myGroupSetion = [[Department alloc]init]; myGroupSetion.Name = @"自建通讯录"; defaltGroupSetion.Id = 0; AddLookUpUserSecondVC *vc = [[AddLookUpUserSecondVC alloc] init]; vc.departSourceDataArray = @[defaltGroupSetion,myGroupSetion].mutableCopy; vc.isDefalutPage = 1; vc.titleStr = @"添加成员"; vc.UserIds = self.selectIdArray; [self.navigationController pushViewController:vc animated:YES]; } - (void)recviveChaoSongRen:(NSNotification *)notification{ NSMutableArray * array = notification.userInfo[@"selectPeople"]; NSMutableArray * array0 = self.selectArray; NSMutableArray * array1 = notification.userInfo[@"selectPeople"]; if (array0.count == 0) { [self.selectArray addObjectsFromArray:array]; }else{ for (NSInteger x = 0; x < array.count; x++) { for (NSInteger y = 0 ; y < array0.count; y++) { if (array[x].UserId == array0[y].UserId) { [array1 removeObjectAtIndex:x]; } } } NSLog(@"结果数据组%@",array1); [self.selectArray addObjectsFromArray:array1]; } if (self.selectArray.count > 0) { for (NSInteger i = 0; i < self.selectArray.count; i ++) { SelectModel * model = self.selectArray[i]; [self.selectIdArray addObject:@(model.UserId)]; } [self.tableView reloadData]; } } - (void)createGroupChat{ if (self.groupNameTf.text.length == 0) { SHOWERROR(@"请输入小组名称") return; }else{ self.groupName = self.groupNameTf.text; } if (self.groupIntroTf.text.length==0) { SHOWERROR(@"请添加小组介绍") return; }else{ self.groupIntroduce = self.groupIntroTf.text; } WEAKSELF self.rightSureBtn.enabled = NO; if (self.groupImage) { [self postGroupAvatar:self.groupImage withCompletion:^(BOOL success, NSString *imageUrl) { if (success) { weakSelf.avatarUrl = imageUrl; [weakSelf postGroupMsg]; } }]; }else{ SHOWERROR(@"请上传小组头像"); self.rightSureBtn.enabled = YES; return; } } - (void)postGroupMsg{ NSMutableDictionary *dict = [[NSMutableDictionary alloc] init]; [dict setValue:self.groupName forKey:@"Name"]; [dict setValue:self.groupIntroduce forKey:@"Introduce"]; [dict setValue:@([AppUserModel sharedAppUserModel].Id) forKey:@"UserId"]; [dict setValue:@(self.isWords) forKey:@"IsWords"]; [dict setValue:@(self.isAdmin) forKey:@"IsAdmin"]; [dict setValue:self.avatarUrl forKey:@"AvatarUrl"]; [dict setValue:self.selectIdArray forKey:@"UserIds"]; [dict setValue:@"" forKey:@"QRCoder"]; [dict setValue:@(self.isUDisturb) forKey:@"IsUDisturb"]; [dict setValue:@(self.GroupFolderId) forKey:@"GroupFolderId"]; WS(weakSelf); SHOWLOADING [[HttpManager sharedHttpManager] PUTUrl:Host(APP_Group_Insert) parameters:dict responseStyle:JOSN success:^(id _Nonnull responseObject) { REMOVESHOW weakSelf.rightSureBtn.enabled = YES; NSLog(@"%@",responseObject); dispatch_async(dispatch_get_main_queue(), ^{ TDGroupQrcodeVC * vc = [TDGroupQrcodeVC initTDGroupQrcodeVC]; TDGroupInfoListModel * model = [TDGroupInfoListModel modelWithDictionary:responseObject]; vc.model = model; vc.isCreate = YES; [weakSelf.navigationController pushViewController:vc animated:YES]; }); } failure:^(NSError * _Nonnull error) { REMOVESHOW weakSelf.rightSureBtn.enabled = YES; SHOWERROR(@"创建失败") }]; } - (void)postGroupAvatar:(UIImage*)image withCompletion:(void(^)(BOOL success,NSString *imageUrl))completionHandler{ NSString *urlString = [[NSString alloc] initWithFormat:@"%@%@",BaseUrl,Modify_UserImage_Post]; [[HttpManager sharedHttpManager] HeaderUploadUrl:urlString parameters:@{} pictureData:UIImageJPEGRepresentation(image,1.0f) pictureKey:@"file" success:^(id _Nonnull responseObject) { if (completionHandler) { completionHandler(YES,responseObject[@"AbsolutePath"]); } } failure:^(NSError * _Nonnull error) { if (completionHandler) { completionHandler(NO,nil); } }]; } - (NSMutableArray *)selectArray { if (!_selectArray) { _selectArray = [NSMutableArray array]; } return _selectArray; } - (NSMutableArray *)selectIdArray { if (!_selectIdArray) { _selectIdArray = [NSMutableArray array]; } return _selectIdArray; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return self.selectArray.count; } - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { return 65.f; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { SelectModel *model = [self.selectArray objectAtIndex:indexPath.row]; NewRowUserCell *cell = [NewRowUserCell configCell:tableView indexPath:indexPath]; [cell.imagV sd_setImageWithURL:[NSURL URLWithString:model.AvatarUrl] placeholderImage:kUserDefaultHeadImage]; cell.nameL.text = model.UserName; WS(weakSelf); [cell.CloseBtn setAction:^{ [weakSelf.selectArray removeObjectAtIndex:indexPath.row]; dispatch_async(dispatch_get_main_queue(), ^{ [weakSelf.tableView reloadData]; }); }]; return cell; } - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { if (textField == self.groupNameTf) { if (range.length == 1 && string.length == 0) { return YES; } else if (self.groupNameTf.text.length + string.length >= 12) { NSMutableString *oldStr = [[NSMutableString alloc]initWithString:textField.text]; [oldStr insertString:string atIndex:range.location]; self.groupNameTf.text = [oldStr substringToIndex:12]; return NO; } } return YES; } -(void)textFieldDidEndEditing:(UITextField *)textField{ if (textField.text.length > 12) { textField.text = [textField.text substringToIndex:12]; SHOWERROR(@"文件夹名称最多12个字"); } } - (BOOL)textFieldShouldReturn:(UITextField *)textField { [textField resignFirstResponder]; return YES; } - (void)dealloc { [[NSNotificationCenter defaultCenter] removeObserver:self]; } @end