12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- //
- // 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 <YMHomePageBannerOnTVCellViewModel *>*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
|