// // YMHomePageBannerViewModel.m // MSYOUPAI // // Created by YoMi on 2024/2/12. // Copyright © 2024 MS. All rights reserved. // #import "YMHomePageBannerViewModel.h" #import "YMAudioVideoMatchingViewModel.h" #import "YMOnTVModel.h" @interface YMHomePageBannerViewModel () /// 上电视数据 @property (nonatomic, strong, readwrite) NSArray *onTvDataArray; /// 前往音视频匹配 @property (nonatomic, strong, readwrite) RACSubject *gotoAudioVideoMatchingSubject; @end @implementation YMHomePageBannerViewModel - (void)ym_initialize{ [super ym_initialize]; @weakify(self) [[self.gotoAudioVideoMatchingSubject takeUntil:self.rac_willDeallocSignal] subscribeNext:^(id _Nullable value) { @strongify(self) if ([self isNeedGoddessCertified]) { return; } YMAudioVideoMatchingViewModel *audioVideoMatchingVM = [[YMAudioVideoMatchingViewModel alloc]initWithParams:@{ ParamsCategoryType:@([value intValue]), }]; [YMRouter openURL:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_AUDIO_VIDEO_MATCHING) withUserInfo:@{ RouterViewModel:audioVideoMatchingVM } completion:nil]; }]; } - (void)gotoOnTvVC{ // YMWebArticleViewModel *webArticleVM = [[YMWebArticleViewModel alloc]initWithParams:@{ // ParamsUrl:[YMGlobalUtils shared].onTvWebUrl // }]; // [YMRouter openURL:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_WEB_ARTICLE) withUserInfo:@{ // RouterViewModel:webArticleVM // } completion:nil]; ZCBaseWebVC * vc = [[ZCBaseWebVC alloc]init]; vc.contentUrl = [YMGlobalUtils shared].onTvWebUrl; [[YMGlobalUtils getCurrentVC].navigationController pushViewController:vc animated:YES]; } /// 获取上电视数据 - (void)getOnTvData{ @weakify(self) [LCHttpHelper requestWithURLString:GetOntvList parameters:@{} needToken:YES type:HttpRequestTypePost success:^(id responseObject) { @strongify(self) NSDictionary* dict = (NSDictionary*)responseObject; NSInteger code = [[dict objectForKey:@"code"] integerValue]; if (code == 0) { NSArray *result = [dict arrayValueForKey:@"data" defaultValue:@[]]; self.onTvDataArray = [[NSArray yy_modelArrayWithClass:[YMOnTVModel class] json:result].rac_sequence map:^(YMOnTVModel * _Nullable model) { YMHomePageBannerOnTVCellViewModel *viewModel = [[YMHomePageBannerOnTVCellViewModel alloc]initWithParams:@{ ParamsModel:model }]; return viewModel; }].array; [self.refreshUISubject sendNext:@(YMRefreshUI)]; }else{ [self.refreshUISubject sendNext:@(YMRefreshError)]; } } failure:^(NSError *error) { [self.refreshUISubject sendNext:@(YMRefreshError)]; }]; } - (RACSubject *)gotoAudioVideoMatchingSubject{ if (!_gotoAudioVideoMatchingSubject) { _gotoAudioVideoMatchingSubject = [RACSubject subject]; } return _gotoAudioVideoMatchingSubject; } @end