// // UserViewController.m // Lighting // // Created by 曹云霄 on 16/5/8. // Copyright © 2016年 上海勾芒科技有限公司. All rights reserved. // #import "UserViewController.h" #import "ChangePasswordViewController.h" #import "LoginViewController.h" #import "DeviceDirectionManager.h" @interface UserViewController ()<UINavigationControllerDelegate,UIImagePickerControllerDelegate> @end @implementation UserViewController - (void)viewDidLoad { [super viewDidLoad]; [self uiConfigAction]; [self addGestureRecognizer]; } #pragma mark -UI - (void)uiConfigAction { self.userNameBack.layer.masksToBounds = YES; self.userNameBack.layer.cornerRadius = kCornerRadius; self.userNameBack.layer.borderWidth = 0.5; self.userNameBack.layer.borderColor = kMainBlueColor.CGColor; self.passWordBack.layer.masksToBounds = YES; self.passWordBack.layer.cornerRadius = kCornerRadius; self.passWordBack.layer.borderWidth = 0.5; self.passWordBack.layer.borderColor = kMainBlueColor.CGColor; self.switchUser.layer.masksToBounds = YES; self.switchUser.layer.cornerRadius = kCornerRadius; self.changePassword.layer.masksToBounds = YES; self.changePassword.layer.cornerRadius = kCornerRadius; self.changePassword.layer.borderWidth = 0.5; self.changePassword.layer.borderColor = kMainBlueColor.CGColor; self.rebateBackView.layer.masksToBounds = YES; self.rebateBackView.layer.borderWidth = 1.0f; self.rebateBackView.layer.borderColor = kMainBlueColor.CGColor; self.rebateBackView.layer.cornerRadius = 20; self.guideIntegralView.layer.masksToBounds = YES; self.guideIntegralView.layer.borderWidth = 1.0f; self.guideIntegralView.layer.borderColor = kMainBlueColor.CGColor; self.guideIntegralView.layer.cornerRadius = 20; self.userName.text = [Shoppersmanager manager].userNameString; self.passWord.text = [Shoppersmanager manager].passWordString; self.userHeader.userInteractionEnabled = YES; NSString *headerurl = [Shoppersmanager manager].Shoppers.employee.picture; [self.userHeader sd_setImageWithURL:[NSURL URLWithString:headerurl] placeholderImage:ReplaceImage]; } #pragma mark - 添加添加手势 - (void)addGestureRecognizer { [[NetworkRequestClassManager Manager] NetworkWithDictionaryRequestWithURL:[NSString stringWithFormat:@"%@%@",SERVERREQUESTURL(SHOPPERSCOMMISSION),[Shoppersmanager manager].Shoppers.employee.fid] WithRequestType:ONE WithParameter:nil WithReturnValueBlock:^(id returnValue) { if ([returnValue[@"code"] isEqualToNumber:@0]) { // self.rebateLabe.text = [NSString stringWithFormat:@"¥%.2f",[returnValue[@"data"] floatValue]]; } }WithFailureBlock:^(id error) { }]; } #pragma mark -我的账户点击 - (void)rebateViewClickAction:(UITapGestureRecognizer *)tap { SHARED_APPDELEGATE.tabBarController.selectedIndex = 3; [SHARED_APPDELEGATE.tabBarController dismissViewControllerAnimated:YES completion:nil]; } #pragma mark - 我的积分 - (void)guideIntegralViewClickAction:(UITapGestureRecognizer *)sender { SHARED_APPDELEGATE.tabBarController.selectedIndex = 4; [SHARED_APPDELEGATE.tabBarController dismissViewControllerAnimated:YES completion:nil]; } #pragma mark -用户头像点击 - (void)userHeaderClickAction:(UITapGestureRecognizer *)tap { // 判断应用是否有使用相机的权限 if(![BaseViewController determineCameraPermissions]){ UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:@"提示" message:@"请在iPad的“设置-隐私-相机”选项中,允许欧立方访问你的相机" preferredStyle:UIAlertControllerStyleAlert]; [alertVC addAction:[UIAlertAction actionWithTitle:@"知道了" style:UIAlertActionStyleCancel handler:nil]]; [self presentViewController:alertVC animated:YES completion:nil]; }else{ UIAlertController *alertView = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerStyleAlert]; UIImagePickerController *PcCamera = [[UIImagePickerController alloc]init]; PcCamera.delegate = self; [DeviceDirectionManager instance].isHorizontal=YES; [alertView addAction:[UIAlertAction actionWithTitle:@"拍照" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { //拍照 if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { [PcCamera setSourceType:UIImagePickerControllerSourceTypeCamera]; PcCamera.allowsEditing = YES; [self presentViewController:PcCamera animated:YES completion:nil]; } else { [DeviceDirectionManager instance].isHorizontal=NO; [XBLoadingView showHUDViewWithText:@"相机无法使用"]; } }]]; [alertView addAction:[UIAlertAction actionWithTitle:@"从相册选择" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { //从相册中选择 if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) { [PcCamera setSourceType:UIImagePickerControllerSourceTypePhotoLibrary]; PcCamera.allowsEditing = YES; [self presentViewController:PcCamera animated:YES completion:nil]; } else { [DeviceDirectionManager instance].isHorizontal=NO; [XBLoadingView showHUDViewWithText:@"相册无法打开"]; } }]]; [alertView addAction:[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) { [DeviceDirectionManager instance].isHorizontal=NO; [alertView dismissViewControllerAnimated:YES completion:nil]; }]]; [self presentViewController:alertView animated:YES completion:nil]; } } #pragma mark -拍照、从相册选择 #pragma -mark -UIImagePickerControllerDelegate - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info { [DeviceDirectionManager instance].isHorizontal=NO; [self dismissViewControllerAnimated:YES completion:nil]; UIImage *Headimage = [info objectForKey:UIImagePickerControllerOriginalImage]; WS(weakSelf); //修改并保存头像 [self uploadUserHeader:Headimage completeBlock:^(NSString *string) { weakSelf.userHeader.image = Headimage; [Shoppersmanager manager].Shoppers.employee.picture = string; }]; } #pragma mark -保存选中头像、并上传 - (void)uploadUserHeader:(UIImage *)image completeBlock:(void(^)(NSString *string))complete { WS(weakSelf); NSData *data = UIImageJPEGRepresentation(image, 0.5); XBLoadingView *progressView = [XBLoadingView showHUDViewProgressLabel:@"上传头像中"]; [[NetworkRequestClassManager Manager] UploadImageWithURL:SERVERREQUESTURL(UPLOADHEADER) WithRequestType:ONE WithImageDatas:data WithParameter:nil WithReturnValueBlock:^(id returnValue) { if ([returnValue[@"code"] isEqualToNumber:@0]) { [weakSelf modifyshoppersInformation:returnValue[@"data"] complete:^{ complete(returnValue[@"data"]); }]; }else { [XBLoadingView showHUDViewWithText:returnValue[@"message"]]; } } WithprogressBlock:^(double progress) { if (progress >= 1) { progressView.labelText = @"上传完成"; [progressView hide:YES afterDelay:1]; }else{ progressView.progress = progress; } } WithFailureBlock:^(NSError *error) { [XBLoadingView showHUDViewWithText:error.localizedDescription]; }]; } #pragma mark -上传完成修改导购个人信息 - (void)modifyshoppersInformation:(NSString *)headerurl complete:(void(^)())block { [XBLoadingView showHUDViewWithDefault]; RsEmployeeRequest *employ = [[RsEmployeeRequest alloc]init]; employ.employee = [Shoppersmanager manager].Shoppers.employee; employ.employee.picture = headerurl; [[NetworkRequestClassManager Manager] NetworkRequestWithURL:SERVERREQUESTURL(MODITYSHOPPERSINFORMATION) WithRequestType:ZERO WithParameter:employ WithReturnValueBlock:^(id returnValue) { [XBLoadingView hideHUDViewWithDefault]; if ([returnValue[@"code"] isEqualToNumber:@0]) { block(); [XBLoadingView showHUDViewWithSuccessText:@"修改成功" completeBlock:nil]; }else { [XBLoadingView showHUDViewWithText:returnValue[@"message"]]; } }WithFailureBlock:^(NSError *error) { [XBLoadingView hideHUDViewWithDefault]; }]; } #pragma mark -修改密码 - (IBAction)ChangPasswordButtonClick:(UIButton *)sender { if ([self.delegate respondsToSelector:@selector(changPasswordButtonClick)]) { [self.delegate changPasswordButtonClick]; } } #pragma mark -注销《切换用户》 - (IBAction)cancellationButtonClick:(UIButton *)sender { UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:@"提示" message:@"切换用户将清空用户数据,是否继续?" preferredStyle:UIAlertControllerStyleAlert]; WS(weakSelf); [alertVC addAction:[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) { [weakSelf dismissViewControllerAnimated:YES completion:nil]; }]]; [alertVC addAction:[UIAlertAction actionWithTitle:@"确认" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) { [XBLoadingView showHUDViewWithDefault]; [[NetworkRequestClassManager Manager] NetworkWithDictionaryRequestWithURL:SERVERREQUESTURL(CANCELLOGIN) WithRequestType:ONE WithParameter:nil WithReturnValueBlock:^(id returnValue) { [XBLoadingView hideHUDViewWithDefault]; if ([returnValue[@"code"] isEqualToNumber:@0]) { [Shoppersmanager manager].currentCustomer = NO; [Customermanager manager].model = nil; LoginViewController *loginVC = [[[self class] getMainStoryboardClass] instantiateViewControllerWithIdentifier:@"Login"]; [[NSUserDefaults standardUserDefaults] removeObjectForKey:USERNAME]; [[NSUserDefaults standardUserDefaults] removeObjectForKey:PASSWORD]; [weakSelf restoreRootViewController:loginVC]; }else { [weakSelf promptCustomerWithString:@"切换用户失败"]; } } WithFailureBlock:^(id error) { [XBLoadingView hideHUDViewWithDefault]; }]; }]]; [self presentViewController:alertVC animated:YES completion:nil]; } #pragma mark -切换rootViewcontroller - (void)restoreRootViewController:(UIViewController *)rootViewController { typedef void (^Animation)(void); UIWindow* window = SHARED_APPDELEGATE.window; rootViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; Animation animation = ^{ BOOL oldState = [UIView areAnimationsEnabled]; [UIView setAnimationsEnabled:NO]; window.rootViewController = rootViewController; [UIView setAnimationsEnabled:oldState]; }; [UIView transitionWithView:window duration:0.5f options:UIViewAnimationOptionTransitionFlipFromBottom animations:animation completion:nil]; } #pragma mark -切换账户 - (IBAction)switchUserButtonClick:(UIButton *)sender { if ([[self class] isBlankString:self.userName.text]) { [XBLoadingView showHUDViewWithText:@"用户名不能为空"]; return; } if ([[self class] isBlankString:self.passWord.text]) { [XBLoadingView showHUDViewWithText:@"密码不能为空"]; return; } [XBLoadingView showHUDViewWithDefault]; LoginInfo *login = [[LoginInfo alloc]init]; login.username = self.userName.text; login.password = self.passWord.text; WS(weakSelf); [[NetworkRequestClassManager Manager] NetworkRequestWithURL:SERVERREQUESTURL(LOGIN) WithRequestType:ZERO WithParameter:login WithReturnValueBlock:^(id returnValue) { [XBLoadingView hideHUDViewWithDefault]; if ([returnValue[@"code"] isEqualToNumber:@0]) { [XBLoadingView showHUDViewWithSuccessText:@"登陆成功" completeBlock:nil]; LoginResult *result = [[LoginResult alloc] initWithDictionary:returnValue[@"data"] error:nil]; [Shoppersmanager manager].userNameString = weakSelf.userName.text; [Shoppersmanager manager].passWordString = weakSelf.passWord.text; [Shoppersmanager manager].currentCustomer = NO; [Shoppersmanager manager].Shoppers = result; [[NSNotificationCenter defaultCenter] postNotificationName:CHANGESHOPPERSNAME object:result.employee.realName]; [[NSNotificationCenter defaultCenter] postNotificationName:@"CHANGECUSTOMERNAME" object:nil]; [[NSNotificationCenter defaultCenter] postNotificationName:@"EMPTYCUSTOMERNAME" object:nil];//情况当前客户数据 //保存用户名密码 [[NSUserDefaults standardUserDefaults] setObject:weakSelf.userName.text forKey:USERNAME]; [[NSUserDefaults standardUserDefaults] setObject:weakSelf.passWord.text forKey:PASSWORD]; [[NSUserDefaults standardUserDefaults] synchronize]; [weakSelf dismissViewControllerAnimated:YES completion:nil]; }else { [XBLoadingView showHUDViewWithText:returnValue[@"message"]]; [weakSelf recoveryUsernamePasswrod]; } } WithFailureBlock:^(id error) { [XBLoadingView hideHUDViewWithDefault]; [weakSelf recoveryUsernamePasswrod]; }]; } #pragma mark -切换失败后账户密码复原 - (void)recoveryUsernamePasswrod { self.userName.text = [Shoppersmanager manager].userNameString; self.passWord.text = [Shoppersmanager manager].passWordString; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end