2 次代碼提交 300fe6fb26 ... 6915c6eece

作者 SHA1 備註 提交日期
  huangxiaodong 6915c6eece 1.同步批量下载偶现失败问题 2 周之前
  huangxiaodong ef5d9c5aa9 1.去掉后台回到前面检查盒子状态需求 2 周之前
共有 2 個文件被更改,包括 112 次插入117 次删除
  1. 82 82
      创维盒子/code/NAS/NASViewController.m
  2. 30 35
      创维盒子/code/NAS/nasDownloadManager/nasDownloadFileManager.m

+ 82 - 82
创维盒子/code/NAS/NASViewController.m

@@ -1003,92 +1003,92 @@
     //[self beginShowAlertFun];
     //后台回来点击首页无效问题
     self.tableView.userInteractionEnabled = YES;
-    [self checkBoxHeartbeatFun];
+//    [self checkBoxHeartbeatFun];
 }
 
-#pragma mark 检测盒子的心跳情况
-- (void)checkBoxHeartbeatFun
-{
-    //2、点击系统升级弹框确定按钮后30分钟内不弹;
-    NSNumber *preSecondNum =  [HWDataManager getNumberWithKey:stringKeyAddSn(@"disenable_type1_BoxHeartbeat")];
-    if(preSecondNum){
-        long seconds =  [iTools getNowTimeStamp];
-        if(seconds - preSecondNum.longValue <= 60*30){
-            return;
-        }
-    }
-    
-    //3、重启、恢复出厂设备、首次设置密码 3个情况下8分钟之内不弹
-    NSNumber *preSecondNum2 =  [HWDataManager getNumberWithKey:stringKeyAddSn(@"disenable_type2_BoxHeartbeat")];
-    if(preSecondNum2){
-        long seconds =  [iTools getNowTimeStamp];
-        if(seconds - preSecondNum2.longValue <= 60*8){
-            return;
-        }
-    }
-    
-    if(ksharedAppDelegate.didShowBoxHeartbeatAlertType
-       ||[webRtcManager shareManager].isResetingType
-       ||[webRtcManager shareManager].isRebootIngType
-       || [ksharedAppDelegate didShowImageRenewViewFun]){
-        return;
-    }
-    
-    //1.隐私模式密码界面 3秒检测一次是否输入完成密码了
-    if(ksharedAppDelegate.isDidShowPwdType){
-        KWeakSelf
-        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
-            [weakSelf checkBoxHeartbeatFun];
-        });
-        
-        return;
-    }
-    
-    //test code
-//    [[BoxHeartbeatAlertTool shareInstance] showBoxHeartbeatAlertFun:2 didClickBut:^(NSInteger tag) {
-//                
+//#pragma mark 检测盒子的心跳情况
+//- (void)checkBoxHeartbeatFun
+//{
+//    //2、点击系统升级弹框确定按钮后30分钟内不弹;
+//    NSNumber *preSecondNum =  [HWDataManager getNumberWithKey:stringKeyAddSn(@"disenable_type1_BoxHeartbeat")];
+//    if(preSecondNum){
+//        long seconds =  [iTools getNowTimeStamp];
+//        if(seconds - preSecondNum.longValue <= 60*30){
+//            return;
+//        }
+//    }
+//    
+//    //3、重启、恢复出厂设备、首次设置密码 3个情况下8分钟之内不弹
+//    NSNumber *preSecondNum2 =  [HWDataManager getNumberWithKey:stringKeyAddSn(@"disenable_type2_BoxHeartbeat")];
+//    if(preSecondNum2){
+//        long seconds =  [iTools getNowTimeStamp];
+//        if(seconds - preSecondNum2.longValue <= 60*8){
+//            return;
+//        }
+//    }
+//    
+//    if(ksharedAppDelegate.didShowBoxHeartbeatAlertType
+//       ||[webRtcManager shareManager].isResetingType
+//       ||[webRtcManager shareManager].isRebootIngType
+//       || [ksharedAppDelegate didShowImageRenewViewFun]){
+//        return;
+//    }
+//    
+//    //1.隐私模式密码界面 3秒检测一次是否输入完成密码了
+//    if(ksharedAppDelegate.isDidShowPwdType){
+//        KWeakSelf
+//        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+//            [weakSelf checkBoxHeartbeatFun];
+//        });
+//        
+//        return;
+//    }
+//    
+//    //test code
+////    [[BoxHeartbeatAlertTool shareInstance] showBoxHeartbeatAlertFun:2 didClickBut:^(NSInteger tag) {
+////                
+////    }];
+//    
+//    if(ksharedAppDelegate.isWebSockLinkOKAginType && ksharedAppDelegate.cloudPhoneExtraFileListMod){
+//        return;
+//    }
+//    
+//    NSMutableDictionary *paraDict = [NSMutableDictionary new];
+//   
+//    KWeakSelf
+//    [[netWorkManager shareInstance] CommonGetWithCallBackCode:queryHeartbeat Parameters:paraDict success:^(id  _Nonnull responseObject){
+//        queryHeartbeatModel *heartbeatMod = [[queryHeartbeatModel alloc] initWithDictionary:responseObject error:nil];
+//        if(heartbeatMod && heartbeatMod.data){
+//            [weakSelf checkBoxHeartbeatToShowPopViewFunBy:heartbeatMod];
+//        }
+//        
+//    } failure:^(NSError * _Nonnull error) {
 //    }];
