YMHomePageBannerViewModel.m 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. //
  2. // YMHomePageBannerViewModel.m
  3. // MSYOUPAI
  4. //
  5. // Created by YoMi on 2024/2/12.
  6. // Copyright © 2024 MS. All rights reserved.
  7. //
  8. #import "YMHomePageBannerViewModel.h"
  9. #import "YMAudioVideoMatchingViewModel.h"
  10. #import "YMOnTVModel.h"
  11. @interface YMHomePageBannerViewModel ()
  12. /// 上电视数据
  13. @property (nonatomic, strong, readwrite) NSArray <YMHomePageBannerOnTVCellViewModel *>*onTvDataArray;
  14. /// 前往音视频匹配
  15. @property (nonatomic, strong, readwrite) RACSubject *gotoAudioVideoMatchingSubject;
  16. @end
  17. @implementation YMHomePageBannerViewModel
  18. - (void)ym_initialize{
  19. [super ym_initialize];
  20. @weakify(self)
  21. [[self.gotoAudioVideoMatchingSubject takeUntil:self.rac_willDeallocSignal] subscribeNext:^(id _Nullable value) {
  22. @strongify(self)
  23. if ([self isNeedGoddessCertified]) {
  24. return;
  25. }
  26. YMAudioVideoMatchingViewModel *audioVideoMatchingVM = [[YMAudioVideoMatchingViewModel alloc]initWithParams:@{
  27. ParamsCategoryType:@([value intValue]),
  28. }];
  29. [YMRouter openURL:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_AUDIO_VIDEO_MATCHING) withUserInfo:@{
  30. RouterViewModel:audioVideoMatchingVM
  31. } completion:nil];
  32. }];
  33. }
  34. - (void)gotoOnTvVC{
  35. // YMWebArticleViewModel *webArticleVM = [[YMWebArticleViewModel alloc]initWithParams:@{
  36. // ParamsUrl:[YMGlobalUtils shared].onTvWebUrl
  37. // }];
  38. // [YMRouter openURL:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_WEB_ARTICLE) withUserInfo:@{
  39. // RouterViewModel:webArticleVM
  40. // } completion:nil];
  41. ZCBaseWebVC * vc = [[ZCBaseWebVC alloc]init];
  42. vc.contentUrl = [YMGlobalUtils shared].onTvWebUrl;
  43. [[YMGlobalUtils getCurrentVC].navigationController pushViewController:vc animated:YES];
  44. }
  45. /// 获取上电视数据
  46. - (void)getOnTvData{
  47. @weakify(self)
  48. [LCHttpHelper requestWithURLString:GetOntvList parameters:@{} needToken:YES type:HttpRequestTypePost success:^(id responseObject) {
  49. @strongify(self)
  50. NSDictionary* dict = (NSDictionary*)responseObject;
  51. NSInteger code = [[dict objectForKey:@"code"] integerValue];
  52. if (code == 0) {
  53. NSArray *result = [dict arrayValueForKey:@"data" defaultValue:@[]];
  54. self.onTvDataArray = [[NSArray yy_modelArrayWithClass:[YMOnTVModel class] json:result].rac_sequence map:^(YMOnTVModel * _Nullable model) {
  55. YMHomePageBannerOnTVCellViewModel *viewModel = [[YMHomePageBannerOnTVCellViewModel alloc]initWithParams:@{
  56. ParamsModel:model
  57. }];
  58. return viewModel;
  59. }].array;
  60. [self.refreshUISubject sendNext:@(YMRefreshUI)];
  61. }else{
  62. [self.refreshUISubject sendNext:@(YMRefreshError)];
  63. }
  64. } failure:^(NSError *error) {
  65. [self.refreshUISubject sendNext:@(YMRefreshError)];
  66. }];
  67. }
  68. - (RACSubject *)gotoAudioVideoMatchingSubject{
  69. if (!_gotoAudioVideoMatchingSubject) {
  70. _gotoAudioVideoMatchingSubject = [RACSubject subject];
  71. }
  72. return _gotoAudioVideoMatchingSubject;
  73. }
  74. @end