Quellcode durchsuchen

1.上传中暂停一个后自动上传一下一个人;全部暂停全部开启优化,单个暂停开启优化

huangxiaodong vor 1 Jahr
Ursprung
Commit
8d159f2180

+ 40 - 15
创维盒子/双子星云手机/Class/Set/uploadFile/uploadFileManager/uploadFileManager.m

@@ -239,7 +239,7 @@ static uploadFileManager * cur_uploadFileShareInstance = nil;
         return;
     }
     
-    _fileModelDataArr = totalArr[0];
+    _fileModelDataArr = [NSMutableArray arrayWithArray:totalArr[0]];
     
     [self beginUploadFileFun];
 }
@@ -303,7 +303,7 @@ static uploadFileManager * cur_uploadFileShareInstance = nil;
     if(_databaseArr.count == 3 && _isNewAddTaskType){
         NSMutableArray *uploadIngArr = _databaseArr[0];
         if(_fileModelDataArr.count != uploadIngArr.count){
-            _databaseArr[0] = _fileModelDataArr;
+            _databaseArr[0] = [NSMutableArray arrayWithArray:_fileModelDataArr];
         }
     }
     
@@ -437,9 +437,12 @@ static uploadFileManager * cur_uploadFileShareInstance = nil;
 - (void)changeUploadFileState:(uploadStateType)curUploadStateType withDidUploadBytes:(long)didUpLoadBytes withModel:(uploadFileDataModel*)model  complete:(custom_complete_B)complete
 {
     if(model.bg_id.integerValue != _curUploadFileDataModel.bg_id.integerValue){
+        complete(YES);
         return;
     }
     
+    HLog(@"上传任务列表:%@",_fileModelDataArr);
+    
     self.taskRenewTime = [iTools getNowTimeStamp];
     
     _curUploadFileDataModel.curUploadStateType = curUploadStateType;
@@ -635,22 +638,35 @@ static uploadFileManager * cur_uploadFileShareInstance = nil;
         return;
     }
     
+    [[NSNotificationCenter defaultCenter] postNotificationName:uploadFileSuspendNotification object:nil];
+    
     if(isSuspendAll){
         for (uploadFileDataModel*model in _fileModelDataArr) {
             model.curUploadStateType = uploadStateSuspend;
         }
+        _isSuspendType = YES;
+        _isUploadIngType = NO;
+        
+        NSEnumerator *curArr = [_fileModelDataArr reverseObjectEnumerator];
+        for (uploadFileDataModel*model in curArr) {
+            [self changeUploadFileState:uploadStateSuspend withDidUploadBytes:model.didUploadBytes withModel:model complete:^(BOOL isSuccess) {
+                
+            }];
+        }
+        
+        [_fileModelDataArr removeAllObjects];
+        
     }
-    
-    _isSuspendType = YES;
-    _isUploadIngType = NO;
-    
-    [[NSNotificationCenter defaultCenter] postNotificationName:uploadFileSuspendNotification object:nil];
-    
-    NSEnumerator *curArr = [_fileModelDataArr reverseObjectEnumerator];
-    for (uploadFileDataModel*model in curArr) {
-        [self changeUploadFileState:uploadStateSuspend withDidUploadBytes:model.didUploadBytes withModel:model complete:^(BOOL isSuccess) {
+    else{
+        
+        _curUploadFileDataModel.curUploadStateType = uploadStateSuspend;
+        [self changeUploadFileState:uploadStateSuspend withDidUploadBytes:_curUploadFileDataModel.didUploadBytes withModel:_curUploadFileDataModel complete:^(BOOL isSuccess) {
             
+            [self->_fileModelDataArr removeObject:self->_curUploadFileDataModel];
+            //处理完暂停某一个后 开启下一个任务
+            [self beginUploadFileFun];
         }];
+        
     }
     
 }
@@ -671,8 +687,12 @@ static uploadFileManager * cur_uploadFileShareInstance = nil;
     if(isAllType)
     {
         _isNewAddTaskType = YES;
-        _fileModelDataArr = Arr;
+        _fileModelDataArr = [NSMutableArray arrayWithArray:Arr];
         _reUploadIngSelectIndex = -1;
+        if(_fileModelDataArr.count >0){
+            [[NSNotificationCenter defaultCenter] postNotificationName:uploadFileRefreshNotification object:_fileModelDataArr.firstObject];
+        }
+        
         [self beginUploadFileFun];
         return;
     }
@@ -681,7 +701,12 @@ static uploadFileManager * cur_uploadFileShareInstance = nil;
     _reUploadIngSelectIndex = 0;
     
     NSMutableArray *curArr = [NSMutableArray arrayWithArray:Arr];
-    _fileModelDataArr = curArr;
+    //_fileModelDataArr = curArr;
+    
+    for (uploadFileDataModel*addModel in curArr){
+        [_fileModelDataArr insertObject:addModel atIndex:0];
+    }
+    
     
 //    for (uploadFileDataModel*addModel in curArr) {
 //
@@ -852,10 +877,10 @@ static uploadFileManager * cur_uploadFileShareInstance = nil;
             [self beginUploadFileFun];
         }
         else{
-            //_curUploadFileDataModel = nil;
+            _curUploadFileDataModel = nil;
             
             _isSuspendType = NO;
-            _curUploadFileDataModel.curUploadStateType = uploadStateDone;
+            //_curUploadFileDataModel.curUploadStateType = uploadStateDone;
         }
     }
         

+ 13 - 1
创维盒子/双子星云手机/Class/Set/uploadFile/uploadFileRecordViewController.m

@@ -467,7 +467,17 @@
 //                curModel.curUploadStateType = uploadStateSuspend;
 //            }
             //改为重新上传
-            [[uploadFileManager shareInstance] reUploadFileFunBy:curLoadIngArr withAll:YES];
+            NSMutableArray *handleUploadArr = [NSMutableArray new];
+            for (uploadFileDataModel * curModel in curLoadIngArr) {
+                if(curModel.curUploadStateType != uploadStateSuspend)
+                {
+                    [handleUploadArr addObject:curModel];
+                }
+            }
+            
+            if(handleUploadArr.count >0){
+                [[uploadFileManager shareInstance] reUploadFileFunBy:handleUploadArr withAll:YES];
+            }
         }
         
         mainBlock(^{
@@ -589,6 +599,8 @@
     
     NSMutableArray *uploadingArr = _leftTableView.uploadingArr;
     
+    HLog(@"传输列表的上传任务:%@",uploadingArr);
+    
     for (int i=0; i<uploadingArr.count; i++) {
         uploadFileDataModel*preModel = uploadingArr[i];
         if(preModel.bg_id.integerValue == uploadFileDataMod.bg_id.integerValue){

+ 8 - 1
创维盒子/双子星云手机/CloudPlayer/PlayerViewController+upLoadFile.m

@@ -247,7 +247,14 @@
     if([dataDict isKindOfClass:[NSDictionary class]]){
         if ([[dataDict allKeys] containsObject:@"data"]) {
             NSDictionary *data = dataDict[@"data"];
-
+            
+            if ([[data allKeys] containsObject:@"taskId"]){
+                NSString *taskId = data[@"taskId"];
+                if(![taskId isEqualToString:self.taskUid]){
+                    return;
+                }
+            }
+            
             if ([[data allKeys] containsObject:@"status"]) {
                 NSString  *status = [data objectForKey:@"status"];
                 if(![status isKindOfClass:[NSString class]]){