萤石云 iOSSDK,移植跨平台相关工程
JLChen
2021-08-06 edc0f0a0439f9e5a11593e21a4779fa6dbcbe49d
Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/UIViewControllers/EZMessageListViewController.m
@@ -15,6 +15,8 @@
#import "MBProgressHUD.h"
#import "EZMessagePhotoViewController.h"
#import "NSDate-Utilities.h"
#import "HDLAlarmInfo.h"
#import "YYModel.h"
#define EZMessageListPageSize 10
@@ -31,7 +33,7 @@
@property (nonatomic) NSInteger currentIndex;
@property (nonatomic, strong) NSMutableArray *messageList;
@property (nonatomic, strong) NSDateFormatter *dateFormatter;
@property (nonatomic, strong) NSMutableArray *sections;
//@property (nonatomic, strong) NSMutableArray *sections;
@property (nonatomic) NSInteger lastIndex;
@property (nonatomic, weak) IBOutlet UIImageView *noMessage;
@property (nonatomic, weak) IBOutlet UILabel *noMessageLabel;
@@ -59,16 +61,16 @@
    // self.navigationItem.rightBarButtonItem = self.editButtonItem;
    
    self.title = NSLocalizedString(@"dmessage_title", @"消息");
    [EZOPENSDK getUnreadMessageCount:self.deviceInfo.deviceSerial messageType:EZMessageTypeAlarm completion:^(NSInteger count, NSError *error) {
        self.title = [NSString stringWithFormat:@"%@(%d)",NSLocalizedString(@"dmessage_title", @"消息"), (int)count];
    }];
    //    [EZOPENSDK getUnreadMessageCount:self.deviceInfo.deviceSerial messageType:EZMessageTypeAlarm completion:^(NSInteger count, NSError *error) {
    //        self.title = [NSString stringWithFormat:@"%@(%d)",NSLocalizedString(@"dmessage_title", @"消息"), (int)count];
    //    }];
    
    if(!_messageList)
        _messageList = [NSMutableArray new];
    if(!self.messageList)
        self.messageList = [NSMutableArray new];
    
    if(!_sections)
        _sections = [NSMutableArray new];
//    if(!_sections)
//        _sections = [NSMutableArray new];
//
    if(!_selectedMessageArray)
        _selectedMessageArray = [NSMutableArray new];
    
