|
@@ -49,8 +49,7 @@
|
|
|
|
|
|
//KWeakSelf
|
|
|
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0), ^{
|
|
|
-// NSLock *lock = [NSLock new];
|
|
|
-// [lock lock];
|
|
|
+
|
|
|
HLog(@"begin bg_findAsync");
|
|
|
[uploadFileDataModel bg_findAsync:nasUpLoadFile_tableName limit:0 orderBy:nil desc:YES complete:^(NSArray * _Nullable array) {
|
|
|
HLog(@"end bg_findAsync");
|
|
@@ -82,20 +81,15 @@
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- NSLock *lock = [NSLock new];
|
|
|
- [lock lock];
|
|
|
-
|
|
|
NSMutableArray *newArr = [NSMutableArray new];
|
|
|
[newArr addObject:otherArr];
|
|
|
[newArr addObject:doneArr];
|
|
|
[newArr addObject:failArr];
|
|
|
self->_databaseArr = newArr;
|
|
|
|
|
|
- [lock unlock];
|
|
|
-
|
|
|
complete(self->_databaseArr);
|
|
|
}];
|
|
|
-// [lock unlock];
|
|
|
+
|
|
|
});
|
|
|
|
|
|
}
|
|
@@ -126,7 +120,7 @@
|
|
|
|
|
|
NSMutableArray *newUploadTaskArr = [NSMutableArray new];
|
|
|
|
|
|
- NSLock *lock = [NSLock new];
|
|
|
+
|
|
|
|
|
|
for (TZAssetModel * model in indexPathsForSelectedItems) {
|
|
|
uploadFileDataModel * curModel = [uploadFileDataModel new];
|
|
@@ -134,7 +128,7 @@
|
|
|
curModel.localIdentifier = model.asset.localIdentifier;
|
|
|
|
|
|
BOOL isRepeatingTasksType = NO;
|
|
|
- [lock lock];
|
|
|
+
|
|
|
//查询上传任务是否存在
|
|
|
if(_databaseArr && _databaseArr.count == 3 ){
|
|
|
NSMutableArray *uploadingArr = [[NSMutableArray alloc] initWithArray:_databaseArr[0]];
|
|
@@ -145,7 +139,7 @@
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- [lock unlock];
|
|
|
+
|
|
|
|
|
|
if(isRepeatingTasksType){
|
|
|
continue;
|
|
@@ -296,6 +290,7 @@
|
|
|
if(dataModel.curUploadStateType == uploadStateDone){
|
|
|
[self handleDatabaseArrDeleteObjectInUploading:dataModel];
|
|
|
[self handleDatabaseArrAddObjectInDone:dataModel];
|
|
|
+
|
|
|
}
|
|
|
else if(dataModel.curUploadStateType == uploadStateFail){
|
|
|
|
|
@@ -313,12 +308,25 @@
|
|
|
[self handleDatabaseArrDeleteObjectInUploading:dataModel];
|
|
|
[self handleDatabaseArrAddObjectInFail:dataModel];
|
|
|
}
|
|
|
+ else{
|
|
|
+ [cachesFileManager writeLogsWithMsg:@"nasUploadFileChangeingOneFileFunBy else"];
|
|
|
+ }
|
|
|
|
|
|
dataModel.bg_tableName = nasUpLoadFile_tableName;
|
|
|
[dataModel bg_saveOrUpdateAsync:^(BOOL isSuccess) {
|
|
|
HLog(@"%@ 写入 %@", dataModel.filename, isSuccess ? @"成功":@"失败");
|
|
|
}];
|
|
|
|
|
|
+ if(_databaseArr.count == 3)
|
|
|
+ {
|
|
|
+ NSMutableArray *ingArr = _databaseArr[0];
|
|
|
+ NSMutableArray* doneArr = _databaseArr[1];
|
|
|
+ NSMutableArray* failArr = _databaseArr[2];
|
|
|
+
|
|
|
+ NSString *logstr = [[NSString alloc] initWithFormat:@"nasUploadFileChangeingOneFileFunBy ing:%ld,done:%ld,fail:%ld---total:%ld",ingArr.count,doneArr.count,failArr.count,ingArr.count + doneArr.count +failArr.count];
|
|
|
+ [cachesFileManager writeLogsWithMsg:logstr];
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
if(!_isSuspendType || dataModel.curUploadStateType != uploadStateSuspend){
|
|
|
HLog(@"nasUploadFileChangeingOneFileFunBy uploadFileRefreshNotification")
|
|
@@ -331,59 +339,68 @@
|
|
|
- (void)handleDatabaseArrDeleteObjectInUploading:(uploadFileDataModel*)model
|
|
|
{
|
|
|
HLog(@"删除上传中的任务")
|
|
|
- NSLock *lock = [NSLock new];
|
|
|
- [lock lock];
|
|
|
- if(_databaseArr && _databaseArr.count == 3 ){
|
|
|
-
|
|
|
- NSMutableArray *ingArr = _databaseArr[0];
|
|
|
- NSInteger count = ingArr.count;
|
|
|
- [ingArr removeObject:model];
|
|
|
+ @synchronized (self) {
|
|
|
|
|
|
- NSInteger atferDelCount = ingArr.count;
|
|
|
-
|
|
|
- if(count == atferDelCount){
|
|
|
- HLog(@"删除上传中的任务 异常 需要遍历 开始")
|
|
|
- for (couldPhoneFileModel*preModel in ingArr) {
|
|
|
- if(preModel.bg_id.integerValue == model.bg_id.integerValue){
|
|
|
- [ingArr removeObject:preModel];
|
|
|
- break;
|
|
|
+ if(_databaseArr && _databaseArr.count == 3 ){
|
|
|
+
|
|
|
+ NSMutableArray *ingArr = _databaseArr[0];
|
|
|
+ NSInteger count = ingArr.count;
|
|
|
+ [ingArr removeObject:model];
|
|
|
+
|
|
|
+ NSInteger atferDelCount = ingArr.count;
|
|
|
+
|
|
|
+ if(count == atferDelCount){
|
|
|
+ NSString* logStr = [[NSString alloc] initWithFormat:@"DeleteObjectInUploading error begin %ld--model:%@--%@",ingArr.count,model,model.filename];
|
|
|
+ HLog(@"%@",logStr)
|
|
|
+ [cachesFileManager writeLogsWithMsg:logStr];
|
|
|
+
|
|
|
+ for (uploadFileDataModel*preModel in ingArr) {
|
|
|
+ if(preModel.bg_id.integerValue == model.bg_id.integerValue){
|
|
|
+ if ([preModel.filename isEqualToString:model.filename]) {
|
|
|
+ [ingArr removeObject:preModel];
|
|
|
+ }else{
|
|
|
+ NSString* logStr22 = [[NSString alloc] initWithFormat:@"filename error %@",preModel.filename];
|
|
|
+ [cachesFileManager writeLogsWithMsg:logStr22];
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
+ NSString* logStr2 = [[NSString alloc] initWithFormat:@"DeleteObjectInUploading error end %ld",ingArr.count];
|
|
|
+ HLog(@"%@",logStr2)
|
|
|
+ [cachesFileManager writeLogsWithMsg:logStr2];
|
|
|
+
|
|
|
}
|
|
|
- HLog(@"删除上传中的任务 异常 需要遍历 结束")
|
|
|
}
|
|
|
}
|
|
|
- [lock unlock];
|
|
|
}
|
|
|
|
|
|
#pragma mark 添加任务到上传完成
|
|
|
- (void)handleDatabaseArrAddObjectInDone:(uploadFileDataModel*)model
|
|
|
{
|
|
|
HLog(@"添加任务到上传完成")
|
|
|
- NSLock *lock = [NSLock new];
|
|
|
- [lock lock];
|
|
|
- if(_databaseArr && _databaseArr.count == 3 ){
|
|
|
- NSMutableArray *doneArr = _databaseArr[1];
|
|
|
- if(model){
|
|
|
- [doneArr insertObject:model atIndex:0];
|
|
|
+ @synchronized (self) {
|
|
|
+ if(_databaseArr && _databaseArr.count == 3 ){
|
|
|
+ NSMutableArray *doneArr = _databaseArr[1];
|
|
|
+ if(model){
|
|
|
+ [doneArr insertObject:model atIndex:0];
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- [lock unlock];
|
|
|
}
|
|
|
|
|
|
#pragma mark 添加任务到上传失败
|
|
|
- (void)handleDatabaseArrAddObjectInFail:(uploadFileDataModel*)model
|
|
|
{
|
|
|
HLog(@"添加任务到上传失败")
|
|
|
- NSLock *lock = [NSLock new];
|
|
|
- [lock lock];
|
|
|
- if(_databaseArr && _databaseArr.count == 3 ){
|
|
|
- NSMutableArray *failArr = _databaseArr[2];
|
|
|
- if(model){
|
|
|
- [failArr insertObject:model atIndex:0];
|
|
|
- }
|
|
|
+ @synchronized(self){
|
|
|
+ if(_databaseArr && _databaseArr.count == 3 ){
|
|
|
+ NSMutableArray *failArr = _databaseArr[2];
|
|
|
+ if(model){
|
|
|
+ [failArr insertObject:model atIndex:0];
|
|
|
+ }
|
|
|
|
|
|
+ }
|
|
|
}
|
|
|
- [lock unlock];
|
|
|
}
|
|
|
|
|
|
#pragma mark 上传完成所有任务
|
|
@@ -513,8 +530,8 @@
|
|
|
#pragma mark 处理重复上传文件的问题
|
|
|
- (void)handleRetryUploadAndDelRecordFun:(uploadFileDataModel *)uploadFileDataMod
|
|
|
{
|
|
|
- NSLock *lock = [NSLock new];
|
|
|
- [lock lock];
|
|
|
+ @synchronized (self) {
|
|
|
+
|
|
|
|
|
|
if (!_databaseArr || _databaseArr.count != 3) {
|
|
|
return;
|
|
@@ -557,7 +574,7 @@
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- [lock unlock];
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- (void)checkHadUploadTaskWithComplete:(custom_complete_B)complete
|
|
@@ -588,7 +605,7 @@
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+
|
|
|
//1.修改状态从失败改为上传中
|
|
|
for (uploadFileDataModel * model in Arr) {
|
|
|
model.curUploadStateType = uploadStateUploading;
|
|
@@ -676,15 +693,11 @@
|
|
|
- (void)saveUploadingTaskByNetWorkErrorFun
|
|
|
{
|
|
|
HLog(@"hxd saveUploadingTaskByNetWorkErrorFun")
|
|
|
- _netWorkFailSaveArr = [NSMutableArray arrayWithArray:self.uploadingArr];
|
|
|
- //[self suspendUploadFileFun:YES withModel:nil];
|
|
|
-
|
|
|
- [[nasMixUploadManager shareManager] cancelUploadAllTaskFun];
|
|
|
-
|
|
|
- if(_netWorkFailSaveArr.count > 0){
|
|
|
+
|
|
|
+ if(self.uploadingArr.count > 0){
|
|
|
+ [[nasMixUploadManager shareManager] cancelUploadAllTaskFun];
|
|
|
_needToReUploadTaskType = YES;
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
|
|
|
//重新上传网络失败的任务
|
|
@@ -692,17 +705,26 @@
|
|
|
{
|
|
|
[nasUploadFileManager shareInstance].needToReUploadTaskType = NO;
|
|
|
HLog(@"reUploadFileFunByNetWork")
|
|
|
- if(_netWorkFailSaveArr && _netWorkFailSaveArr.count >0){
|
|
|
- HLog(@"reUploadFileFunByNetWork _netWorkFailSaveArr.count >0")
|
|
|
+ [cachesFileManager writeLogsWithMsg:@"reUploadFileFunByNetWork"];
|
|
|
+ if(self.uploadingArr.count >0 && _databaseArr.count == 3){
|
|
|
+
|
|
|
+ NSMutableArray* doneArr = _databaseArr[1];
|
|
|
+ NSMutableArray* failArr = _databaseArr[2];
|
|
|
+
|
|
|
+ NSString *logstr = [[NSString alloc] initWithFormat:@"ing:%ld,done:%ld,fail:%ld",self.uploadingArr.count,doneArr.count,failArr.count];
|
|
|
+
|
|
|
+ [cachesFileManager writeLogsWithMsg:logstr];
|
|
|
+
|
|
|
//1.修改状态从失败改为上传中
|
|
|
- for (uploadFileDataModel * model in _netWorkFailSaveArr) {
|
|
|
- for (uploadFileDataModel * uploadingModel in self.uploadingArr){
|
|
|
- if (model.bg_id.integerValue == uploadingModel.bg_id.integerValue) {
|
|
|
- uploadingModel.curUploadStateType = uploadStateUploading;
|
|
|
- continue;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+// for (uploadFileDataModel * model in _netWorkFailSaveArr) {
|
|
|
+// model.curUploadStateType = uploadStateUploading;
|
|
|
+//// for (uploadFileDataModel * uploadingModel in self.uploadingArr){
|
|
|
+//// if (model.bg_id.integerValue == uploadingModel.bg_id.integerValue) {
|
|
|
+//// uploadingModel.curUploadStateType = uploadStateUploading;
|
|
|
+//// continue;
|
|
|
+//// }
|
|
|
+//// }
|
|
|
+// }
|
|
|
|
|
|
//2、保存到数控库
|
|
|
// [uploadFileDataModel bg_saveOrUpdateArrayAsync:_netWorkFailSaveArr complete:^(BOOL isSuccess) {
|
|
@@ -720,9 +742,7 @@
|
|
|
}
|
|
|
|
|
|
//4.重新开始上传
|
|
|
- [[nasMixUploadManager shareManager] addUploadWithModels:_netWorkFailSaveArr];
|
|
|
- [_netWorkFailSaveArr removeAllObjects];
|
|
|
-
|
|
|
+ [[nasMixUploadManager shareManager] addUploadWithModels:self.uploadingArr];
|
|
|
}
|
|
|
}
|
|
|
@end
|