|
@@ -34,80 +34,66 @@ static downloadThumbnailManager * cur_downloadFileShareInstance = nil;
|
|
|
|
|
|
- (void)handlToDownloadThumbnailWith:(NSArray*)Arr
|
|
|
{
|
|
|
- KWeakSelf
|
|
|
- //dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0), ^{
|
|
|
- [couldPhoneFileModel bg_findAsync:downloadThumbnail_tableName limit:0 orderBy:nil desc:NO complete:^(NSArray * _Nullable array) {
|
|
|
- [weakSelf checkTaskRepeatWithHadTask:array withNewTask:Arr];
|
|
|
- }];
|
|
|
- //});
|
|
|
-}
|
|
|
-
|
|
|
--(void)checkTaskRepeatWithHadTask:(NSArray*)hadTaskArr withNewTask:(NSArray*)newTaskArr
|
|
|
-{
|
|
|
- NSMutableArray *curTaskArr = [NSMutableArray arrayWithArray:hadTaskArr];
|
|
|
-
|
|
|
- //for (couldPhoneFileModel *addModel in newTask)
|
|
|
-
|
|
|
- //倒序遍历
|
|
|
- [newTaskArr enumerateObjectsWithOptions:NSEnumerationReverse usingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
|
|
|
- //NSLog(@"%ld----",idx);
|
|
|
-
|
|
|
- couldPhoneFileModel *addModel = newTaskArr[idx];
|
|
|
- addModel.bg_tableName = downloadThumbnail_tableName;
|
|
|
-
|
|
|
- NSString *newFileName = [addModel getFileNameFun];
|
|
|
- BOOL isNeedAdd = YES;
|
|
|
-
|
|
|
- for (couldPhoneFileModel *hadModel in hadTaskArr) {
|
|
|
- NSString *hadFileName = [addModel getFileNameFun];
|
|
|
-
|
|
|
- if([newFileName isEqualToString:hadFileName]){
|
|
|
- isNeedAdd = NO;
|
|
|
- break;
|
|
|
- }
|
|
|
+ if(Arr && Arr.count >0){
|
|
|
+ if (!_waitDownloadTaskArr) {
|
|
|
+ _waitDownloadTaskArr = [NSMutableArray arrayWithArray:Arr];
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ [_waitDownloadTaskArr addObjectsFromArray:Arr];
|
|
|
}
|
|
|
|
|
|
- [curTaskArr addObject:addModel];
|
|
|
- }];
|
|
|
-
|
|
|
-
|
|
|
- KWeakSelf
|
|
|
- [couldPhoneFileModel bg_saveOrUpdateArrayAsync:curTaskArr complete:^(BOOL isSuccess) {
|
|
|
- [weakSelf planToDownloadThumbnailFun];
|
|
|
- }];
|
|
|
+ [self planToDownloadThumbnailFun];
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
-- (void)planToDownloadThumbnailFun
|
|
|
-{
|
|
|
- KWeakSelf
|
|
|
- [couldPhoneFileModel bg_findAsync:downloadThumbnail_tableName limit:0 orderBy:nil desc:NO complete:^(NSArray * _Nullable array) {
|
|
|
- [weakSelf checkCouldPhoneFileModelTaskStateBy:array];
|
|
|
- }];
|
|
|
-}
|
|
|
|
|
|
-- (void)checkCouldPhoneFileModelTaskStateBy:(NSArray*)array
|
|
|
+- (void)planToDownloadThumbnailFun
|
|
|
{
|
|
|
- NSMutableArray *taskArr = [NSMutableArray new];
|
|
|
-
|
|
|
- for (couldPhoneFileModel*curModel in array) {
|
|
|
- if(curModel.curDownloadStateType != downloadStateDone){
|
|
|
- [taskArr addObject:curModel];
|
|
|
- }
|
|
|
+ if (!_downloadingTaskArr || _downloadingTaskArr.count == 0) {
|
|
|
+ _downloadingTaskArr = [NSMutableArray arrayWithArray:_waitDownloadTaskArr];
|
|
|
+ [_waitDownloadTaskArr removeAllObjects];
|
|
|
}
|
|
|
|
|
|
- _totalTaskArr = taskArr;
|
|
|
+ [self beginDownloadThumbnailFun];
|
|
|
}
|
|
|
|
|
|
- (void)beginDownloadThumbnailFun
|
|
|
{
|
|
|
- if (_totalTaskArr.count >0) {
|
|
|
- _curDownloadFileModel = _totalTaskArr.firstObject;
|
|
|
+ if (_downloadingTaskArr.count > 0) {
|
|
|
+ _curDownloadFileModel = _downloadingTaskArr.firstObject;
|
|
|
}
|
|
|
else{
|
|
|
+ if(_waitDownloadTaskArr && _waitDownloadTaskArr.count>0){
|
|
|
+ _downloadingTaskArr = [NSMutableArray arrayWithArray:_waitDownloadTaskArr];
|
|
|
+ [_waitDownloadTaskArr removeAllObjects];
|
|
|
+ [self beginDownloadThumbnailFun];
|
|
|
+ }
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
+ //检测本地是否已经下载文件了
|
|
|
+ NSString *fileName = [self.curDownloadFileModel getFileNameFun];
|
|
|
+ NSString*pathStr = [cachesFileManager getFilePathWithName:fileName type:DownLoadThumbnail];
|
|
|
+
|
|
|
+ NSFileManager *manager0 = [NSFileManager defaultManager];
|
|
|
+ if([manager0 fileExistsAtPath:pathStr]) {
|
|
|
+ //已经下载过了
|
|
|
+ [_downloadingTaskArr removeObject:_curDownloadFileModel];
|
|
|
+ _curDownloadFileModel = nil;
|
|
|
+ [self beginDownloadThumbnailFun];
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
[[NSNotificationCenter defaultCenter] postNotificationName:downloadThumbnailBeginNotification object:_curDownloadFileModel];
|
|
|
}
|
|
|
|
|
|
+- (void)DownloadFileDoneOneFileFun
|
|
|
+{
|
|
|
+ [_downloadingTaskArr removeObject:_curDownloadFileModel];
|
|
|
+ _curDownloadFileModel = nil;
|
|
|
+ [self beginDownloadThumbnailFun];
|
|
|
+
|
|
|
+ [[NSNotificationCenter defaultCenter] postNotificationName:downloadThumbnailDoneOneNotification object:nil];
|
|
|
+}
|
|
|
@end
|