// // NotiCenterViewController.m // ShenQi // // Created by twotutoo on 2025/1/11. // #import "NotiCenterViewController.h" #import "NotiCenterTableViewCell.h" #import "NotiCenterContentTableViewCell.h" #import "NotiCenterImageTableViewCell.h" #import "NotiCenterJumpLinkTableViewCell.h" #import "MacroDefine.h" #import #import #import "DataModels.h" #import "UIButton+DSButtonBlock.h" #import #import "MainOldViewController.h" static NSString *identifier = @"NotiCenterTableViewCell"; static NSString *contentidentifier = @"NotiCenterContentTableViewCell"; static NSString *imageidentifier = @"NotiCenterImageTableViewCell"; static NSString *linkidentifier = @"NotiCenterJumpLinkTableViewCell"; @interface NotiCenterViewController () @property (weak, nonatomic) IBOutlet UITableView *tableView; @property (nonatomic, strong) NSString *mainUserId; @property (nonatomic, strong) NSMutableArray *notiArray; @property (nonatomic, assign) NSInteger page; @end @implementation NotiCenterViewController - (IBAction)gobackAction:(id)sender { [self dismissViewControllerAnimated:NO completion:nil]; } - (void)viewDidLoad { [super viewDidLoad]; self.mainUserId = TESTUserID; self.tableView.delegate = self; self.tableView.dataSource = self; self.tableView.rowHeight = UITableViewAutomaticDimension; self.tableView.sectionHeaderHeight = 10; self.tableView.sectionFooterHeight = 0; self.tableView.backgroundColor = UIColorFromRGB(0xFAFAFA); [self.tableView registerNib:[UINib nibWithNibName:@"NotiCenterTableViewCell" bundle:nil] forCellReuseIdentifier:identifier]; [self.tableView registerNib:[UINib nibWithNibName:@"NotiCenterContentTableViewCell" bundle:nil] forCellReuseIdentifier:contentidentifier]; [self.tableView registerNib:[UINib nibWithNibName:@"NotiCenterImageTableViewCell" bundle:nil] forCellReuseIdentifier:imageidentifier]; [self.tableView registerNib:[UINib nibWithNibName:@"NotiCenterJumpLinkTableViewCell" bundle:nil] forCellReuseIdentifier:linkidentifier]; self.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{ self.notiArray = @[].mutableCopy; self.page = 1; [self refreshDatasource]; }]; self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; self.tableView.tableFooterView = [UIView new]; self.notiArray = @[].mutableCopy; self.page = 1; [self refreshDatasource]; } -(void)refreshDatasource { NSString *urlstring = [NSString stringWithFormat:@"%@?userId=%@&page=%ld&size=20",PushRecordsURL,self.mainUserId,(long)self.page]; NSURL *url = [NSURL URLWithString:urlstring]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; request.HTTPMethod = @"GET"; [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; NSURLSession *session = [NSURLSession sharedSession]; NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { dispatch_async(dispatch_get_main_queue(), ^{ if (error) { [SVProgressHUD showInfoWithStatus:error.localizedDescription]; }else{ NSError *error; NSMutableDictionary *responseObject = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error]; if (error) { [SVProgressHUD showInfoWithStatus:error.localizedDescription]; }else{ if (ISNULL(error) && !ISNULL(responseObject) && [[responseObject objectForKey:@"code"] integerValue] == 1) { PushRecordDataModel *model = [[PushRecordDataModel alloc] initWithDictionary:responseObject]; for (PushRecordList *list in model.data.list) { if (list.type == 2) { list.imageHeight = SCREEN_WIDTH-30; } } [self.notiArray addObjectsFromArray:model.data.list]; if (model.data.list.count == 20) { self.tableView.mj_footer = [MJRefreshBackNormalFooter footerWithRefreshingBlock:^{ self.page++; [self refreshDatasource]; }]; }else{ self.tableView.mj_footer = nil; } [self.tableView reloadData]; [self refreshImageDatasource]; [self scrollViewToRecordIDSection]; } } } [self.tableView.mj_header endRefreshing]; [self.tableView.mj_footer endRefreshing]; }); }]; [dataTask resume]; } -(void)refreshImageDatasource { for (NSInteger i=0; i 0) { for (NSInteger i=0; i