-    
-    if(ksharedAppDelegate.isWebSockLinkOKAginType && ksharedAppDelegate.cloudPhoneExtraFileListMod){
-        return;
-    }
-    
-    NSMutableDictionary *paraDict = [NSMutableDictionary new];
-   
-    KWeakSelf
-    [[netWorkManager shareInstance] CommonGetWithCallBackCode:queryHeartbeat Parameters:paraDict success:^(id  _Nonnull responseObject){
-        queryHeartbeatModel *heartbeatMod = [[queryHeartbeatModel alloc] initWithDictionary:responseObject error:nil];
-        if(heartbeatMod && heartbeatMod.data){
-            [weakSelf checkBoxHeartbeatToShowPopViewFunBy:heartbeatMod];
-        }
-        
-    } failure:^(NSError * _Nonnull error) {
-    }];
-
-}
+//
+//}
 
-#pragma mark 根据盒子的心跳情况 显示异常谈了
-- (void)checkBoxHeartbeatToShowPopViewFunBy:(queryHeartbeatModel*)heartbeatMod
-{
-    if(!heartbeatMod || !heartbeatMod.data){
-        return;
-    }
-    
-    if (//!heartbeatMod.data.frpStatus&&
-        !heartbeatMod.data.hostAgentStatus
-        &&!heartbeatMod.data.containerAgentStatus) {//全部异常
-        [[BoxHeartbeatAlertTool shareInstance] showBoxHeartbeatAlertFun:1 didClickBut:^(NSInteger tag) {
-                    
-        }];
-    }
-    else if (heartbeatMod.data.hostAgentStatus
-            //&& !heartbeatMod.data.frpStatus
-            && !heartbeatMod.data.containerAgentStatus) {//frp异常
-        [[BoxHeartbeatAlertTool shareInstance] showBoxHeartbeatAlertFun:2 didClickBut:^(NSInteger tag) {
-                    
-        }];
-    }
-}
+//#pragma mark 根据盒子的心跳情况 显示异常谈了
+//- (void)checkBoxHeartbeatToShowPopViewFunBy:(queryHeartbeatModel*)heartbeatMod
+//{
+//    if(!heartbeatMod || !heartbeatMod.data){
+//        return;
+//    }
+//    
+//    if (//!heartbeatMod.data.frpStatus&&
+//        !heartbeatMod.data.hostAgentStatus
+//        &&!heartbeatMod.data.containerAgentStatus) {//全部异常
+//        [[BoxHeartbeatAlertTool shareInstance] showBoxHeartbeatAlertFun:1 didClickBut:^(NSInteger tag) {
+//                    
+//        }];
+//    }
+//    else if (heartbeatMod.data.hostAgentStatus
+//            //&& !heartbeatMod.data.frpStatus
+//            && !heartbeatMod.data.containerAgentStatus) {//frp异常
+//        [[BoxHeartbeatAlertTool shareInstance] showBoxHeartbeatAlertFun:2 didClickBut:^(NSInteger tag) {
+//                    
+//        }];
+//    }
+//}
 
 #pragma mark 输入密码完成
 - (void)didInpuPwdOkFun

+ 30 - 35
创维盒子/code/NAS/nasDownloadManager/nasDownloadFileManager.m

@@ -1,13 +1,12 @@
 //
 //  nasDownloadFileManager.m
-//  双子星云手机
 //
-//  Created by xd h on 2024/8/5.
+//
+//  Created by David on 2024/8/5.
 //
 
 #import "nasDownloadFileManager.h"
 @interface nasDownloadFileManager ()
-@property (nonatomic, strong)NSLock *lock;
 
 @end
 
@@ -33,7 +32,6 @@ static nasDownloadFileManager * cur_nasDownloadFileManager = nil;
         [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(downloadTaskFinishedNoti:) name:nasDownloadTaskExeEnd object:nil];
         [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(downloadTaskFinishedNoti:) name:nasDownloadTaskExeError object:nil];
         
