|
@@ -461,6 +461,14 @@
|
|
|
}
|
|
|
else if(dataModel.curUploadStateType == uploadStateFail){
|
|
|
//[_fileModelDataArr removeObject:dataModel];
|
|
|
+
|
|
|
+ //删除操作导致的失败
|
|
|
+ NSMutableArray *ingArr = _databaseArr[0];
|
|
|
+ NSInteger count = ingArr.count;
|
|
|
+ if(count == 0){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
[self handleDatabaseArrDeleteObjectInUploading:dataModel];
|
|
|
[self handleDatabaseArrAddObjectInFail:dataModel];
|
|
|
}
|
|
@@ -666,39 +674,49 @@
|
|
|
}
|
|
|
|
|
|
if(!isDelCache){//上传报云机已经存在文件了 查询本地是否有任务记录
|
|
|
- //[self handleRetryUploadAndDelRecordFun:uploadFileDataMod];
|
|
|
+ [self handleRetryUploadAndDelRecordFun:uploadFileDataMod];
|
|
|
}
|
|
|
|
|
|
//是否在删除上传中的任务
|
|
|
-// if(_fileModelDataArr && _fileModelDataArr.count >0)
|
|
|
-// {
|
|
|
-// for (uploadFileDataModel *curUploadFileDataMod in _fileModelDataArr)
|
|
|
-// {
|
|
|
-// if(curUploadFileDataMod.bg_id.integerValue == uploadFileDataMod.bg_id.integerValue){
|
|
|
-// [_fileModelDataArr removeObject:curUploadFileDataMod];
|
|
|
-// break;
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
-//
|
|
|
-// if(!isDelUploadingModel){
|
|
|
-// if(_curUploadFileDataModel.bg_id.integerValue == uploadFileDataMod.bg_id.integerValue){
|
|
|
-// isDelUploadingModel = YES;
|
|
|
-// //[[webSocketManager shareInstance] suspendUploadFileFun];
|
|
|
-// }
|
|
|
-// }
|
|
|
- }
|
|
|
-
|
|
|
-// if(isDelUploadingModel){
|
|
|
-// _isUploadIngType = NO;
|
|
|
-// if(_fileModelDataArr.count >=1){
|
|
|
-// [self beginUploadFileFun];
|
|
|
-// }
|
|
|
-// else{
|
|
|
-// _curUploadFileDataModel = nil;
|
|
|
-// _isSuspendType = NO;
|
|
|
-// }
|
|
|
-// }
|
|
|
+ if(_fileModelDataArr && _fileModelDataArr.count >0)
|
|
|
+ {
|
|
|
+ for (uploadFileDataModel *curUploadFileDataMod in _fileModelDataArr)
|
|
|
+ {
|
|
|
+ if(curUploadFileDataMod.bg_id.integerValue == uploadFileDataMod.bg_id.integerValue){
|
|
|
+ [_fileModelDataArr removeObject:curUploadFileDataMod];
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(!isDelUploadingModel){
|
|
|
+ if(_uploadingModelArr && _uploadingModelArr.count >0)
|
|
|
+ {
|
|
|
+ for (uploadFileDataModel *curUploadFileDataMod in _uploadingModelArr)
|
|
|
+ {
|
|
|
+ if(curUploadFileDataMod.bg_id.integerValue == uploadFileDataMod.bg_id.integerValue){
|
|
|
+ isDelUploadingModel = YES;
|
|
|
+ [[nasUploadManager shareInstance] cancelUploadTaskFun];
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(isDelUploadingModel){
|
|
|
+ if(!_uploadingModelArr || _uploadingModelArr.count ==0){
|
|
|
+ _isUploadIngType = NO;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(_fileModelDataArr.count >=1){
|
|
|
+ [self beginUploadFileFun];
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ _curUploadFileDataModel = nil;
|
|
|
+ _isSuspendType = NO;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
uploadFileDataModel *RefreshUploadFileDataMod = nil;
|
|
|
if(delArr.count >= 1){
|
|
@@ -710,6 +728,55 @@
|
|
|
|
|
|
}
|
|
|
|
|
|
+#pragma mark 处理重复上传文件的问题
|
|
|
+- (void)handleRetryUploadAndDelRecordFun:(uploadFileDataModel *)uploadFileDataMod
|
|
|
+{
|
|
|
+ NSLock *lock = [NSLock new];
|
|
|
+ [lock lock];
|
|
|
+
|
|
|
+ if(!_databaseArr && _databaseArr.count != 3){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ NSMutableArray * doneArr = _databaseArr[1];
|
|
|
+ NSMutableArray * failArr = _databaseArr[2];
|
|
|
+
|
|
|
+ BOOL isNeedDelType = YES;
|
|
|
+
|
|
|
+ for (uploadFileDataModel *doneModel in doneArr) {
|
|
|
+ if([doneModel.localIdentifier isEqualToString:uploadFileDataMod.localIdentifier]){
|
|
|
+ isNeedDelType = NO;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(isNeedDelType){
|
|
|
+ for (uploadFileDataModel *failModel in failArr) {
|
|
|
+ if([failModel.localIdentifier isEqualToString:uploadFileDataMod.localIdentifier]){
|
|
|
+ isNeedDelType = NO;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(isNeedDelType){
|
|
|
+ if(uploadFileDataMod.curUploadFileType == uploadFileTypeVideo){
|
|
|
+ [cachesFileManager removeItemAtPath:uploadFileDataMod.videoFirstImageName type:uploadFileTypeImage error:nil];
|
|
|
+
|
|
|
+ [cachesFileManager removeItemAtPath:uploadFileDataMod.filename type:uploadFileTypeVideo error:nil];
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ [cachesFileManager removeItemAtPath:uploadFileDataMod.filename type:uploadFileTypeImage error:nil];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else{//视频文件是要删除的
|
|
|
+ if(uploadFileDataMod.curUploadFileType == uploadFileTypeVideo){
|
|
|
+ [cachesFileManager removeItemAtPath:uploadFileDataMod.filename type:uploadFileTypeVideo error:nil];
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ [lock unlock];
|
|
|
+}
|
|
|
|
|
|
- (void)checkHadUploadTaskWithComplete:(custom_complete_B)complete
|
|
|
{
|