| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221 |
- //
- // 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 <WechatOpenSDK/WXApi.h>
- @interface YMPasswordLoginViewModel ()<WXApiDelegate>
- /// 登录按钮有效性
- @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<giftArray.count; i++) {
- YOUPAILCGiftModel *model = giftArray[i];
- if (model.youpaipsvga.length > 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<giftArray.count; i++) {
- YOUPAILCGiftModel *model = giftArray[i];
- if (model.youpaipsvga.length > 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
|