UserViewController.m 12.8 KB
Newer Older
曹云霄's avatar
曹云霄 committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321
//
//  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"
#import "JPUSHService.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:GuideReplaceImage];
}

#pragma mark - 添加添加手势
- (void)addGestureRecognizer
{
    [self.rebateBackView addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(rebateViewClickAction:)]];
    [self.guideIntegralView addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(guideIntegralViewClickAction:)]];
    [self.userHeader addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(userHeaderClickAction:)]];
}

#pragma mark -我的账户点击
- (void)rebateViewClickAction:(UITapGestureRecognizer *)tap
{
    SHARED_APPDELEGATE.tabBarController.selectedIndex = 4;
    [SHARED_APPDELEGATE.tabBarController dismissViewControllerAnimated:YES completion:nil];
}

#pragma mark - 我的积分
- (void)guideIntegralViewClickAction:(UITapGestureRecognizer *)sender
{
    SHARED_APPDELEGATE.tabBarController.selectedIndex = 5;
    [SHARED_APPDELEGATE.tabBarController dismissViewControllerAnimated:YES completion:nil];
}

#pragma mark -用户头像点击
- (void)userHeaderClickAction:(UITapGestureRecognizer *)tap
{
    // 判断应用是否有使用相机的权限
    if([BaseViewController determineCameraPermissions]){
        UIImagePickerController *PcCamera = [[UIImagePickerController alloc]init];
        PcCamera.delegate = self;
        [DeviceDirectionManager instance].isHorizontal=YES;
        WS(weakSelf);
        ShowAlertView(@"请选择", nil, @[@"拍照",@"从相册选择",@"取消"], UIAlertControllerStyleAlert, ^(NSInteger index) {
            if (index == ZERO) {
                //拍照
                if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
                    [PcCamera setSourceType:UIImagePickerControllerSourceTypeCamera];
                    PcCamera.allowsEditing = YES;
                    dispatch_async(dispatch_get_main_queue(), ^{
                        [weakSelf presentViewController:PcCamera animated:YES completion:nil];
                    });
                }
                else
                {
                    [XBLoadingView showHUDViewWithText:@"相机无法使用"];
                    [DeviceDirectionManager instance].isHorizontal=NO;
                }
            }else if (index == ONE) {
                //从相册中选择
                if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {
                    [PcCamera setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
                    PcCamera.allowsEditing = YES;
                    dispatch_async(dispatch_get_main_queue(), ^{
                        [weakSelf presentViewController:PcCamera animated:YES completion:nil];
                    });
                }
                else
                {
                    [XBLoadingView showHUDViewWithText:@"相册无法打开"];
                    [DeviceDirectionManager instance].isHorizontal=NO;
                }
            }else {
                [DeviceDirectionManager instance].isHorizontal=NO;
            }
        });
    }
 }

#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:@"上传头像中"];
    [HTTP uploadImageWithURL:SERVERREQUESTURL(UPLOADHEADER) withRequestType:ONE withImageDatas:data withParameter:nil withReturnValueBlock:^(id returnValue) {
        
        if (RESULT(returnValue)) {
            [weakSelf modifyshoppersInformation:RESPONSE(returnValue) complete:^{
                 complete(RESPONSE(returnValue));
            }];
        }else
        {
            [XBLoadingView showHUDViewWithText:MESSAGE(returnValue)];
        }
    } withprogressBlock:^(double progress) {
        
        if (progress >= 1) {
            dispatch_async(dispatch_get_main_queue(), ^{
                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;
    [HTTP networkRequestWithURL:SERVERREQUESTURL(MODITYshoppersINFORMATION)  withRequestType:ZERO withParameter:employ withReturnValueBlock:^(id returnValue) {
        
        [XBLoadingView hideHUDViewWithDefault];
        if (RESULT(returnValue)) {
            block();
            [XBLoadingView showHUDViewWithSuccessText:@"修改成功" completeBlock:nil];
        }else
        {
            [XBLoadingView showHUDViewWithText:MESSAGE(returnValue)];
        }
    }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 {
    
    WS(weakSelf);
    ShowAlertView(@"提示", @"切换用户将清空用户数据,是否继续?", @[@"确认",@"取消"], UIAlertControllerStyleAlert, ^(NSInteger index) {
        if (index == ONE) {
            return;
        }
        //清除极光别名
        [JPUSHService setTags:nil alias:@"" callbackSelector:nil object:nil];
        [XBLoadingView showHUDViewWithDefault];
        [HTTP networkWithDictionaryRequestWithURL:SERVERREQUESTURL(CANCELLOGIN)  withRequestType:ONE withParameter:nil withReturnValueBlock:^(id returnValue) {
            
            [XBLoadingView hideHUDViewWithDefault];
            if (RESULT(returnValue)) {
                
                [Shoppersmanager manager].currentCustomer = NO;
                [Customermanager manager].model = nil;
                LoginViewController *loginVC = [[[weakSelf class] getMainStoryboardClass] instantiateViewControllerWithIdentifier:@"Login"];
                [[weakSelf class] deleteAccountAndPassWord];
                [weakSelf restoreRootViewController:loginVC];
                
            }else
            {
                ShowAlertView(@"提示", @"切换用户失败", @[@"我知道了"], UIAlertControllerStyleAlert, nil);
            }
        } withFailureBlock:^(id error) {
            [XBLoadingView hideHUDViewWithDefault];
        }];
    });
}


#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);
    [HTTP networkRequestWithURL:SERVERREQUESTURL(LOGIN)  withRequestType:ZERO withParameter:login withReturnValueBlock:^(id returnValue) {
        
        [XBLoadingView hideHUDViewWithDefault];
        if (RESULT(returnValue)) {
            
            [XBLoadingView showHUDViewWithSuccessText:@"登陆成功" completeBlock:nil];
            LoginResult *result = [[LoginResult alloc] initWithDictionary:RESPONSE(returnValue) error:nil];
            [Shoppersmanager manager].userNameString = weakSelf.userName.text;
            [Shoppersmanager manager].passWordString = weakSelf.passWord.text;
            [Shoppersmanager manager].currentCustomer = NO;
            [Shoppersmanager manager].shoppers = result;
            [Notification postNotificationName:CHANGEshoppersNAME object:result.employee.realName];
            [Notification postNotificationName:@"CHANGECUSTOMERNAME" object:nil];
            [Notification postNotificationName:@"EMPTYCUSTOMERNAME" object:nil];//清空当前客户数据
            //保存用户名密码
            [[weakSelf class] saveAccountAndPassWord:weakSelf.userName.text AndPassword:weakSelf.passWord.text];
            [weakSelf dismissViewControllerAnimated:YES completion:nil];
            
        }else
        {
            [XBLoadingView showHUDViewWithText:MESSAGE(returnValue)];
            [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