@@ -99,35 +101,20 @@
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return _sections.count;
    return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    if (_sections.count == 1)
    {
        return _messageList.count;
    }
    else
    {
        if (section == 0) {
            return [_sections[1][@"index"] integerValue];
        }
        else if (section == _sections.count - 1)
        {
            return _messageList.count - [_sections[section][@"index"] integerValue];
        }
        else
        {
            return [_sections[section + 1][@"index"] integerValue] - [_sections[section][@"index"] integerValue];
        }
    }
    return self.messageList.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    // Configure the cell...
    MessageListCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MessageCell" forIndexPath:indexPath];
    cell.deviceSerial = self.deviceInfo.deviceSerial;
    EZAlarmInfo *info = [_messageList dd_objectAtIndex:[[_sections dd_objectAtIndex:indexPath.section][@"index"] integerValue] + indexPath.row];
    HDLAlarmInfo *info = self.messageList[indexPath.row];
    [cell setAlarmInfo:info];
    if (tableView.allowsMultipleSelectionDuringEditing == YES) {
        if([_selectedMessageArray containsObject:info])
@@ -150,7 +137,7 @@
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
     EZAlarmInfo *info = [_messageList dd_objectAtIndex:[[_sections dd_objectAtIndex:indexPath.section][@"index"] integerValue] + indexPath.row];
    HDLAlarmInfo *info = self.messageList[indexPath.row];
    if(tableView.allowsMultipleSelectionDuringEditing)
    {
        if ([self.selectedMessageArray containsObject:info])
@@ -165,14 +152,14 @@
        {
            self.deleteSelected.title = [NSString stringWithFormat:@"%@(%d)",NSLocalizedString(@"delete", @"删除"),(int)[self.selectedMessageArray count]];
            self.deleteSelected.enabled = YES;
            self.readAll.title = [NSString stringWithFormat:@"%@(%d)",NSLocalizedString(@"dmessage_read", @"标记已读"),(int)[self.selectedMessageArray count]];
            self.readAll.title = [NSString stringWithFormat:@"%@(%d)",NSLocalizedString(@"message_read", @"标记已读"),(int)[self.selectedMessageArray count]];
            self.readAll.enabled = YES;
        }
        else
        {
            self.deleteSelected.title = NSLocalizedString(@"delete", @"删除");
            self.deleteSelected.enabled = NO;
            self.readAll.title = NSLocalizedString(@"dmessage_read", @"标记已读");
            self.readAll.title = NSLocalizedString(@"message_read", @"标记已读");
            self.readAll.enabled = NO;
        }
        return;
@@ -180,16 +167,16 @@
    MessageListCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    [self performSegueWithIdentifier:@"go2MessagePhoto" sender:@{@"image":cell.actionImageView.image?:[UIImage new],
                                                                 @"alarmInfo":info}];
    [EZOPENSDK getUnreadMessageCount:self.deviceInfo.deviceSerial messageType:EZMessageTypeAlarm completion:^(NSInteger count, NSError *error) {
        self.title = [NSString stringWithFormat:@"%@(%d)",NSLocalizedString(@"dmessage_title", @"消息"), (int)count];
    }];
    //    [EZOPENSDK getUnreadMessageCount:self.deviceInfo.deviceSerial messageType:EZMessageTypeAlarm completion:^(NSInteger count, NSError *error) {
    //        self.title = [NSString stringWithFormat:@"%@(%d)",NSLocalizedString(@"dmessage_title", @"消息"), (int)count];
    //    }];
}
- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
{
    if(tableView.allowsMultipleSelectionDuringEditing)
    {
        EZAlarmInfo *info = [_messageList dd_objectAtIndex:[[_sections dd_objectAtIndex:indexPath.section][@"index"] integerValue] + indexPath.row];
        HDLAlarmInfo *info = self.messageList[indexPath.row];;
        if ([self.selectedMessageArray containsObject:info])
        {
            [self.selectedMessageArray removeObject:info];
@@ -202,14 +189,14 @@
        {
            self.deleteSelected.title = [NSString stringWithFormat:@"%@(%d)",NSLocalizedString(@"delete", @"删除"),(int)[self.selectedMessageArray count]];
            self.deleteSelected.enabled = YES;
            self.readAll.title = [NSString stringWithFormat:@"%@(%d)",NSLocalizedString(@"dmessage_read", @"标记已读"),(int)[self.selectedMessageArray count]];
            self.readAll.title = [NSString stringWithFormat:@"%@(%d)",NSLocalizedString(@"message_read", @"标记已读"),(int)[self.selectedMessageArray count]];
            self.readAll.enabled = YES;
        }
        else
        {
            self.deleteSelected.title = NSLocalizedString(@"delete", @"删除");
            self.deleteSelected.enabled = NO;
            self.readAll.title = NSLocalizedString(@"dmessage_read", @"标记已读");
            self.readAll.title = NSLocalizedString(@"message_read", @"标记已读");
            self.readAll.enabled = NO;
        }
    }
@@ -220,49 +207,64 @@
    return 75.0f;
}
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    return 20.0f;
}
//- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
//{
//    return 20.0f;
//}
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    UILabel *headerLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 20)];
    NSString *key = [self.sections dd_objectAtIndex:section][@"date"];
    headerLabel.text = [NSString stringWithFormat:@"  %@",[self dateStringWithUserDefine:key]];
    headerLabel.font = [UIFont systemFontOfSize:14.0f];
    headerLabel.backgroundColor = [UIColor dd_hexStringToColor:@"0xf0f0f3"];
    return headerLabel;
}
//- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
//{
//    UILabel *headerLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 20)];
//    NSString *key = [self.sections dd_objectAtIndex:section][@"date"];
//    headerLabel.text = [NSString stringWithFormat:@"  %@",[self dateStringWithUserDefine:key]];
//    headerLabel.font = [UIFont systemFontOfSize:14.0f];
//    headerLabel.backgroundColor = [UIColor dd_hexStringToColor:@"0xf0f0f3"];
//    return headerLabel;
//}
// Override to support editing the table view.
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
    if (editingStyle == UITableViewCellEditingStyleDelete) {
        // Delete the row from the data source
        EZAlarmInfo *info = [_messageList dd_objectAtIndex:[[_sections dd_objectAtIndex:indexPath.section][@"index"] integerValue] + indexPath.row];
        HDLAlarmInfo *info = self.messageList[indexPath.row];;
        MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
        hud.labelText = NSLocalizedString(@"message_deleting", @"正在删除,请稍候...");
        [EZOPENSDK deleteAlarm:@[info.alarmId] completion:^(NSError *error) {
            [hud hide:YES];
            [_messageList removeObject:info];
            [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
        //        [EZOPENSDK deleteAlarm:@[info.alarmId] completion:^(NSError *error) {
        //            [hud hide:YES];
        //            [self.messageList removeObject:info];
        //            [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
        //        }];
        __weak __typeof(self)weakSelf = self;
        [[EZHttpUtil sharedManager] deleteAlarmMessage:@[info.ysId] completion:^(ResponseData * responseData) {
            if (responseData.success) {
                [hud hide:YES];
                [weakSelf.messageList removeObject:info];
                [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
            }else{
                hud.labelText = NSLocalizedString(@"setting_opration_fail", @"操作失败");
                hud.mode = MBProgressHUDModeText;
                [hud hide:YES afterDelay:1.2];
            }
        }];
    }
}
/*
// Override to support rearranging the table view.
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {
}
*/
 // Override to support rearranging the table view.
 - (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {
 }
 */
/*
// Override to support conditional rearranging of the table view.
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
    // Return NO if you do not want the item to be re-orderable.
    return YES;
}
*/
 // Override to support conditional rearranging of the table view.
 - (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
 // Return NO if you do not want the item to be re-orderable.
 return YES;
 }
 */
#pragma mark - UIActionSheetDelegate Methods
@@ -274,29 +276,51 @@
        hud.labelText = NSLocalizedString(@"message_deleting", @"正在删除,请稍候...");
        NSMutableArray *alarmIds = [NSMutableArray new];
        for (int i = 0; i < self.selectedMessageArray.count; i++) {
            EZAlarmInfo *info = [self.selectedMessageArray dd_objectAtIndex:i];
            [alarmIds addObject:info.alarmId];
            HDLAlarmInfo *info = [self.selectedMessageArray dd_objectAtIndex:i];
            [alarmIds addObject:info.ysId];
        }
        [EZOPENSDK deleteAlarm:alarmIds completion:^(NSError *error) {
            if(error)
            {
                hud.labelText = error.localizedDescription;
        //        [EZOPENSDK deleteAlarm:alarmIds completion:^(NSError *error) {
        //            if(error)
        //            {
        //                hud.labelText = error.localizedDescription;
        //                hud.mode = MBProgressHUDModeText;
        //                [hud hide:YES afterDelay:1.2];
        //            }
        //            else
        //            {
        //                [hud hide:YES];
        //            }
        //            [self.messageList removeObjectsInArray:self.selectedMessageArray];
        //            [self editTableView:self.navigationItem.rightBarButtonItem];
        //            if(self.messageList.count > 0){
        //                [self.tableView reloadData];
        //            }
        //            else
        //            {
        //                [self.tableView.mj_header beginRefreshing];
        //            }
        //        }];
        __weak __typeof(self)weakSelf = self;
        [[EZHttpUtil sharedManager] deleteAlarmMessage:alarmIds completion:^(ResponseData * responseData) {
            [hud hide:YES];
            if (responseData.success) {
                [hud hide:YES];
            }else{
                hud.labelText = NSLocalizedString(@"setting_opration_fail", @"操作失败");
                hud.mode = MBProgressHUDModeText;
                [hud hide:YES afterDelay:1.2];
            }
            else
            {
                [hud hide:YES];
            }
            [self.messageList removeObjectsInArray:self.selectedMessageArray];
            [self editTableView:self.navigationItem.rightBarButtonItem];
            if(self.messageList.count > 0){
                [self.tableView reloadData];
            [weakSelf.messageList removeObjectsInArray:self.selectedMessageArray];
            [weakSelf editTableView:self.navigationItem.rightBarButtonItem];
            if(weakSelf.messageList.count > 0){
                [weakSelf.tableView reloadData];
            }
            else
            {
                [self.tableView.header beginRefreshing];
                [weakSelf.tableView.mj_header beginRefreshing];
            }
        }];
    }
}
@@ -308,15 +332,25 @@
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
    NSDictionary *dict = sender;
    EZAlarmInfo *info = dict[@"alarmInfo"];
    if(!info.isRead){
        [EZOPENSDK setAlarmStatus:@[info.alarmId] alarmStatus:EZMessageStatusRead completion:^(NSError *error) {
            if(!error)
            {
                info.isRead = YES;
                [self.tableView reloadData];
    HDLAlarmInfo *info = dict[@"alarmInfo"];
    if(!info.isChecked){
        //        [EZOPENSDK setAlarmStatus:@[info.alarmId] alarmStatus:EZMessageStatusRead completion:^(NSError *error) {
        //            if(!error)
        //            {
        //                info.isChecked = YES;
        //                [self.tableView reloadData];
        //            }
        //        }];
        //标记已读
        __weak __typeof(self)weakSelf = self;
        [[EZHttpUtil sharedManager] readAlarmMessage:@[info.ysId] completion:^(ResponseData * responseData) {
            if(responseData.success){
                info.isChecked = YES;
                [weakSelf.tableView reloadData];
            }
        }];
    }
    EZMessagePhotoViewController *nextVC = [segue destinationViewController];
    nextVC.image = dict[@"image"];
@@ -329,64 +363,118 @@
- (void)addHeaderRefresh
{
    __weak typeof(self) weakSelf = self;
    self.tableView.header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
        weakSelf.currentIndex = 0;
    self.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
        weakSelf.currentIndex = 1;
        [weakSelf.noMessage removeFromSuperview];
        [weakSelf.noMessageLabel removeFromSuperview];
        [EZOPENSDK getAlarmList:weakSelf.deviceInfo.deviceSerial
                      pageIndex:weakSelf.currentIndex++
                       pageSize:EZMessageListPageSize
                      beginTime:weakSelf.beginTime
                        endTime:weakSelf.endTime
//                      beginTime:nil
//                        endTime:nil
                     completion:^(NSArray *alarmList, NSInteger alarmCount, NSError *error) {
                         [weakSelf.messageList removeAllObjects];
                         [weakSelf.messageList addObjectsFromArray:alarmList];
                         weakSelf.totalCount = alarmCount;
                         if(weakSelf.messageList.count != weakSelf.totalCount)
                         {
                             [weakSelf addFooter];
                         }
                         [weakSelf tableViewDidReload:alarmList];
                         [weakSelf.tableView.header endRefreshing];
                         if(weakSelf.messageList.count > 0)
                             weakSelf.navigationItem.rightBarButtonItem = self.editButton;
                     }];
        //        [EZOPENSDK getAlarmList:weakSelf.deviceInfo.deviceSerial
        //                      pageIndex:weakSelf.currentIndex++
        //                       pageSize:EZMessageListPageSize
        //                      beginTime:weakSelf.beginTime
        //                        endTime:weakSelf.endTime
        ////                      beginTime:nil
        ////                        endTime:nil
        //                     completion:^(NSArray *alarmList, NSInteger alarmCount, NSError *error) {
        //                         [weakSelf.messageList removeAllObjects];
        //                         [weakSelf.messageList addObjectsFromArray:alarmList];
        //                         weakSelf.totalCount = alarmCount;
        //                         if(weakSelf.messageList.count != weakSelf.totalCount)
        //                         {
        //                             [weakSelf addFooter];
        //                         }
        //                         [weakSelf tableViewDidReload:alarmList];
        //                         [weakSelf.tableView.mj_header endRefreshing];
        //                         if(weakSelf.messageList.count > 0)
        //                             weakSelf.navigationItem.rightBarButtonItem = self.editButton;
        //                     }];
        //2021-07-09 1.修改为HDL接口方案
        [[EZHttpUtil sharedManager] getAlarmList:weakSelf.deviceInfo.deviceSerial pageNo:weakSelf.currentIndex++ pageSize:EZMessageListPageSize completion:^(ResponseData *  responseData) {
            NSInteger alarmCount = 0;
            NSArray<HDLAlarmInfo *> *alarmList = [NSArray array];
            if (responseData.success){
                HDLAlarmInfoData *alarmInfoData = [HDLAlarmInfoData yy_modelWithDictionary:responseData.data];
                if (alarmInfoData) {
                    alarmCount = alarmInfoData.totalCount;
                    if (alarmInfoData.list) {
                        alarmList = alarmInfoData.list;
                    }
                }
            }
            [weakSelf.messageList removeAllObjects];
            [weakSelf.messageList addObjectsFromArray:alarmList];
            weakSelf.totalCount = alarmCount;
            if(weakSelf.messageList.count != weakSelf.totalCount)
            {
                [weakSelf addFooter];
            }
            [weakSelf tableViewDidReload];
            [weakSelf.tableView.mj_header endRefreshing];
            if(weakSelf.messageList.count > 0)
                weakSelf.navigationItem.rightBarButtonItem = self.editButton;
        }];
    }];
    self.tableView.header.automaticallyChangeAlpha = YES;
    [self.tableView.header beginRefreshing];
    self.tableView.mj_header.automaticallyChangeAlpha = YES;
    [self.tableView.mj_header beginRefreshing];
}
- (void)addFooter
{
    __weak typeof(self) weakSelf = self;
    self.tableView.footer  = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{
        [EZOPENSDK getAlarmList:weakSelf.deviceInfo.deviceSerial
                      pageIndex:weakSelf.currentIndex++
                       pageSize:EZMessageListPageSize
                      beginTime:weakSelf.beginTime
                        endTime:weakSelf.endTime
                     completion:^(NSArray *alarmList, NSInteger alarmCount, NSError *error) {
                         [weakSelf.messageList addObjectsFromArray:alarmList];
                         if(weakSelf.messageList.count >= weakSelf.totalCount)
                         {
                             weakSelf.tableView.footer.hidden = YES;
                             return;
                         }
                         [weakSelf tableViewDidReload:alarmList];
                         [weakSelf.tableView.footer endRefreshing];
                     }];
    self.tableView.mj_footer  = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{
        //        [EZOPENSDK getAlarmList:weakSelf.deviceInfo.deviceSerial
        //                      pageIndex:weakSelf.currentIndex++
        //                       pageSize:EZMessageListPageSize
        //                      beginTime:weakSelf.beginTime
        //                        endTime:weakSelf.endTime
        //                     completion:^(NSArray *alarmList, NSInteger alarmCount, NSError *error) {
        //                         [weakSelf.messageList addObjectsFromArray:alarmList];
        //                         if(weakSelf.messageList.count >= weakSelf.totalCount)
        //                         {
        //                             weakSelf.tableView.mj_footer.hidden = YES;
        //                             return;
        //                         }
        //                         [weakSelf tableViewDidReload:alarmList];
        //                         [weakSelf.tableView.mj_footer endRefreshing];
        //                     }];
        [[EZHttpUtil sharedManager] getAlarmList:weakSelf.deviceInfo.deviceSerial pageNo:weakSelf.currentIndex++ pageSize:EZMessageListPageSize completion:^(ResponseData *  responseData) {
            NSArray<HDLAlarmInfo *> *alarmList = [NSArray array];
            if (responseData.success){
                HDLAlarmInfoData *alarmInfoData = [HDLAlarmInfoData yy_modelWithDictionary:responseData.data];
                if (alarmInfoData) {
                    if (alarmInfoData.list) {
                        alarmList = alarmInfoData.list;
                    }
                }
            }
            [weakSelf.messageList addObjectsFromArray:alarmList];
            [weakSelf tableViewDidReload];
            [weakSelf.tableView.mj_footer endRefreshing];
            if(weakSelf.messageList.count >= weakSelf.totalCount)
            {
                weakSelf.tableView.mj_footer.hidden = YES;
                return;
            }
        }];
    }];
}
#pragma mark - Action Methods
- (void)tableViewDidReload:(NSArray *)messageList
- (void)tableViewDidReload
{
    if(messageList.count == 0)
    if(self.messageList.count == 0)
    {
        self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
        [self.tableView reloadData];
@@ -397,28 +485,28 @@
        self.noMessageLabel.frame = CGRectMake((self.tableView.frame.size.width - 100)/2.0, self.noMessage.frame.origin.y + self.noMessage.frame.size.height + 10, 100, 20.0);
        return;
    }
    if(self.currentIndex == 1)
    {
        [self.sections removeAllObjects];
        [self.tableView.footer endRefreshing];
        self.lastDate = [messageList[0] alarmStartTime];
        self.dateFormatter.dateFormat = @"yyyy-MM-dd";
        NSString *key = [self.dateFormatter stringFromDate:self.lastDate];
        NSDictionary *dict = @{@"index":@0, @"date":key};
        [self.sections addObject:dict];
    }
    for (int i = 0; i < messageList.count; i++) {
        EZAlarmInfo *info = [messageList dd_objectAtIndex:i];
        if(![info.alarmStartTime isSameToDate:self.lastDate])
        {
            NSInteger index = [self.messageList indexOfObject:info];
            self.dateFormatter.dateFormat = @"yyyy-MM-dd";
            NSString *key = [self.dateFormatter stringFromDate:info.alarmStartTime];
            NSDictionary *dict = @{@"index":@(index),@"date":key};
            [self.sections addObject:dict];
        }
        self.lastDate = info.alarmStartTime;
    }
//    if(self.currentIndex == 1)
//    {
//        [self.sections removeAllObjects];
//        [self.tableView.mj_footer endRefreshing];
//        self.lastDate = [messageList[0] getAlarmStartTime];
//        self.dateFormatter.dateFormat = @"yyyy-MM-dd";
//        NSString *key = [self.dateFormatter stringFromDate:self.lastDate];
//        NSDictionary *dict = @{@"index":@0, @"date":key};
//        [self.sections addObject:dict];
//    }
//    for (int i = 0; i < messageList.count; i++) {
//        HDLAlarmInfo *info = [messageList dd_objectAtIndex:i];
//        if(![[info getAlarmStartTime] isSameToDate:self.lastDate])
//        {
//            NSInteger index = [self.messageList indexOfObject:info];
//            self.dateFormatter.dateFormat = @"yyyy-MM-dd";
//            NSString *key = [self.dateFormatter stringFromDate:[info getAlarmStartTime]];
//            NSDictionary *dict = @{@"index":@(index),@"date":key};
//            [self.sections addObject:dict];
//        }
//        self.lastDate = [info getAlarmStartTime];
//    }
    [self.tableView reloadData];
}
@@ -431,19 +519,19 @@
        [self.navigationController setToolbarHidden:YES animated:YES];
        self.deleteSelected.title = NSLocalizedString(@"delete", @"删除");
        self.deleteSelected.enabled = NO;
        self.readAll.title = NSLocalizedString(@"dmessage_read", @"标记已读");
        self.readAll.title = NSLocalizedString(@"message_read", @"标记已读");
        self.readAll.enabled = NO;
        [self.selectedMessageArray removeAllObjects];
        self.tableView.header.hidden = NO;
        self.tableView.mj_header.hidden = NO;
        if(self.messageList.count < self.totalCount)
            self.tableView.footer.hidden = NO;
            self.tableView.mj_footer.hidden = NO;
    }else{
        self.tableView.allowsMultipleSelectionDuringEditing = YES;
        [self.tableView setEditing:YES animated:YES];
        self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(editTableView:)];
        [self.navigationController setToolbarHidden:NO animated:YES];
        self.tableView.header.hidden = YES;
        self.tableView.footer.hidden = YES;
        self.tableView.mj_header.hidden = YES;
        self.tableView.mj_footer.hidden = YES;
        self.selectedAll.enabled = YES;
        self.deleteSelected.enabled = NO;
        self.readAll.enabled = NO;
@@ -463,19 +551,19 @@
        [self.selectedMessageArray addObjectsFromArray:self.messageList];
        self.deleteSelected.title = [NSString stringWithFormat:@"%@(%d)",NSLocalizedString(@"delete", @"删除"),(int)[self.selectedMessageArray count]];
        self.deleteSelected.enabled = YES;
        self.readAll.title = [NSString stringWithFormat:@"%@(%d)",NSLocalizedString(@"dmessage_read", @"标记已读"),(int)[self.selectedMessageArray count]];
        self.readAll.title = [NSString stringWithFormat:@"%@(%d)",NSLocalizedString(@"message_read", @"标记已读"),(int)[self.selectedMessageArray count]];
        self.readAll.enabled = YES;
    }
    else
    {
        self.deleteSelected.title = NSLocalizedString(@"delete", @"删除");
        self.readAll.title = NSLocalizedString(@"dmessage_read", @"标记已读");
        self.readAll.title = NSLocalizedString(@"message_read", @"标记已读");
        [self.selectedMessageArray removeAllObjects];
        self.deleteSelected.enabled = NO;
        self.readAll.enabled = NO;
    }
    [self.tableView reloadData];
    self.tableView.footer.hidden = YES;
    self.tableView.mj_footer.hidden = YES;
}
- (IBAction)deleteMessage:(id)sender
@@ -511,35 +599,57 @@
    hud.labelText = NSLocalizedString(@"message_setting", @"正在设置已读,请稍候...");
    NSMutableArray *alarmIds = [NSMutableArray new];
    for (int i = 0; i < self.selectedMessageArray.count; i++) {
        EZAlarmInfo *info = [self.selectedMessageArray dd_objectAtIndex:i];
        [alarmIds addObject:info.alarmId];
        HDLAlarmInfo *info = [self.selectedMessageArray dd_objectAtIndex:i];
        [alarmIds addObject:info.ysId];
    }
    [EZOPENSDK setAlarmStatus:alarmIds
                  alarmStatus:EZMessageStatusRead
                   completion:^(NSError *error) {
                       if(error)
                       {
                           hud.labelText = error.localizedDescription;
                           hud.mode = MBProgressHUDModeText;
                           [hud hide:YES afterDelay:1.2];
                       }
                       else
                       {
                           [hud hide:YES];
                       }
                       if(!error)
                       {
                           for (int i = 0; i < self.selectedMessageArray.count; i++) {
                               EZAlarmInfo *info = [self.selectedMessageArray dd_objectAtIndex:i];
                               info.isRead = YES;
                           }
                           [self editTableView:self.navigationItem.rightBarButtonItem];
                           [self.tableView reloadData];
                           [EZOPENSDK getUnreadMessageCount:self.deviceInfo.deviceSerial messageType:EZMessageTypeAlarm completion:^(NSInteger count, NSError *error) {
                               self.title = [NSString stringWithFormat:@"%@(%d)",NSLocalizedString(@"message_title", @"消息"), (int)count];
                           }];
                       }
    //    [EZOPENSDK setAlarmStatus:alarmIds
    //                  alarmStatus:EZMessageStatusRead
    //                   completion:^(NSError *error) {
    //        if(error)
    //        {
    //            hud.labelText = error.localizedDescription;
    //            hud.mode = MBProgressHUDModeText;
    //            [hud hide:YES afterDelay:1.2];
    //        }
    //        else
    //        {
    //            [hud hide:YES];
    //        }
    //        if(!error)
    //        {
    //            for (int i = 0; i < self.selectedMessageArray.count; i++) {
    //                HDLAlarmInfo *info = [self.selectedMessageArray dd_objectAtIndex:i];
    //                info.isChecked = YES;
    //            }
    //            [self editTableView:self.navigationItem.rightBarButtonItem];
    //            [self.tableView reloadData];
    //            [EZOPENSDK getUnreadMessageCount:self.deviceInfo.deviceSerial messageType:EZMessageTypeAlarm completion:^(NSInteger count, NSError *error) {
    //                self.title = [NSString stringWithFormat:@"%@(%d)",NSLocalizedString(@"message_title", @"消息"), (int)count];
    //            }];
    //        }
    //    }];
    //标记已读
    __weak __typeof(self)weakSelf = self;
    [[EZHttpUtil sharedManager] readAlarmMessage:alarmIds completion:^(ResponseData * responseData) {
        if(responseData.success){
            [hud hide:YES];
            for (int i = 0; i < self.selectedMessageArray.count; i++) {
                HDLAlarmInfo *info = [self.selectedMessageArray dd_objectAtIndex:i];
                info.isChecked = YES;
            }
            [weakSelf editTableView:self.navigationItem.rightBarButtonItem];
            [weakSelf.tableView reloadData];
        }else{
            hud.labelText = NSLocalizedString(@"setting_opration_fail", @"操作失败");
            hud.mode = MBProgressHUDModeText;
            [hud hide:YES afterDelay:1.2];
        }
    }];
}
- (NSString *)dateStringWithUserDefine:(NSString *)dateString