-        _lock = [[NSLock alloc] init];
         [self initDownloadManagerFun];
     }
     
@@ -154,8 +152,7 @@ static nasDownloadFileManager * cur_nasDownloadFileManager = nil;
     
     //KWeakSelf
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0), ^{
-//    NSLock *lock = [NSLock new];
-//    [lock lock];
+
         [couldPhoneFileModel bg_findAsync:nas_box_download_tableName limit:0 orderBy:nil desc:YES complete:^(NSArray * _Nullable array) {
             NSMutableArray *failArr = [NSMutableArray new];
             NSMutableArray *doneArr = [NSMutableArray new];
@@ -174,24 +171,22 @@ static nasDownloadFileManager * cur_nasDownloadFileManager = nil;
                     }
                 }
             }
-            NSLock *lock = [NSLock new];
-            [lock lock];
-            
-            NSMutableArray *newArr = [NSMutableArray new];
-            [newArr addObject:otherArr];
-            [newArr addObject:doneArr];
-            [newArr addObject:failArr];
-            self->_databaseArr = newArr;
             
-            [lock unlock];
-            
-            if(isReGet){
-                [self checkDownloadTaskFun];
+            @synchronized (self) {
+                
+                NSMutableArray *newArr = [NSMutableArray new];
+                [newArr addObject:otherArr];
+                [newArr addObject:doneArr];
+                [newArr addObject:failArr];
+                self->_databaseArr = newArr;
+                
+                if(isReGet){
+                    [self checkDownloadTaskFun];
+                }
+                
+                complete(self->_databaseArr);
             }
-            
-            complete(self->_databaseArr);
         }];
-   // [lock unlock];
     });
 
 }
@@ -408,10 +403,10 @@ static nasDownloadFileManager * cur_nasDownloadFileManager = nil;
 //                HLog(@"正在遍历下载完成数组 并且添加 %@",dataModel.name)
 //                NSMutableArray *doneArr = _databaseArr[1];
 //                [doneArr insertObject:dataModel atIndex:0];
-//                
+//
 //                //更新数据库
 //                [dataModel bg_saveOrUpdateAsync:^(BOOL isSuccess) {
-//                                    
+//
 //                }];
                 
                 curDataModel = dataModel;
@@ -591,15 +586,15 @@ static nasDownloadFileManager * cur_nasDownloadFileManager = nil;
     }
     
 //    {
-//        
+//
 //        couldPhoneFileModel* dataModel = nil;
 //        if(arr && arr.count > 0){
 //            dataModel = arr.firstObject;
-//            
+//
 //            //修改数据库状态
 //            dataModel.curDownloadStateType = downloadStateUploading;
 //            [couldPhoneFileModel bg_saveOrUpdateArrayAsync:@[dataModel] complete:^(BOOL isSuccess) {
-//                            
+//
 //            }];
 //        }else{
 //            return;
@@ -607,9 +602,9 @@ static nasDownloadFileManager * cur_nasDownloadFileManager = nil;
 //        NSString *urlString = dataModel.fileUrl;
 //        NSString *requestURLEncodedString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
 //        HLog(@"%@",urlString);
-//        
+//
 //        [[nasDownloadManager shareManager] startDownLoadWithUrl:requestURLEncodedString];
-//        
+//
 //    }
 }
 
@@ -688,15 +683,13 @@ static nasDownloadFileManager * cur_nasDownloadFileManager = nil;
     }
     
     BOOL flag = NO;
-    [_lock lock];
+    @synchronized (self) {
         NSString *key = url;
         NSMutableDictionary *dictM =  [self getDownloadDownList];
         [dictM setObject:dict forKey:key];
         flag = [dictM writeToFile:[self getDownloadDonePlistPath] atomically:YES];
-    [_lock unlock];
-    
-    return flag;
-    
+        return flag;
+    }
 }
 
 /**  删除配置信息 */
@@ -719,8 +712,10 @@ static nasDownloadFileManager * cur_nasDownloadFileManager = nil;
 {
     HLog(@"deleteDownloadDonePlistInfoBy:%@",fullPath)
     NSMutableDictionary *dictM =  [self getDownloadDownList];
-    for (NSString*key in dictM) {
-        NSDictionary*dict = dictM[key];
+    
+    NSDictionary * forDict = [NSDictionary dictionaryWithDictionary:dictM];
+    for (NSString*key in forDict) {
+        NSDictionary*dict = forDict[key];
         
         if ([[dict allKeys] containsObject:@"fullPath"]) {
             NSString * infofullPath = dict[@"fullPath"];