// // YMInvitingPrizesViewModel.m // MSYOUPAI // // Created by YoMi on 2024/3/5. // Copyright © 2024 MS. All rights reserved. // #import "YMInvitingPrizesViewModel.h" #import "YMInvitingPrizesInfoModel.h" #import "YMInvitingPrizesSharePosterModel.h" @interface YMInvitingPrizesViewModel () /// 邀请信息字典数据 @property (nonatomic, strong, readwrite) NSArray *invitationInfoDicDataArray; /// 邀请信息模组数据 @property (nonatomic, strong, readwrite) NSArray *invitationInfoGridDataArray; /// 奖励说明 @property (nonatomic, strong, readwrite) NSAttributedString *incentivesNotes; /// 海报数据 @property (nonatomic, strong, readwrite) NSArray *posterDataArray; @end @implementation YMInvitingPrizesViewModel - (void)ym_initialize{ [super ym_initialize]; self.customNavTitle = @"邀请有礼"; self.invitationInfoDicDataArray = @[ @{ @"title":@"0", @"desc":@"累计邀请(人数)", ParamsCategoryType:@(YMInvitingPrizesInvitationInfoTypeCumulativeInvitations), }, @{ @"title":@"0", @"desc":@"累计奖励(金币)", ParamsCategoryType:@(YMInvitingPrizesInvitationInfoTypeCumulativeReward), }, ]; } - (void)getInvitingPrizesInfoData{ @weakify(self) [ZCHUDHelper showWithStatus:@"加载中..."]; [LCHttpHelper requestWithURLString:InvitingPrizesInfo parameters:@{} needToken:YES type:HttpRequestTypePost success:^(id responseObject) { @strongify(self) NSDictionary* dict = (NSDictionary*)responseObject; NSInteger code = [[dict objectForKey:@"code"] integerValue]; if (code == 0) { [ZCHUDHelper dismiss]; YMInvitingPrizesInfoModel *model = [YMInvitingPrizesInfoModel yy_modelWithJSON:[dict dictionaryValueForKey:@"data" defaultValue:@{}]]; self.invitationInfoGridDataArray = [self.invitationInfoDicDataArray.rac_sequence map:^id _Nullable(NSDictionary * _Nullable invitationInfoDic) { YMInvitingPrizesInvitationInfoType type = [invitationInfoDic integerValueForKey:ParamsCategoryType defaultValue:YMInvitingPrizesInvitationInfoTypeCumulativeInvitations]; YMInvitingPrizesInvitationInfoViewModel *viewModel = [[YMInvitingPrizesInvitationInfoViewModel alloc]init]; viewModel.desc = [invitationInfoDic stringValueForKey:@"desc" defaultValue:@""]; viewModel.infoType = type; switch (type) { case YMInvitingPrizesInvitationInfoTypeCumulativeInvitations: { viewModel.titleString = stringFormat(@"%ld",model.invite_count); } break; case YMInvitingPrizesInvitationInfoTypeCumulativeReward: { viewModel.titleString = stringFormat(@"%ld",model.reward_count); } break; default: break; } return viewModel; }].array; NSString *incentivesNotesStr = model.invite_rules; NSMutableAttributedString *incentivesNotesAttributed = [[NSMutableAttributedString alloc]initWithString:incentivesNotesStr]; incentivesNotesAttributed.yy_font = LCFont(13); incentivesNotesAttributed.yy_color = HexColorFromRGB(0xB54801); incentivesNotesAttributed.yy_alignment = NSTextAlignmentJustified; incentivesNotesAttributed.yy_lineSpacing = 5; self.incentivesNotes = incentivesNotesAttributed; [self.refreshUISubject sendNext:@(YMRefreshUI)]; }else{ [ZCHUDHelper showTitle:[dict stringValueForKey:@"message" defaultValue:@""]]; [self.refreshUISubject sendNext:@(YMRefreshError)]; } } failure:^(NSError *error) { [ZCHUDHelper showTitle:error.localizedDescription]; [self.refreshUISubject sendNext:@(YMRefreshError)]; }]; [LCHttpHelper requestWithURLString:InvitingPrizesPoster parameters:@{} needToken:YES type:HttpRequestTypePost success:^(id responseObject) { @strongify(self) NSDictionary* dict = (NSDictionary*)responseObject; NSInteger code = [[dict objectForKey:@"code"] integerValue]; if (code == 0) { YMInvitingPrizesSharePosterModel *model = [YMInvitingPrizesSharePosterModel yy_modelWithJSON:[dict dictionaryValueForKey:@"data" defaultValue:@{}]]; NSMutableArray *tempArr = [NSMutableArray array]; for (int i = 0; i<2; i++) { YMInvitingPrizesSharePosterCellViewModel *viewModel = [[YMInvitingPrizesSharePosterCellViewModel alloc]initWithParams:@{ ParamsModel:model, @"poster":stringFormat(@"ym_inviting_prizes_share_poster_%d",i+1) }]; [tempArr addObject:viewModel]; } self.posterDataArray = tempArr.mutableCopy; [self.refreshUISubject sendNext:@(YMRefreshUI)]; }else{ [ZCHUDHelper showTitle:[dict stringValueForKey:@"message" defaultValue:@""]]; } } failure:^(NSError *error) { [ZCHUDHelper showTitle:error.localizedDescription]; }]; } - (void)gotoInvitationBreakdown{ YMInvitationBreakdownViewModel *invitationBreakdownVM = [[YMInvitationBreakdownViewModel alloc]initWithParams:@{}]; [YMRouter openURL:stringFormat(@"%@%@",YM_ROUTER_URL_PREFIX,YM_ROUTER_INVITING_BREAKDOWN) withUserInfo:@{ RouterViewModel:invitationBreakdownVM } completion:nil]; } @end