YMBlackListViewModel.m 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. //
  2. // YMBlackListViewModel.m
  3. // MSYOUPAI
  4. //
  5. // Created by YoMi on 2024/2/21.
  6. // Copyright © 2024 MS. All rights reserved.
  7. //
  8. #import "YMBlackListViewModel.h"
  9. #import "YMBlackListModel.h"
  10. @interface YMBlackListViewModel ()
  11. /// 当前数据数量
  12. @property (nonatomic, assign) NSInteger currentSize;
  13. @end
  14. @implementation YMBlackListViewModel
  15. - (void)ym_initialize{
  16. [super ym_initialize];
  17. self.customNavTitle = @"黑名单";
  18. self.currentPage = 1;
  19. self.currentSize = 10;
  20. }
  21. - (void)getBlackListData {
  22. @weakify(self)
  23. [ZCHUDHelper showWithStatus:@"加载中..."];
  24. [LCHttpHelper requestWithURLString:BlackList parameters:@{
  25. @"page":@(self.currentPage),
  26. @"limit":@(self.currentSize)
  27. } needToken:YES type:HttpRequestTypePost success:^(id responseObject) {
  28. @strongify(self)
  29. NSDictionary* dict = (NSDictionary*)responseObject;
  30. NSInteger code = [[dict objectForKey:@"code"] integerValue];
  31. if (code == 0) {
  32. [ZCHUDHelper dismiss];
  33. NSDictionary *data = [dict dictionaryValueForKey:@"data" defaultValue:@{}];
  34. NSArray *result = [data arrayValueForKey:@"list" defaultValue:@[]];
  35. if (self.currentPage == 1) {
  36. [self.listDataArray removeAllObjects];
  37. }
  38. NSArray *viewModelArr = [[NSArray yy_modelArrayWithClass:[YMBlackListModel class] json:result].rac_sequence map:^(YMBlackListModel * _Nullable model) {
  39. YMBlackListCellViewModel *viewModel = [[YMBlackListCellViewModel alloc]initWithParams:@{
  40. ParamsModel:model
  41. }];
  42. return viewModel;
  43. }].array;
  44. [self.listDataArray addObjectsFromArray:viewModelArr];
  45. if(self.currentPage > 0 && self.currentPage % 5 == 0){
  46. [[SDImageCache sharedImageCache] clearMemory];
  47. }
  48. [self.refreshUISubject sendNext:@(result.count < self.currentSize ? YMFooterRefresh_HasNoMoreData : YMFooterRefresh_HasMoreData)];
  49. }else{
  50. [ZCHUDHelper showTitle:[dict stringValueForKey:@"message" defaultValue:@""]];
  51. dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
  52. [self.refreshUISubject sendNext:@(YMRefreshError)];
  53. });
  54. }
  55. } failure:^(NSError *error) {
  56. if(self.currentPage != 1){
  57. self.currentPage--;
  58. }
  59. [ZCHUDHelper showTitle:error.localizedDescription];
  60. dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
  61. [self.refreshUISubject sendNext:@(YMRefreshError)];
  62. });
  63. }];
  64. }
  65. - (NSMutableArray<YMBlackListCellViewModel *> *)listDataArray{
  66. if (!_listDataArray) {
  67. _listDataArray = [NSMutableArray array];
  68. }
  69. return _listDataArray;
  70. }
  71. @end