// // YMImproveInfoViewModel.m // MSYOUPAI // // Created by YoMi on 2024/2/8. // Copyright © 2024 MS. All rights reserved. // #import "YMImproveInfoViewModel.h" #import "YMImproveInfoAvatarOrNicknameModel.h" @interface YMImproveInfoViewModel () /// 完善信息按钮有效性 @property (nonatomic, strong, readwrite) RACSignal *validImproveInfoSignal; /// 年龄选择器VM @property (nonatomic, strong) YMPickerViewModel *agePickerVM; /// 男性头像数组 @property (nonatomic, copy) NSArray *maleAvatarArray; /// 女性头像数组 @property (nonatomic, copy) NSArray *femaleAvatarArray; /// 男性昵称数组 @property (nonatomic, copy) NSArray *maleNicknameArray; /// 女性昵称数组 @property (nonatomic, copy) NSArray *femaleNicknameArray; /// 男性昵称key @property (nonatomic, copy) NSString *improveInfoMaleNicknameKey; /// 女性昵称key @property (nonatomic, copy) NSString *improveInfoFemaleNicknameKey; @end @implementation YMImproveInfoViewModel - (void)ym_initialize{ [super ym_initialize]; [[YMGlobalUtils shared] getInviteCode:^(NSString * _Nonnull code) { self.inviteCode = code?:@""; }]; self.genderType = ImproveInfoGenderTypeMale; self.improveInfoAge = @"18"; NSMutableArray *rowNameArray = [NSMutableArray array]; for (int i = 18; i<=60; i++) { [rowNameArray addObject:@{@"rowName":stringFormat(@"%d",i)}]; } self.agePickerVM = [[YMPickerViewModel alloc]initWithParams:@{ @"componentDataSource":@[ @{ @"componentName":@"年龄", @"rowDataSource":rowNameArray } ] }]; /// 完善信息按钮有效性 self.validImproveInfoSignal = [[[RACSignal combineLatest:@[ RACObserve(self, improveInfoFemaleNickname) ] reduce:^(NSString *improveInfoFemaleNickname) { //是否不为空 return @(!OCStringIsEmpty(improveInfoFemaleNickname)); }] distinctUntilChanged] takeUntil:self.rac_willDeallocSignal]; } - (void)getNicknameOrAvatarData{ @weakify(self) [LCHttpHelper requestWithURLString:Getnickname parameters:@{} needToken:YES type:HttpRequestTypePost success:^(id responseObject) { @strongify(self) NSDictionary* dict = (NSDictionary*)responseObject; NSInteger code = [[dict objectForKey:@"code"] integerValue]; if (code == 0) { YMImproveInfoAvatarOrNicknameModel *model = [YMImproveInfoAvatarOrNicknameModel yy_modelWithJSON:[dict dictionaryValueForKey:@"data" defaultValue:@{}]]; if (OCArrayIsEmpty(model.male.avatar)) { self.improveInfoMaleAvatarUrl = model.male_default.avatar.firstObject?:@""; } else { self.maleAvatarArray = model.male.avatar; } self.improveInfoMaleNickname = model.male_default.nickname.firstObject.name?:@""; self.improveInfoMaleNicknameKey = model.male_default.nickname.firstObject.key?:@""; self.maleNicknameArray = model.male.nickname; if (OCArrayIsEmpty(model.female.avatar)) { self.improveInfoFemaleAvatarUrl = model.female_default.avatar.firstObject?:@""; } else { self.femaleAvatarArray = model.female.avatar; } self.improveInfoFemaleNickname = model.female_default.nickname.firstObject.name?:@""; self.improveInfoFemaleNicknameKey = model.female_default.nickname.firstObject.key?:@""; self.femaleNicknameArray = model.female.nickname; [self randomAvatar]; }else{ } } failure:^(NSError *error) { }]; } - (void)openAvatarPickerPopupView{ TZImagePickerController *imagePickerVC = [[TZImagePickerController alloc] initWithMaxImagesCount:1 columnNumber:4 delegate:self]; [LCTZImageConfigHelper setDefaultTZImageConfig:imagePickerVC]; imagePickerVC.allowTakePicture = YES; imagePickerVC.allowPickingVideo = NO; imagePickerVC.allowPickingImage = YES; imagePickerVC.allowPickingOriginalPhoto = NO; imagePickerVC.showSelectedIndex = YES; imagePickerVC.allowCrop = NO; imagePickerVC.sortAscendingByModificationDate = YES; [imagePickerVC setDidFinishPickingPhotosHandle:^(NSArray *photos, NSArray *assets, BOOL isSelectOriginalPhoto) { //1通过,0待审核,2,未通过 [LCCommonHttp uploadWithImages:photos Type:@"avatar" successBlock:^(NSArray *ossImagePaths) { NSString *uploadImage = ossImagePaths.firstObject; self.improveInfoAvatarUrl = uploadImage; }]; }]; imagePickerVC.modalPresentationStyle = UIModalPresentationFullScreen; [[YMGlobalUtils getCurrentVC] presentViewController:imagePickerVC animated:YES completion:nil]; } - (void)openAgePickerPopupView{ YMPickerPopupView *customView = [[YMPickerPopupView alloc]init]; [customView ym_bindViewModel:self.agePickerVM]; customView.titleText = @"请选择年龄"; YMPopupView *popupView = [YMPopupView initWithCustomView:customView parentView:nil popStyle:YMPopupStyleSmoothFromBottom dismissStyle:YMDismissStyleSmoothToBottom]; popupView.priority = 999; popupView.cornerRadius = adapt(10); popupView.rectCorners = UIRectCornerTopLeft|UIRectCornerTopRight; popupView.positionStyle = YMPositionStyleBottom; popupView.isClickBgDismiss = YES; popupView.isHideBg = NO; popupView.bgAlpha = 0.5; @weakify(popupView) customView.buttonBlock = ^(BOOL isConfirm, NSArray * _Nonnull currentSelectedDataArray) { @strongify(popupView) if (isConfirm) { self.improveInfoAge = [currentSelectedDataArray[0] stringValueForKey:@"currentSelectedValue" defaultValue:@""]; } [popupView dismissWithStyle:YMDismissStyleSmoothToBottom duration:2.0]; }; [popupView pop]; } - (void)randomAvatar{ switch (self.genderType) { case ImproveInfoGenderTypeMale: { if (!OCArrayIsEmpty(self.maleAvatarArray)) { NSMutableArray *randomArray = [[NSMutableArray alloc] init]; int index = arc4random() % [self.maleAvatarArray count]; [randomArray addObject:[self.maleAvatarArray objectAtIndex:index]]; self.improveInfoMaleAvatarUrl = randomArray.firstObject; } } break; case ImproveInfoGenderTypeFemale: { if (!OCArrayIsEmpty(self.femaleAvatarArray)) { NSMutableArray *randomArray = [[NSMutableArray alloc] init]; int index = arc4random() % [self.femaleAvatarArray count]; [randomArray addObject:[self.femaleAvatarArray objectAtIndex:index]]; self.improveInfoFemaleAvatarUrl = randomArray.firstObject; } } break; default: break; } } - (void)randomNickname{ switch (self.genderType) { case ImproveInfoGenderTypeMale: { if (!OCArrayIsEmpty(self.maleNicknameArray)) { NSMutableArray *randomArray = [[NSMutableArray alloc] init]; int index = arc4random() % [self.maleNicknameArray count]; [randomArray addObject:[self.maleNicknameArray objectAtIndex:index]]; YMMaleNicknameModel *model = randomArray.firstObject; self.improveInfoMaleNickname = model.name; self.improveInfoMaleNicknameKey = model.key; } } break; case ImproveInfoGenderTypeFemale: { if (!OCArrayIsEmpty(self.femaleNicknameArray)) { NSMutableArray *randomArray = [[NSMutableArray alloc] init]; int index = arc4random() % [self.femaleNicknameArray count]; [randomArray addObject:[self.femaleNicknameArray objectAtIndex:index]]; YMFemaleNicknameModel *model = randomArray.firstObject; self.improveInfoFemaleNickname = model.name; self.improveInfoFemaleNicknameKey = model.key; } } break; default: break; } } - (void)submitImproverInfoData{ NSMutableDictionary *params = [NSMutableDictionary dictionary]; if (!OCStringIsEmpty(self.improveInfoAvatarUrl)) { [params setObject:self.improveInfoAvatarUrl?:@"" forKey:@"avatar"]; [params setObject:self.improveInfoAvatarUrl?:@"" forKey:@"albums"]; }else{ switch (self.genderType) { case ImproveInfoGenderTypeMale: { [params setObject:self.improveInfoMaleAvatarUrl?:@"" forKey:@"avatar"]; [params setObject:self.improveInfoMaleAvatarUrl?:@"" forKey:@"albums"]; } break; case ImproveInfoGenderTypeFemale: { [params setObject:self.improveInfoFemaleAvatarUrl?:@"" forKey:@"avatar"]; [params setObject:self.improveInfoFemaleAvatarUrl?:@"" forKey:@"albums"]; } break; default: break; } } switch (self.genderType) { case ImproveInfoGenderTypeMale: { [params setObject:self.improveInfoMaleNickname?:@"" forKey:@"nickname"]; [params setObject:self.improveInfoMaleNicknameKey?:@"" forKey:@"key"]; } break; case ImproveInfoGenderTypeFemale: { [params setObject:self.improveInfoFemaleNickname?:@"" forKey:@"nickname"]; [params setObject:self.improveInfoFemaleNicknameKey?:@"" forKey:@"key"]; } break; default: break; } [params setObject:@(self.genderType) forKey:@"gender"]; [params setObject:self.improveInfoAge forKey:@"age"]; //邀请码取自粘贴板 if (self.inviteCode.length==0) { NSString*code = [LCTools getPasteString]; self.inviteCode = code; } [params setObject:self.inviteCode?:@"" forKey:@"invite_code"]; @weakify(self) [ZCHUDHelper showWithStatus:@"提交中..."]; [LCHttpHelper requestWithURLString:UpdateUserMsgNew parameters:params needToken:YES type:HttpRequestTypePost success:^(id responseObject) { @strongify(self) NSDictionary* dict = (NSDictionary*)responseObject; NSInteger code = [[dict objectForKey:@"code"] integerValue]; if (code == 0) { [ZCHUDHelper dismiss]; [UMengRecordTool umengEventCountWithId:CompleteRegistration]; YOUPAILCUserModel* userModel = [YOUPAILCUserModel mj_objectWithKeyValues:[dict objectForKey:@"data"]]; [LCSaveModel saveUserModel:userModel]; [MobClick profileSignInWithPUID:userModel.youpaipuserinfo.youpaipuser_id]; [LCSaveData saveLoginMark:YES]; //初始化SDK [[YOUPAILCIMLoginManager sharedCenter] youpaifNIMinit:isProdPush]; [[YOUPAILCIMNotificationManager sharedCenter] start]; if (![[YOUPAILCIMLoginManager sharedCenter] youpaifIMIsLogined]) { [[YOUPAILCIMLoginManager sharedCenter]IMLogin:[LCSaveModel getUserModel].youpaipuserinfo.youpaipuser_id token:[LCSaveModel getUserModel].youpaipuserinfo.youpaipim_token]; } [LCTools changeRootToTabbar]; }else{ [ZCHUDHelper showTitle:[dict stringValueForKey:@"message" defaultValue:@""]]; } } failure:^(NSError *error) { [ZCHUDHelper showTitle:error.localizedDescription]; }]; } @end