// // uploadFileManager.m // 隐私保护 // // Created by xd h on 2023/11/15. // #import "uploadFileManager.h" @implementation uploadFileManager static uploadFileManager * cur_uploadFileShareInstance = nil; +(uploadFileManager *)shareInstance; { static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ cur_uploadFileShareInstance = [[uploadFileManager alloc] init]; }); return cur_uploadFileShareInstance; } - (id)init { self = [super init]; if (self) { //[self initManager]; } return self; } //把TZAssetModel 转成 我们需要上传的model - (NSMutableArray*)handlTZAssetModelToUploadFileDataFunBy:(NSMutableArray*)indexPathsForSelectedItems { _fileModelDataArr = [NSMutableArray new]; for (TZAssetModel * model in indexPathsForSelectedItems) { uploadFileDataModel * curModel = [uploadFileDataModel new]; curModel.imageData = model.imageData; curModel.filename = [model.asset valueForKey:@"filename"]; curModel.uploadType = uploadStateWait; [_fileModelDataArr addObject:curModel]; //保存到数据库 curModel.bg_tableName = upLoadFile_image_tableName; [curModel bg_saveOrUpdateAsync:^(BOOL isSuccess) { HLog(@"%@ 写入 %@", curModel.filename, isSuccess ? @"成功":@"失败"); }]; } if(_fileModelDataArr.count > 0){ [self beginUploadFileFun]; } return _fileModelDataArr; } - (void)beginUploadFileFun { _curUploadFileDataModel = _fileModelDataArr.firstObject; [[NSNotificationCenter defaultCenter] postNotificationName:uploadFileBeginNotification object:_curUploadFileDataModel]; } //修改文件上传的状态 - (void)changeUploadFileState:(uploadStateType)curUploadStateType withDidUploadBytes:(NSInteger)didUpLoadBytes complete:(custom_complete_B)complete { // _curUploadFileDataModel.imageData = nil; // _curUploadFileDataModel.uploadType = uploadStateDone; // NSNumber * numberUploadState = nil; if(curUploadStateType == uploadStateDone) { numberUploadState = [NSNumber numberWithInt:uploadStateUploading]; } else{ numberUploadState = [NSNumber numberWithInt:uploadStateDone]; } NSString* where = nil; if(curUploadStateType == uploadStateDone) { where = [NSString stringWithFormat:@"where %@=%@ and %@=%@ ",bg_sqlKey(@"filename"),bg_sqlValue(_curUploadFileDataModel.filename),bg_sqlKey(@"uploadType"),bg_sqlValue(numberUploadState)]; } else { where = [NSString stringWithFormat:@"where %@=%@ and %@!=%@ ",bg_sqlKey(@"filename"),bg_sqlValue(_curUploadFileDataModel.filename),bg_sqlKey(@"uploadType"),bg_sqlValue(numberUploadState)]; } [uploadFileDataModel bg_findAsync:upLoadFile_image_tableName where:where complete:^(NSArray * _Nullable array) { for (uploadFileDataModel * curModel in array) { curModel.uploadType = curUploadStateType; curModel.didUploadBytes = didUpLoadBytes; if(curUploadStateType == uploadStateDone){ curModel.imageData = [NSData data]; } [curModel bg_saveOrUpdateAsync:^(BOOL isSuccess) { HLog(@"%@ 写入 %@", self->_curUploadFileDataModel.filename, isSuccess ? @"成功":@"失败"); }]; } complete(YES); }]; } - (void)uploadFileDoneFun { [self changeUploadFileState:uploadStateDone withDidUploadBytes:[_curUploadFileDataModel.imageData length] complete:^(BOOL isSuccess) { [self->_fileModelDataArr removeObject:self->_curUploadFileDataModel]; if(self->_fileModelDataArr.count > 0){ [self beginUploadFileFun]; } }]; } @end