123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298 |
- //
- // YMImproveInfoViewModel.m
- // MSYOUPAI
- //
- // Created by YoMi on 2024/2/8.
- // Copyright © 2024 MS. All rights reserved.
- //
- #import "YMImproveInfoViewModel.h"
- #import "YMImproveInfoAvatarOrNicknameModel.h"
- @interface YMImproveInfoViewModel ()<TZImagePickerControllerDelegate>
- /// 完善信息按钮有效性
- @property (nonatomic, strong, readwrite) RACSignal *validImproveInfoSignal;
- /// 年龄选择器VM
- @property (nonatomic, strong) YMPickerViewModel *agePickerVM;
- /// 男性头像数组
- @property (nonatomic, copy) NSArray <NSString*>*maleAvatarArray;
- /// 女性头像数组
- @property (nonatomic, copy) NSArray <NSString*>*femaleAvatarArray;
- /// 男性昵称数组
- @property (nonatomic, copy) NSArray <YMMaleNicknameModel*>*maleNicknameArray;
- /// 女性昵称数组
- @property (nonatomic, copy) NSArray <YMFemaleNicknameModel*>*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<UIImage *> *photos, NSArray *assets, BOOL isSelectOriginalPhoto) {
- //1通过,0待审核,2,未通过
- [LCCommonHttp uploadWithImages:photos Type:@"avatar" successBlock:^(NSArray<NSString *> *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<NSDictionary *> * _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
|