// // SchMessageViewController.m // LekangGuard // // Created by ecell on 2023/6/7. // #import "SchAndJobMessageViewController.h" #import "CommMessageTableViewCell.h" #import "CommMessageDetailsViewController.h" @interface SchAndJobMessageViewController () @property (nonatomic ,strong) CommonTableView *schMsgTable; @property (nonatomic ,assign) NSInteger page; @end @implementation SchAndJobMessageViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. self.zx_navTitle = self.navTitle; self.emptyText = F(@"暂无%@", self.navTitle); self.page = 1; self.view.backgroundColor = KKBackgroundGrey; [self.view addSubview:self.schMsgTable]; [self.schMsgTable mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.equalTo(self.view); make.top.equalTo(self.view).offset(iPhoneX_NavHeight); make.bottom.equalTo(self.view); }]; [UICommon MessageUpload:@"加载中"]; [self GetSchMessageList:TableisReload_h]; } - (CommonTableView *)schMsgTable { if (!_schMsgTable) { kWeakSelf(self) _schMsgTable = [[CommonTableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain cellHeight:50 cellRow:0 isAdaptive:YES isLine:NO commonCell:CommMessageTableViewCell.class createCell:^(ZZTableViewCell * _Nonnull cells, NSIndexPath * _Nonnull indexPath) { CommMessageTableViewCell *cell = (CommMessageTableViewCell *)cells; if (self.viewType == 0) cell.schModel = self.modelListArr[indexPath.row]; else cell.jobModel = self.modelListArr[indexPath.row]; } selectedCell:^(UITableView * _Nonnull tableView, NSIndexPath * _Nonnull indexPath) { CommMessageDetailsViewController *vc = [[CommMessageDetailsViewController alloc] init]; vc.viewType = self.viewType; if (self.viewType == 0) vc.schModel = self.modelListArr[indexPath.row]; else vc.jobModel = self.modelListArr[indexPath.row]; [[UICommon currentVC].navigationController pushViewController:vc animated:YES]; [self setMessageRead:self.modelListArr[indexPath.row] IndexPath:indexPath]; } DidscrollView:^(UIScrollView * _Nonnull scrollView) { }]; _schMsgTable.backgroundColor = KKClearColor; _schMsgTable.emptyDataSetSource = self; _schMsgTable.emptyDataSetDelegate = self; [_schMsgTable bindHeadRefreshHandler:^{ [UICommon feedbackGenerator]; [weakself GetSchMessageList:TableisReload_h]; } themeColor:KKMainColor refreshStyle:KafkaRefreshStyleReplicatorWoody]; [_schMsgTable bindFootRefreshHandler:^{ [weakself GetSchMessageList:TableisReload_f]; } themeColor:KKMainColor refreshStyle:KafkaRefreshStyleReplicatorWoody]; } return _schMsgTable; } #pragma mark 获取校园通知、班级作业 /// 获取校园通知、班级作业 - (void)GetSchMessageList:(TableisReload)isReload { kWeakSelf(self) if (isReload == TableisReload_h) { self.page = 1; [self.modelListArr removeAllObjects]; } NSMutableDictionary *parameters = [NSMutableDictionary dictionary]; [parameters setValue:@(self.page) forKey:@"current"]; [parameters setValue:@(20) forKey:@"pageSize"]; if (self.viewType == 1) [parameters setValue:APIManager.sharedManager.deviceModel.imei forKey:@"imei"]; [[[APIManager sharedManager] APGET:self.viewType == 0 ? CampusPage_GET_URL : HomeWorkPage_GET_URL parameters:parameters resultClass:BaseModel.class] subscribeNext:^(BaseModel *obj) { [UICommon HidenLoading]; if (ARRAYHASVALUE(obj.records)) { [weakself.schMsgTable.headRefreshControl endRefreshingWithAlertText:@"已为你加载最新数据~" completion:^{}]; [weakself.schMsgTable.footRefreshControl endRefreshing]; for (NSDictionary *dic in obj.records) { if (weakself.viewType == 0) { SchModel *model = [SchModel yy_modelWithJSON:dic]; [self.modelListArr addObject:model]; } else { JobModel *model = [JobModel yy_modelWithJSON:dic]; [self.modelListArr addObject:model]; } } weakself.page++; weakself.schMsgTable.footRefreshControl.hidden = obj.records.count < KSizeNO ? YES : NO; weakself.schMsgTable.cellRow = self.modelListArr.count; [weakself.schMsgTable reloadData]; } } error:^(NSError * _Nullable error) { NSDictionary *dic = error.userInfo; [UICommon MessageErrorText:dic[NSLocalizedDescriptionKey]]; }]; } #pragma mark 消息已读 /// 消息已读 - (void)setMessageRead:(id)Models IndexPath:(NSIndexPath *_Nonnull)indexPath { [UICommon MessageUpload:@"加载中"]; NSMutableDictionary *parameters = [NSMutableDictionary dictionary]; NSString *url; if (self.viewType == 0) { SchModel *schModel = Models; url = F(@"%@%@", IsReade_GET_URL,schModel.noticeId); } else { JobModel *jobModel = Models; url = HomeworkIsReade_GET_URL; [parameters setValue:jobModel.Id forKey:@"homeWorkId"]; [parameters setValue:APIManager.sharedManager.userModel.userId forKey:@"stuOrFatherId"]; } [[[APIManager sharedManager] APGET:url parameters:parameters resultClass:BaseModel.class] subscribeNext:^(id _Nullable x) { [UICommon HidenLoading]; for (int i = 0; i < self.modelListArr.count; i++) { if (self.viewType == 0) { SchModel *schModel = Models; SchModel *model = self.modelListArr[i]; if (model.noticeId == schModel.noticeId) { // [self.modelListArr removeObject:model]; schModel.sendReadStatus = 3; [self.modelListArr replaceObjectAtIndex:i withObject:schModel]; break; } } else { JobModel *jobModel = Models; JobModel *model = self.modelListArr[i]; if (model.Id == jobModel.Id) { // [self.modelListArr removeObject:model]; jobModel.receiveStatus = 3; [self.modelListArr replaceObjectAtIndex:i withObject:jobModel]; break; } } } [self.schMsgTable reloadRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath, nil] withRowAnimation:UITableViewRowAnimationNone]; } error:^(NSError * _Nullable error) { NSDictionary *dic = error.userInfo; [UICommon MessageErrorText:dic[NSLocalizedDescriptionKey]]; }]; } /* #pragma mark - Navigation // In a storyboard-based application, you will often want to do a little preparation before navigation - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { // Get the new view controller using [segue destinationViewController]. // Pass the selected object to the new view controller. } */ @end