| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287 |
- //
- // ForwardViewController.m
- // AIIM
- //
- // Created by qitewei on 2025/5/10.
- //
- #import "ForwardViewController.h"
- #import "FriendListCell.h"
- #import "FriendNetApi.h"
- #import "GroupNetApi.h"
- #import "ChatListStore.h"
- #import "GWebSocket.h"
- #import "UDManager.h"
- @interface ForwardViewController ()<UITableViewDelegate,UITableViewDataSource>
- @property (nonatomic, strong) UIImageView * bgImageView;
- @property (nonatomic, strong) UIButton * leftBtn;
- @property (nonatomic, strong) UITableView * tableView;
- @property (nonatomic, strong) NSMutableArray * dataArray;
- @property (nonatomic, strong) NSMutableArray * groupArray;
- @end
- @implementation ForwardViewController
- - (void)viewDidLoad {
- [super viewDidLoad];
- [self configUI];
- [self getGroupList];
- [self getFriendlist];
- }
- - (void)configUI{
- [self setNavigationTitle:@"转发"];
- [self setNavigationBarTransparent:YES];
- [self setNavigationBarBackgroundColor:UIColor.clearColor];
- [self setNavigationTitleColor:UIColor.whiteColor font:SYSBFONT(18)];
- [self addBarButtonWithImage:kImageMake(@"fanhui") position:BarButtonItemPositionLeft action:@selector(backToChat)];
-
- [self.view addSubview:self.bgImageView];
- [self.bgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
- make.left.right.top.bottom.mas_equalTo(0);
- }];
-
- [self.view addSubview:self.tableView];
- [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
- make.left.right.bottom.mas_equalTo(0);
- make.top.mas_equalTo(SCREEN_TOP);
- }];
- }
- #pragma mark api
- - (void)getGroupList{
- [GroupNetApi getGroupList:^(int code, NSDictionary * _Nullable result) {
- NSLog(@"result:%@",result);
- [self.groupArray addObjectsFromArray:result[@"data"]];
- [self.tableView reloadData];
- } fail:^(NSError * _Nonnull error) {
-
- }];
- }
- -(void)getFriendlist{
- [FriendNetApi getfriends:nil succ:^(int code, NSDictionary * res) {
- [self.dataArray addObjectsFromArray:res[@"data"]];
- //NSLog(@"self.friendlist:%@",self.friendlist);
-
- [self.tableView reloadData];
-
- } fail:^(NSError * _Nonnull error) {
-
- }];
- }
- #pragma mark event
- - (void)backToChat{
- NSLog(@"backToChat");
- [self dismissViewControllerAnimated:YES completion:nil];
- }
- #pragma mark private
- - (void)sendForwardMessageWithFriend:(NSDictionary *)friend Type:(NSInteger)type{
- NSLog(@"44444");
- NSDate *now = [NSDate date];
- NSTimeInterval trt = [now timeIntervalSince1970];
- NSInteger time = trt*1000;
- NSDictionary * userInfo = [UDManager.shareInstance getDDManager:dkuserinfo];
- NSString * typeString = type == 0 ? @"1" : @"0";
- if (!self.isMultiple) {//逐条转发
- for (NSDictionary * msg in self.msgArray) {
- time= time+100;
- NSString *strtime = [NSString stringWithFormat:@"%ld",(long)time];
- NSDictionary *Smsgd=@{
- @"messageType":msg[@"messageType"],
- @"chatId":friend[@"id"],
- @"fromId":userInfo[@"id"],
- @"fromName":self.userName,
- @"fromAvatar":self.userAvatar,
- @"content":msg[@"content"],
- @"type":typeString,
- @"reSend":[NSNumber numberWithBool:false],
- @"extend": [msg jk_hasKey:@"extend"] == YES ? msg[@"extend"] : @{
- @"atAll":@"false",
- @"atUserIds":@[]
- },
- @"localtime":strtime,
- @"timestamp":strtime,
-
- };
-
- NSDictionary *sendInfo = @{
- @"code":@"2",
- @"message":Smsgd,
- };
-
- NSError *error;
- NSData *jsonData = [NSJSONSerialization dataWithJSONObject:sendInfo options:0 error:&error];
- if (!jsonData) {
- NSLog(@"Got an error: %@", error);
- } else {
- NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
- [GWebSocket.shareInstance sendMsg:jsonString];
-
- }
- }
- [MBProgressHUD showWithText:@"操作成功"];
- [self backToChat];
- }else{//合并转发
- NSString *strtime = [NSString stringWithFormat:@"%ld",(long)time];
- NSDictionary *Smsgd=@{
- @"messageType":@"6",
- @"chatId":friend[@"id"],
- @"fromId":userInfo[@"id"],
- @"fromName":self.userName,
- @"fromAvatar":self.userAvatar,
- @"content":@"聊天记录",
- @"type":typeString,
- @"reSend":[NSNumber numberWithBool:false],
- @"extend": @{@"messageList":self.msgArray},
- @"localtime":strtime,
- @"timestamp":strtime,
- };
-
- NSDictionary *sendInfo = @{
- @"code":@"2",
- @"message":Smsgd,
- };
-
- NSError *error;
- NSData *jsonData = [NSJSONSerialization dataWithJSONObject:sendInfo options:0 error:&error];
- if (!jsonData) {
- NSLog(@"Got an error: %@", error);
- } else {
- NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
- [GWebSocket.shareInstance sendMsg:jsonString];
- [MBProgressHUD showWithText:@"操作成功"];
- [self backToChat];
- }
- }
-
- }
- #pragma mark tableview delegate
- - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
- return 2;
- }
- - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
- if (section == 0) {
- return self.groupArray.count;
- }
- return self.dataArray.count;
- }
- - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
- return 20.f;
- }
- - (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{
- return 0;
- }
- - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
- UIView * header = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 20)];
- UILabel * titleLbl = [[UILabel alloc] initWithFrame:CGRectMake(10, 2, 200, 16)];
- titleLbl.text = section == 0 ? @"群聊" : @"好友";
- titleLbl.textColor = UIColor.whiteColor;
- titleLbl.font = SYSFONT(16);
- [header addSubview:titleLbl];
- return header;
- }
- - (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{
- return nil;
- }
- -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
- return 70;
- }
- - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
- if (indexPath.section == 0) {
- FriendListCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass(FriendListCell.class) forIndexPath:indexPath];
- cell.selectionStyle = UITableViewCellSelectionStyleNone;
- cell.backgroundColor = [UIColor clearColor];
- [cell fillWithData:self.groupArray[indexPath.row]];
- return cell;
- }
-
- FriendListCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass(FriendListCell.class) forIndexPath:indexPath];
- cell.selectionStyle = UITableViewCellSelectionStyleNone;
- cell.backgroundColor = [UIColor clearColor];
- [cell fillWithData:self.dataArray[indexPath.row]];
- return cell;
- }
- - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
- NSLog(@"1111");
- if (indexPath.section == 0) {
- NSDictionary * friendDict = self.groupArray[indexPath.row];
- NSLog(@"222");
- if ([friendDict[@"id"] isEqualToString:self.fromChatId]) {
- [self backToChat];
- return;
- }
- [self sendForwardMessageWithFriend:friendDict Type:0];
- }else{
- NSDictionary * friendDict = self.dataArray[indexPath.row];
- NSLog(@"33333:%@",self.fromChatId);
- NSLog(@"friendDict33333:%@",friendDict);
- if ([friendDict[@"id"] isEqualToString:self.fromChatId]) {
- [self backToChat];
- return;
- }
- [self sendForwardMessageWithFriend:friendDict Type:1];
- }
- }
- #pragma mark lazy
- - (UIImageView *)bgImageView{
- if (!_bgImageView) {
- _bgImageView = [[UIImageView alloc] initWithImage:kImageMake(@"loginBG")];
- }
- return _bgImageView;
- }
- - (UIButton *)leftBtn{
- if (!_leftBtn) {
- _leftBtn = [UIButton buttonWithType:UIButtonTypeCustom];
- [_leftBtn setImage:kImageMake(@"fanhui") forState:UIControlStateNormal];
- }
- return _leftBtn;
- }
- - (UITableView *)tableView{
- if (!_tableView) {
- _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
- _tableView.backgroundColor = UIColor.clearColor;
- _tableView.delegate = self;
- _tableView.dataSource = self;
- [_tableView registerClass:FriendListCell.class forCellReuseIdentifier:NSStringFromClass(FriendListCell.class)];
- }
- return _tableView;
- }
- - (NSMutableArray *)dataArray{
- if (!_dataArray) {
- _dataArray = [NSMutableArray array];
- }
- return _dataArray;
- }
- - (NSMutableArray *)groupArray{
- if (!_groupArray) {
- _groupArray = [NSMutableArray array];
- }
- return _groupArray;
- }
- #pragma mark statusBar
- - (UIStatusBarStyle)preferredStatusBarStyle{
- return UIStatusBarStyleLightContent;
- }
- @end
|