receiveView.m 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273
  1. //
  2. // receiveView.m
  3. // 双子星云手机
  4. //
  5. // Created by xd h on 2024/5/23.
  6. //
  7. #import "receiveView.h"
  8. #import "receiveHeadView.h"
  9. #import "receiveDownloadRecordTableView.h"
  10. #import "receiveSaveRecordTableView.h"
  11. #import "boxSaveFileManager.h"
  12. #import "downStatusModel.h"
  13. #import "boxDownloadFileManager.h"
  14. @interface receiveView ()
  15. {
  16. }
  17. @property(nonatomic,strong) receiveHeadView * curReceiveHeadView;
  18. @property(nonatomic,strong) receiveDownloadRecordTableView * downloadRecordTableView;
  19. @property(nonatomic,strong) receiveSaveRecordTableView * saveRecordTableView;
  20. @end
  21. @implementation receiveView
  22. - (id)initWithFrame:(CGRect)frame{
  23. self = [super initWithFrame:frame];
  24. [self setBackgroundColor:[UIColor whiteColor]];
  25. _isReceiveType = 1;
  26. [self drawAnyView];
  27. return self;
  28. }
  29. - (void)drawAnyView{
  30. _curReceiveHeadView = [[receiveHeadView alloc] init];
  31. [self addSubview:_curReceiveHeadView];
  32. [_curReceiveHeadView mas_makeConstraints:^(MASConstraintMaker *make) {
  33. make.left.mas_equalTo(0);
  34. make.right.mas_equalTo(0);
  35. make.top.mas_equalTo(0);
  36. make.height.mas_equalTo(40);
  37. }];
  38. KWeakSelf
  39. #pragma mark 点击接收的下载或者保存
  40. _curReceiveHeadView.didClickbuttonFun = ^(NSInteger tag) {
  41. [weakSelf didClickHeadButtonFun:tag];
  42. };
  43. _downloadRecordTableView = [[receiveDownloadRecordTableView alloc] init];
  44. [self addSubview:_downloadRecordTableView];
  45. [_downloadRecordTableView mas_makeConstraints:^(MASConstraintMaker *make) {
  46. make.left.mas_equalTo(0);
  47. make.right.mas_equalTo(0);
  48. make.top.equalTo(_curReceiveHeadView.mas_bottom).offset(0);
  49. make.bottom.mas_equalTo(40);
  50. }];
  51. _downloadRecordTableView.didLongPressClick = ^{
  52. [weakSelf handleLongPressClickFun];
  53. };
  54. _saveRecordTableView = [[receiveSaveRecordTableView alloc] init];
  55. _saveRecordTableView.hidden = YES;
  56. [self addSubview:_saveRecordTableView];
  57. [_saveRecordTableView mas_makeConstraints:^(MASConstraintMaker *make) {
  58. make.left.mas_equalTo(0);
  59. make.right.mas_equalTo(0);
  60. make.top.equalTo(_curReceiveHeadView.mas_bottom).offset(0);
  61. make.bottom.mas_equalTo(40);
  62. }];
  63. _saveRecordTableView.didLongPressClick = ^{
  64. [weakSelf handleLongPressClickFun];
  65. };
  66. }
  67. #pragma mark 长按事件传出去
  68. - (void)handleLongPressClickFun
  69. {
  70. if(self->_didLongPressClick){
  71. self->_didLongPressClick();
  72. }
  73. }
  74. #pragma mark 点击下载和接收
  75. - (void)didClickHeadButtonFun:(NSInteger)tag
  76. {
  77. _isReceiveType = tag;
  78. if(tag == 1){
  79. _downloadRecordTableView.hidden = NO;
  80. _saveRecordTableView.hidden = YES;
  81. }
  82. else if(tag == 2){
  83. _downloadRecordTableView.hidden = YES;
  84. _saveRecordTableView.hidden = NO;
  85. }
  86. }
  87. - (void)setIsReceiveType:(NSInteger)isReceiveType
  88. {
  89. _isReceiveType = isReceiveType;
  90. if(isReceiveType == 2){
  91. [_curReceiveHeadView didClickButFun:_curReceiveHeadView.saveButton];
  92. }
  93. }
  94. - (void)setIsEditType:(BOOL)isEditType{
  95. _isEditType = isEditType;
  96. if(_isReceiveType == 1){
  97. _downloadRecordTableView.isEditType = isEditType;
  98. }
  99. else{
  100. _saveRecordTableView.isEditType = isEditType;
  101. }
  102. }
  103. #pragma mark 点击全选
  104. - (void)setIsSelectAllType:(BOOL)isSelectAllType
  105. {
  106. if(_isReceiveType == 1){
  107. _downloadRecordTableView.isSelectAllType = isSelectAllType;
  108. }
  109. else{
  110. _saveRecordTableView.isSelectAllType = isSelectAllType;
  111. }
  112. }
  113. #pragma mark 获取本地数据库数据
  114. - (void)getAllDataFun{
  115. [self getBoxDownLoadDataFun];
  116. [self getBoxSaveDataFun];
  117. }
  118. #pragma mark 读取保存到盒子的数据库
  119. - (void)getBoxSaveDataFun
  120. {
  121. KWeakSelf
  122. [[boxSaveFileManager shareInstance] getDataInDatabaseFun:NO complete:^(NSMutableArray * _Nonnull Arr) {
  123. [weakSelf AferGetBoxSaveDataBy:Arr];
  124. }];
  125. }
  126. - (void)AferGetBoxSaveDataBy:(NSMutableArray*)arr
  127. {
  128. _saveRecordTableView.outSideDataArr = arr;
  129. [self checkSaveFileToBoxStateFun];
  130. }
  131. - (NSMutableArray*)selectModelArr
  132. {
  133. if(_isReceiveType == 1){
  134. return _downloadRecordTableView.selectModelArr;
  135. }
  136. else{
  137. return _saveRecordTableView.selectModelArr;
  138. }
  139. return [NSMutableArray new];
  140. }
  141. #pragma mark 单个点击选中后删除
  142. - (void)deleteModelOneByOneFun{
  143. if(_isReceiveType == 1){
  144. [_downloadRecordTableView deleteModelOneByOneFun];
  145. }
  146. else{
  147. [_saveRecordTableView deleteModelOneByOneFun];
  148. }
  149. }
  150. #pragma mark 查询保存到盒子的下载状态
  151. - (void)checkSaveFileToBoxStateFun
  152. {
  153. NSMutableArray *checkArr = _saveRecordTableView.outSideDataArr.firstObject;
  154. if(!checkArr || checkArr.count == 0){
  155. return;
  156. }
  157. NSMutableDictionary*paraDict = [NSMutableDictionary new];
  158. NSMutableArray *pathArr = [NSMutableArray new];
  159. for (ShareFileDataModel*dataModel in checkArr){
  160. NSString *pathStr = dataModel.fileUrl;
  161. [pathArr addObject: pathStr ];
  162. }
  163. HLog(@"%@",pathArr);
  164. if (pathArr) {
  165. NSString *jsonStr = [iTools toJsonStrWithArray:pathArr];
  166. if(jsonStr){
  167. [paraDict setValue:jsonStr forKey:@"urls"];
  168. }
  169. }
  170. KWeakSelf
  171. [[netWorkManager shareInstance] cloudPhoneGETCallBackCode:@"downStatus" Parameters:paraDict success:^(id _Nonnull responseObject) {
  172. downStatusModel *model = [[downStatusModel alloc] initWithDictionary:responseObject error:nil];
  173. if(model && model.status == 0){
  174. [weakSelf updateDataAfterCheckDownStatus:model];
  175. }
  176. } failure:^(NSError * _Nonnull error) {
  177. }];
  178. }
  179. #pragma mark 查询保存到盒子的下载状态后更新数据
  180. - (void)updateDataAfterCheckDownStatus:(downStatusModel*)downStatusMod
  181. {
  182. [self updataBoxSaveDataBy:downStatusMod];
  183. [[boxSaveFileManager shareInstance] updataBoxSaveDataBy:downStatusMod];
  184. }
  185. #pragma mark 更新本地数据
  186. - (void)updataBoxSaveDataBy:(downStatusModel*)downStatusMod
  187. {
  188. for (downStatusDataModel*updataModel in downStatusMod.data) {
  189. for (ShareFileDataModel* model in _saveRecordTableView.boxSaveingArr) {
  190. if ([updataModel.url isEqualToString:model.fileUrl]) {
  191. if (updataModel.curStatus == 0
  192. || updataModel.curStatus == 3) {
  193. //不用处理
  194. }
  195. else if (updataModel.curStatus == 1) {
  196. //成功
  197. model.saveboxStateType = saveBoxStateDone;
  198. [_saveRecordTableView.boxSaveDoneArr addObject:model];
  199. [_saveRecordTableView.boxSaveingArr removeObject:model];
  200. }
  201. else{
  202. //失败
  203. model.saveboxStateType = saveBoxStateFail;
  204. [_saveRecordTableView.boxSavefailArr addObject:model];
  205. [_saveRecordTableView.boxSaveingArr removeObject:model];
  206. }
  207. break;
  208. }
  209. }
  210. }
  211. [_saveRecordTableView RefreshAllDataFun];
  212. }
  213. #pragma mark 读取盒子下载的数据库
  214. - (void)getBoxDownLoadDataFun
  215. {
  216. KWeakSelf
  217. [[boxDownloadFileManager shareInstance] getDataInDatabaseFun:NO complete:^(NSMutableArray * _Nonnull Arr) {
  218. [weakSelf AferGetBoxDownloadDataBy:Arr];
  219. }];
  220. }
  221. - (void)AferGetBoxDownloadDataBy:(NSMutableArray*)arr
  222. {
  223. _downloadRecordTableView.outSideDataArr = arr;
  224. }
  225. @end