Browse Source

IOS端上传图片已上传成功后,个别图片图标显示空白

huangxiaodong 2 years ago
parent
commit
d33a635952

+ 3 - 3
创维盒子/双子星云手机/Class/Set/uploadFile/photoView/uploadFileRecordBodyView.m

@@ -431,7 +431,7 @@
 
 - (void)ClearAllRecordInDoneFun
 {
-    [[uploadFileManager shareInstance] deleteUploadFileRecordBy:_allDataArr[1] complete:^(BOOL isSuccess) {
+    [[uploadFileManager shareInstance] deleteUploadFileRecordBy:_allDataArr[1] withDelCache:YES complete:^(BOOL isSuccess) {
         HLog(@"isSuccess:%d",isSuccess);
         
         if(isSuccess){
@@ -466,7 +466,7 @@
 
 - (void)ClearAllRecordInFailFun
 {
-    [[uploadFileManager shareInstance] deleteUploadFileRecordBy:_allDataArr[2] complete:^(BOOL isSuccess) {
+    [[uploadFileManager shareInstance] deleteUploadFileRecordBy:_allDataArr[2] withDelCache:YES complete:^(BOOL isSuccess) {
         HLog(@"isSuccess:%d",isSuccess);
         
         if(isSuccess){
@@ -520,7 +520,7 @@
         return;
     }
     
-    [[uploadFileManager shareInstance] deleteUploadFileRecordBy:_selectModelArr complete:^(BOOL isSuccess) {
+    [[uploadFileManager shareInstance] deleteUploadFileRecordBy:_selectModelArr withDelCache:YES complete:^(BOOL isSuccess) {
         HLog(@"isSuccess:%d",isSuccess);
         
         if(isSuccess){

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

@@ -253,7 +253,7 @@
     }
     
     KWeakSelf
-    [[uploadFileManager shareInstance] deleteUploadFileRecordBy:_selectModelArr complete:^(BOOL isSuccess) {
+    [[uploadFileManager shareInstance] deleteUploadFileRecordBy:_selectModelArr withDelCache:YES complete:^(BOOL isSuccess) {
         HLog(@"isSuccess:%d",isSuccess);
         
         if(isSuccess){

+ 1 - 1
创维盒子/双子星云手机/Class/Set/uploadFile/uploadFileManager/uploadFileManager.h

@@ -52,7 +52,7 @@ NS_ASSUME_NONNULL_BEGIN
 - (void)changeUploadFileState:(uploadStateType)curUploadStateType withDidUploadBytes:(long)didUpLoadBytes withModel:(uploadFileDataModel*)model complete:(custom_complete_B)complete;
 
 //删除本地数据库记录
-- (void)deleteUploadFileRecordBy:(NSMutableArray *)delArr complete:(custom_complete_B)complete;
+- (void)deleteUploadFileRecordBy:(NSMutableArray *)delArr withDelCache:(BOOL)isDelCache complete:(custom_complete_B)complete;
 @end
 
 NS_ASSUME_NONNULL_END

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

@@ -530,7 +530,7 @@ static uploadFileManager * cur_uploadFileShareInstance = nil;
 }
 
 //删除本地数据库记录
-- (void)deleteUploadFileRecordBy:(NSMutableArray *)delArr complete:(custom_complete_B)complete
+- (void)deleteUploadFileRecordBy:(NSMutableArray *)delArr withDelCache:(BOOL)isDelCache complete:(custom_complete_B)complete
 {
     //逻辑待优化
     BOOL isSuc = false;
@@ -543,7 +543,7 @@ static uploadFileManager * cur_uploadFileShareInstance = nil;
         isSuc = [uploadFileDataModel bg_delete:upLoadFile_image_tableName where:where];
         
         //删除本地图片
-        if(isSuc){
+        if(isSuc && isDelCache){
             if(uploadFileDataMod.curUploadFileType == uploadFileTypeVideo){
                 [cachesFileManager removeItemAtPath:uploadFileDataMod.videoFirstImageName type:uploadFileTypeImage error:nil];
                 
@@ -554,6 +554,10 @@ static uploadFileManager * cur_uploadFileShareInstance = nil;
             }
             
         }
+        
+        if(isSuc && !isDelCache){//上传报云机已经存在文件了 查询本地是否有任务记录
+            [self handleRetryUploadAndDelRecordFun:uploadFileDataMod];
+        }
     }
     
     complete(isSuc);
@@ -569,4 +573,50 @@ static uploadFileManager * cur_uploadFileShareInstance = nil;
     
 }
 
+#pragma mark 处理重复上传文件的问题
+- (void)handleRetryUploadAndDelRecordFun:(uploadFileDataModel *)uploadFileDataMod
+{
+    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];
+        }
+    }
+}
+
+
 @end

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

@@ -773,7 +773,7 @@
 
 - (void)ClearAllRecordInDoneFun
 {
-    [[uploadFileManager shareInstance] deleteUploadFileRecordBy:_midTableView.curDataArr complete:^(BOOL isSuccess) {
+    [[uploadFileManager shareInstance] deleteUploadFileRecordBy:_midTableView.curDataArr withDelCache:YES complete:^(BOOL isSuccess) {
         HLog(@"isSuccess:%d",isSuccess);
         
         if(isSuccess){
@@ -808,7 +808,7 @@
 
 - (void)ClearAllRecordInFailFun
 {
-    [[uploadFileManager shareInstance] deleteUploadFileRecordBy:_rightTableView.curDataArr complete:^(BOOL isSuccess) {
+    [[uploadFileManager shareInstance] deleteUploadFileRecordBy:_rightTableView.curDataArr withDelCache:YES complete:^(BOOL isSuccess) {
         HLog(@"isSuccess:%d",isSuccess);
         
         if(isSuccess){

+ 1 - 1
创维盒子/双子星云手机/CloudPlayer/PlayerViewController+otherDelegate.mm

@@ -220,7 +220,7 @@
                                 
                                 NSMutableArray *delArr = [NSMutableArray new];
                                 [delArr addObject:self.curUploadFileDataMod];
-                                [[uploadFileManager shareInstance] deleteUploadFileRecordBy:delArr complete:^(BOOL isSuccess) {
+                                [[uploadFileManager shareInstance] deleteUploadFileRecordBy:delArr withDelCache:NO complete:^(BOOL isSuccess) {
                                     if (isSuccess) {
                                         [[NSNotificationCenter defaultCenter] postNotificationName:uploadFileDeteleNotification object:self.curUploadFileDataMod];
                                     }