SettingsNumChangeViewController.m 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. //
  2. // SettingsNumChangeViewController.m
  3. // OneCable
  4. //
  5. // Created by nComz on 2017. 4. 19..
  6. // Copyright © 2017년 ntels. All rights reserved.
  7. //
  8. #import "SettingsNumChangeViewController.h"
  9. #import "CustomButton.h"
  10. #import "CustomLabel.h"
  11. #import "CustomTextField.h"
  12. #import "JDObject.h"
  13. #import "RequestHandler.h"
  14. #import "JDJSONModel.h"
  15. #import "ValidateUtil.h"
  16. #import "SettingsViewController.h"
  17. @interface SettingsNumChangeViewController () <CustomTextFieldDelegate> {
  18. }
  19. @end
  20. @implementation SettingsNumChangeViewController
  21. - (void)viewDidLoad {
  22. [super viewDidLoad];
  23. [self initUI];
  24. }
  25. - (void)initUI {
  26. UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];
  27. statusBar.backgroundColor = [UIColor whiteColor];
  28. _lblMessage.hidden = YES;
  29. _btnSend.enabled = NO;
  30. _btnConfirm.enabled = NO;
  31. // _lblRemainTime.hidden = YES;
  32. _txtInputNum.returnKeyType = UIReturnKeyDone;
  33. _txtInputNum.keyboardType = UIKeyboardTypeNumberPad;
  34. _txtInputNum.delegate = self;
  35. _txtInputAuthNum.returnKeyType = UIReturnKeyDone;
  36. _txtInputAuthNum.keyboardType = UIKeyboardTypeNumberPad;
  37. _txtInputAuthNum.delegate = self;
  38. [self.navigationController.navigationBar setHidden:YES];
  39. self.navigationController.interactivePopGestureRecognizer.enabled = NO;
  40. }
  41. - (IBAction)btnSendTouched:(id)sender {
  42. // //validate
  43. // if (![ValidateUtil validateTextfiled:_txtInputNum type:ValidateTypeNumber title:NSLocalizedString(@"이름", @"이름")]) {
  44. // return;
  45. // }
  46. [self requestAuthNum];
  47. }
  48. - (IBAction)btnCancelTouched:(id)sender {
  49. // 설정 페이지로 이동
  50. [[self navigationController] popToRootViewControllerAnimated:YES];
  51. }
  52. - (IBAction)btnConfirmTouched:(id)sender {
  53. [self requestChangePhoneNumber];
  54. }
  55. - (void)requestChangePhoneNumber {
  56. //parameters
  57. NSDictionary *parameter = @{@"phone": _txtInputNum.text,
  58. @"auth_number": _txtInputAuthNum.text };
  59. NSString *path = [[JDFacade facade] getUrlWithCustGroupIDAndMemberID:API_PUT_CHANGE_PHONE_NUM];
  60. [[RequestHandler handler] sendAsyncPutRequestAPIPath:path parameters:parameter modelClass:[JDJSONModel class] completion:^(id responseObject) {
  61. // if (!responseObject) {//응답결과가 잘못되었거나 없을 경우,
  62. // return;
  63. // }
  64. //
  65. // JDJSONModel *result = (JDJSONModel *) responseObject;
  66. //
  67. // if (result) {//API 성공 ,
  68. //
  69. // }
  70. [[JDFacade facade] toast:NSLocalizedString(@"휴대폰 번호가 변경되었습니다.", nil)];
  71. [JDFacade facade].loginUser.phone = _txtInputNum.text;
  72. [[self navigationController] popViewControllerAnimated:YES];
  73. } failure:^(id errorObject) {
  74. JDErrorModel *error = (JDErrorModel *)errorObject;
  75. [[JDFacade facade] alert:error.errorMessage];
  76. }];
  77. }
  78. - (void)requestAuthNum {
  79. //parameters
  80. NSDictionary *parameter = @{@"cust_id": [JDFacade facade].loginUser.custId,
  81. @"ctrt_grp_id": [JDFacade facade].loginUser.ctrtGrpId,
  82. @"phone": _txtInputNum.text,
  83. @"auth_type": @"1" };
  84. NSString *path = [NSString stringWithFormat:API_POST_REQUEST_AUTH_NUM];
  85. [[RequestHandler handler] sendAsyncPostRequestAPIPath:path parameters:parameter modelClass:[JDJSONModel class] completion:^(id responseObject) {
  86. NSLog(@"requestAuthNum : %@", responseObject);
  87. [_btnSend setTitle: @"인증번호 재전송" forState : UIControlStateNormal];
  88. _lblMessage.hidden = NO;
  89. } failure:^(id errorObject) {
  90. JDErrorModel *error = (JDErrorModel *)errorObject;
  91. [[JDFacade facade] alert:error.errorMessage];
  92. _lblMessage.hidden = NO;
  93. _lblMessage.text = error.errorMessage;
  94. }];
  95. }
  96. - (BOOL)textFieldShouldReturn:(UITextField *)textField {
  97. if ([textField isEqual:_txtInputNum]) {
  98. [textField resignFirstResponder];
  99. }
  100. if ([textField isEqual:_txtInputAuthNum]) {
  101. [textField resignFirstResponder];
  102. }
  103. return YES;
  104. }
  105. - (void)textFieldDidEndEditing:(UITextField *)textField{
  106. if (_txtInputNum.text.length >= 10) {
  107. _btnConfirm.enabled = YES;
  108. _btnSend.enabled = YES;
  109. } else {
  110. _btnSend.enabled = NO;
  111. }
  112. if (_txtInputAuthNum.text.length >= 4){
  113. _btnConfirm.enabled = YES;
  114. } else {
  115. _btnConfirm.enabled = NO;
  116. }
  117. }
  118. - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
  119. if ([textField isEqual:_txtInputNum]) {
  120. if (textField.text.length >= 11 && range.length == 0) {
  121. return NO;
  122. }
  123. } else {
  124. if (textField.text.length >= 4 && range.length == 0) {
  125. return NO;
  126. }
  127. }
  128. return YES;
  129. }
  130. - (void)didReceiveMemoryWarning {
  131. [super didReceiveMemoryWarning];
  132. }
  133. @end