// // YMPasswordLoginViewModel.m // MSYOUPAI // // Created by YoMi on 2024/2/5. // Copyright © 2024 MS. All rights reserved. // #import "YMPasswordLoginViewModel.h" #import "YMRetrievePasswordViewModel.h" #import "YMRegisterViewModel.h" #import "YMImproveInfoViewModel.h" #import @interface YMPasswordLoginViewModel () /// 登录按钮有效性 @property (nonatomic, strong, readwrite) RACSignal *validLoginSignal; @end @implementation YMPasswordLoginViewModel - (void)ym_initialize{ [super ym_initialize]; /// 登录按钮有效性 self.validLoginSignal = [[[RACSignal combineLatest:@[ RACObserve(self, mobile), RACObserve(self, password) ] reduce:^(NSString *mobile, NSString *password) { //是否不为空 return @(!OCStringIsEmpty(mobile) && !OCStringIsEmpty(password)); }] distinctUntilChanged] takeUntil:self.rac_willDeallocSignal]; } - (void)accountPasswordLoginRequest{ @weakify(self) [ZCHUDHelper showWithStatus:@"加载中..."]; [LCHttpHelper requestWithURLString:PhoneLogin parameters:@{ @"mobile":self.mobile?:@"", @"password":self.password?:@"", @"agreement":@"1", } needToken:NO type:HttpRequestTypePost success:^(id responseObject) { // @strongify(self) NSDictionary* dict = (NSDictionary*)responseObject; NSInteger code = [[dict objectForKey:@"code"] integerValue]; if (code == 0) { [ZCHUDHelper dismiss]; YOUPAILCUserModel* userModel = [YOUPAILCUserModel mj_objectWithKeyValues:[dict objectForKey:@"data"]]; [LCSaveModel saveUserModel:userModel]; [LCSaveData saveTokenString:userModel.youpaipuserinfo.youpaiptoken];//保存token [LCSaveData saveLoginMark:YES]; [OCUserDefaults setObject:userModel.youpaipuserinfo.youpaipuser_id forKey:kUSER_ID]; [OCUserDefaults setBool:userModel.youpaipuserinfo.youpaipgender == 1 ? YES : NO forKey:kIS_FEMALE_GENDER]; [OCUserDefaults setBool:userModel.youpaipuserinfo.youpaipis_anchor == 1 ? YES : NO forKey:kIS_GODDESS_CERTIFIED]; [OCUserDefaults setBool:userModel.youpaipuserinfo.youpaipvip == 0 ? NO : YES forKey:kIS_VIP]; [OCUserDefaults synchronize]; [LCHttpHelper requestWithURLString:GiftConfig parameters:nil needToken:YES type:HttpRequestTypePost success:^(id responseObject) { NSDictionary* dict = (NSDictionary*)responseObject; NSLog(@"GiftConfig == %@",dict); NSInteger code = [[dict objectForKey:@"code"] integerValue]; if (code==0) {//成功 NSMutableArray *giftArray = [NSMutableArray array]; giftArray = [YOUPAILCGiftModel mj_objectArrayWithKeyValuesArray:[[dict objectForKey:@"data"]objectForKey:@"gift_list"]]; for (int i = 0; i 0 ) { [LCTools giftSVGAWithSvgaUrlStr:model.youpaipsvga]; } } } } failure:^(NSError *error) { }]; if (userModel.youpaipuserinfo.youpaiptype == 2) { //是特殊用户 [LCSaveData saveIsspecial:YES]; } //未完善资料,进入完善资料页面 if (userModel.youpaipuserinfo.youpaipfinish_status == 0) { YMImproveInfoViewModel *improveInfoVM = [[YMImproveInfoViewModel alloc]initWithParams:@{ @"inviteCode":[LCTools getPasteString]?:@"" }]; [YMRouter openURL:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_IMPROVE_INFO) withUserInfo:@{ RouterViewModel:improveInfoVM } completion:nil]; }else{ //已经完善资料 [[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]; }]; } - (void)sendWechatAuth{ if(![WXApi isWXAppInstalled]){ [ZCHUDHelper showTitle:@"未安装微信或版本过低"]; return; } SendAuthReq *req = [[SendAuthReq alloc] init]; req.scope = @"snsapi_userinfo"; req.state = kAccountWeChatSendAuth; [WXApi sendAuthReq:req viewController:[YMGlobalUtils getCurrentVC] delegate:self completion:nil]; } - (void)getWechatLoginAuthWithCode:(NSString*)code{ @weakify(self) [ZCHUDHelper showWithStatus:@"授权中..."]; [LCHttpHelper requestWithURLString:WXLogin parameters:@{ @"code":code } needToken:NO type:HttpRequestTypePost success:^(id responseObject) { @strongify(self) NSDictionary* dict = (NSDictionary*)responseObject; NSInteger code = [[dict objectForKey:@"code"] integerValue]; if (code == 0) { NSDictionary *data = [dict dictionaryValueForKey:@"data" defaultValue:@{}]; if (OCDictionaryIsEmpty(data)) { [ZCHUDHelper showTitle:@"授权失败 请重新尝试"]; return; } else { [ZCHUDHelper dismiss]; [self wechatLoginRequest:data]; } }else{ [ZCHUDHelper showTitle:[dict stringValueForKey:@"message" defaultValue:@""]]; } } failure:^(NSError *error) { [ZCHUDHelper showTitle:error.localizedDescription]; }]; } - (void)wechatLoginRequest:(NSDictionary*)params{ @weakify(self) [ZCHUDHelper showWithStatus:@"登录中..."]; [LCHttpHelper requestWithURLString:WXThird parameters:params needToken:NO type:HttpRequestTypePost success:^(id responseObject) { @strongify(self) NSDictionary* dict = (NSDictionary*)responseObject; NSInteger code = [[dict objectForKey:@"code"] integerValue]; if (code == 0) { [ZCHUDHelper dismiss]; YOUPAILCUserModel* userModel = [YOUPAILCUserModel mj_objectWithKeyValues:[dict objectForKey:@"data"]]; [LCSaveModel saveUserModel:userModel]; [LCSaveData saveTokenString:userModel.youpaipuserinfo.youpaiptoken];//保存token [LCSaveData saveLoginMark:YES]; [OCUserDefaults setObject:userModel.youpaipuserinfo.youpaipuser_id forKey:kUSER_ID]; [OCUserDefaults setBool:userModel.youpaipuserinfo.youpaipgender == 1 ? YES : NO forKey:kIS_FEMALE_GENDER]; [OCUserDefaults setBool:userModel.youpaipuserinfo.youpaipis_anchor == 1 ? YES : NO forKey:kIS_GODDESS_CERTIFIED]; [OCUserDefaults setBool:userModel.youpaipuserinfo.youpaipvip == 0 ? NO : YES forKey:kIS_VIP]; [OCUserDefaults synchronize]; [LCHttpHelper requestWithURLString:GiftConfig parameters:nil needToken:YES type:HttpRequestTypePost success:^(id responseObject) { NSDictionary* dict = (NSDictionary*)responseObject; NSLog(@"GiftConfig == %@",dict); NSInteger code = [[dict objectForKey:@"code"] integerValue]; if (code==0) {//成功 NSMutableArray *giftArray = [NSMutableArray array]; giftArray = [YOUPAILCGiftModel mj_objectArrayWithKeyValuesArray:[[dict objectForKey:@"data"]objectForKey:@"gift_list"]]; for (int i = 0; i 0 ) { [LCTools giftSVGAWithSvgaUrlStr:model.youpaipsvga]; } } } } failure:^(NSError *error) { }]; if (userModel.youpaipuserinfo.youpaiptype == 2) { //是特殊用户 [LCSaveData saveIsspecial:YES]; } //未完善资料,进入完善资料页面 if (userModel.youpaipuserinfo.youpaipfinish_status == 0) { YMImproveInfoViewModel *improveInfoVM = [[YMImproveInfoViewModel alloc]initWithParams:@{ @"inviteCode":[LCTools getPasteString]?:@"" }]; [YMRouter openURL:stringFormat(@"%@%@", YM_ROUTER_URL_PREFIX, YM_ROUTER_IMPROVE_INFO) withUserInfo:@{ RouterViewModel:improveInfoVM } completion:nil]; }else{ //已经完善资料 [[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]; }]; } - (void)gotoForgetPasswordVC{ YMRetrievePasswordViewModel *forgetPasswordVM = [[YMRetrievePasswordViewModel alloc]initWithParams:@{}]; [YMRouter openURL:stringFormat(@"%@%@",YM_ROUTER_URL_PREFIX,YM_ROUTER_FORGET_PASSWORD) withUserInfo:@{ RouterViewModel:forgetPasswordVM } completion:nil]; } - (void)gotoRegisterVC{ YMRegisterViewModel *registerVM = [[YMRegisterViewModel alloc]initWithParams:@{}]; [YMRouter openURL:stringFormat(@"%@%@",YM_ROUTER_URL_PREFIX,YM_ROUTER_REGISTER) withUserInfo:@{ RouterViewModel:registerVM } completion:nil]; } @end