|
|
@@ -108,6 +108,22 @@ static uploadFileManager * cur_uploadFileShareInstance = nil;
|
|
|
curModel.asset = model.asset;
|
|
|
curModel.localIdentifier = model.asset.localIdentifier;
|
|
|
|
|
|
+ BOOL isRepeatingTasksType = NO;
|
|
|
+ //查询上传任务是否存在
|
|
|
+ if(_databaseArr && _databaseArr.count == 3 ){
|
|
|
+ NSMutableArray *uploadingArr = _databaseArr[0];
|
|
|
+ for (uploadFileDataModel *preModel in uploadingArr) {
|
|
|
+ if([preModel.localIdentifier isEqualToString:curModel.localIdentifier]){
|
|
|
+ isRepeatingTasksType = YES;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(isRepeatingTasksType){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
curModel.imageData = model.imageData;
|
|
|
curModel.videoData = model.videoData;
|
|
|
curModel.filename = [model.asset valueForKey:@"filename"];
|
|
|
@@ -403,6 +419,7 @@ static uploadFileManager * cur_uploadFileShareInstance = nil;
|
|
|
where = [NSString stringWithFormat:@"where %@=%@ ",bg_sqlKey(@"bg_id"),bg_sqlValue(model.bg_id)];
|
|
|
//HLog(@"ffff:%@",_curUploadFileDataModel.bg_id);
|
|
|
|
|
|
+ KWeakSelf
|
|
|
[uploadFileDataModel bg_findAsync:upLoadFile_image_tableName where:where complete:^(NSArray * _Nullable array) {
|
|
|
for (uploadFileDataModel * curModel in array) {
|
|
|
curModel.curUploadStateType = curUploadStateType;
|
|
|
@@ -415,9 +432,12 @@ static uploadFileManager * cur_uploadFileShareInstance = nil;
|
|
|
[cachesFileManager removeItemAtPath:curModel.filename type:uploadFileTypeVideo error:nil];
|
|
|
}
|
|
|
|
|
|
+ [weakSelf handleDatabaseArrByDelete:curModel];
|
|
|
+ [weakSelf handleDatabaseArrByInDone:curModel];
|
|
|
}
|
|
|
else if(curUploadStateType == uploadStateFail){
|
|
|
-
|
|
|
+ [weakSelf handleDatabaseArrByDelete:curModel];
|
|
|
+ [weakSelf handleDatabaseArrByInFail:curModel];
|
|
|
}
|
|
|
|
|
|
[curModel bg_saveOrUpdateAsync:^(BOOL isSuccess) {
|
|
|
@@ -432,6 +452,37 @@ static uploadFileManager * cur_uploadFileShareInstance = nil;
|
|
|
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+- (void)handleDatabaseArrByDelete:(uploadFileDataModel*)delModel
|
|
|
+{
|
|
|
+ if(_databaseArr && _databaseArr.count == 3 ){
|
|
|
+ NSMutableArray *uploadingArr = _databaseArr[0];
|
|
|
+
|
|
|
+ for (uploadFileDataModel *baseUploadFileDataMod in uploadingArr) {
|
|
|
+ if(delModel.bg_id.integerValue == baseUploadFileDataMod.bg_id.integerValue){
|
|
|
+ [uploadingArr removeObject:baseUploadFileDataMod];
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+- (void)handleDatabaseArrByInDone:(uploadFileDataModel*)uploadmodel
|
|
|
+{
|
|
|
+ if(_databaseArr && _databaseArr.count == 3 ){
|
|
|
+ NSMutableArray *uploadDoneArr = _databaseArr[1];
|
|
|
+ [uploadDoneArr addObject:uploadmodel];
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+- (void)handleDatabaseArrByInFail:(uploadFileDataModel*)uploadmodel
|
|
|
+{
|
|
|
+ if(_databaseArr && _databaseArr.count == 3 ){
|
|
|
+ NSMutableArray *uploadFailArr = _databaseArr[2];
|
|
|
+ [uploadFailArr addObject:uploadmodel];
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
//暂停上传完成
|
|
|
- (void)suspendUploadFileFun:(BOOL)isSuspendAll
|
|
|
{
|
|
|
@@ -551,15 +602,51 @@ static uploadFileManager * cur_uploadFileShareInstance = nil;
|
|
|
|
|
|
//删除本地图片
|
|
|
if(isSuc && isDelCache){
|
|
|
- if(uploadFileDataMod.curUploadFileType == uploadFileTypeVideo){
|
|
|
- [cachesFileManager removeItemAtPath:uploadFileDataMod.videoFirstImageName type:uploadFileTypeImage error:nil];
|
|
|
+ //判断是否可以删除本地缓存
|
|
|
+ if(_databaseArr && _databaseArr.count == 3 ){
|
|
|
+ NSMutableArray *uploadingArr = _databaseArr[0];
|
|
|
+ NSMutableArray *uploadDoneArr = _databaseArr[1];
|
|
|
+ NSMutableArray *uploadFailArr = _databaseArr[2];
|
|
|
|
|
|
- [cachesFileManager removeItemAtPath:uploadFileDataMod.filename type:uploadFileTypeVideo error:nil];
|
|
|
- }
|
|
|
- else{
|
|
|
- [cachesFileManager removeItemAtPath:uploadFileDataMod.filename type:uploadFileTypeImage error:nil];
|
|
|
+ [self handleDatabaseArrByDelete:uploadFileDataMod];
|
|
|
+
|
|
|
+ BOOL isNeedDel = YES;
|
|
|
+ for (uploadFileDataModel *baseUploadFileDataMod in uploadingArr) {
|
|
|
+ if([_curUploadFileDataModel.filename isEqualToString:baseUploadFileDataMod.filename] ){
|
|
|
+ isNeedDel = NO;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(!isNeedDel){
|
|
|
+ for (uploadFileDataModel *baseUploadFileDataMod in uploadDoneArr) {
|
|
|
+ if([_curUploadFileDataModel.filename isEqualToString:baseUploadFileDataMod.filename] ){
|
|
|
+ isNeedDel = NO;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(!isNeedDel){
|
|
|
+ for (uploadFileDataModel *baseUploadFileDataMod in uploadFailArr) {
|
|
|
+ if([_curUploadFileDataModel.filename isEqualToString:baseUploadFileDataMod.filename] ){
|
|
|
+ isNeedDel = NO;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(isNeedDel){
|
|
|
+ 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];
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
|
|
|
if(isSuc && !isDelCache){//上传报云机已经存在文件了 查询本地是否有任务记录
|