WithdrawController.m 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270
  1. //
  2. // WithdrawController.m
  3. // 千模
  4. //
  5. // Created by Drew on 2018/11/4.
  6. // Copyright © 2018年 MUMEI. All rights reserved.
  7. //
  8. #import "WithdrawController.h"
  9. #import "BindPhoneController.h"
  10. @interface WithdrawController () <UITextFieldDelegate> {
  11. NSString *amount;
  12. NSString *useAmount;
  13. NSString *name;
  14. NSString *account;
  15. }
  16. @property(weak, nonatomic) IBOutlet UILabel *labelName;
  17. @property(weak, nonatomic) IBOutlet UILabel *labelAccount;
  18. @property(weak, nonatomic) IBOutlet UITextField *tfAmount;
  19. @property(weak, nonatomic) IBOutlet UILabel *labelAvailable;
  20. @property(weak, nonatomic) IBOutlet UIButton *btnSubmit;
  21. @property(weak, nonatomic) IBOutlet UIView *successView;
  22. @property(weak, nonatomic) IBOutlet UIButton *btnBack;
  23. @end
  24. @implementation WithdrawController
  25. - (void)viewDidLoad {
  26. [super viewDidLoad];
  27. UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
  28. btn.frame = CGRectMake(0, 0, 40, 40);
  29. [btn setImage:[UIImage imageNamed:@"backBtn"] forState:UIControlStateNormal];
  30. btn.imageEdgeInsets = UIEdgeInsetsMake(0, -20, 0, 0);
  31. [btn addTarget:self action:@selector(backClick) forControlEvents:UIControlEventTouchUpInside];
  32. UIBarButtonItem *leftItem = [[UIBarButtonItem alloc] initWithCustomView:btn];
  33. UIBarButtonItem *nagetiveSpacer = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
  34. nagetiveSpacer.width = -12;//这个值可以根据自己需要自己调整
  35. self.navigationItem.leftBarButtonItems = @[nagetiveSpacer, leftItem];
  36. self.navigationItem.title = @"申请提现";
  37. self.btnSubmit.layer.cornerRadius = 22;
  38. self.btnSubmit.layer.shadowColor = [UIColor colorWithRed:255 / 255.0 green:64 / 255.0 blue:149 / 255.0 alpha:0.36].CGColor;
  39. self.btnSubmit.layer.shadowOffset = CGSizeMake(0, 8);
  40. self.btnSubmit.layer.shadowOpacity = 1;
  41. self.btnSubmit.layer.shadowRadius = 10;
  42. self.btnBack.layer.cornerRadius = 22;
  43. self.btnBack.layer.shadowColor = [UIColor colorWithRed:255 / 255.0 green:64 / 255.0 blue:149 / 255.0 alpha:0.36].CGColor;
  44. self.btnBack.layer.shadowOffset = CGSizeMake(0, 8);
  45. self.btnBack.layer.shadowOpacity = 1;
  46. self.btnBack.layer.shadowRadius = 10;
  47. self.tfAmount.delegate = self;
  48. useAmount = @"0";
  49. self.labelName.text = @"去绑定";
  50. self.labelName.font = [UIFont systemFontOfSize:14];
  51. self.labelName.textColor = [UIColor colorWithHexString:@"#AAACAD"];
  52. self.labelAccount.text = @"去绑定";
  53. self.labelAccount.font = [UIFont systemFontOfSize:14];
  54. self.labelAccount.textColor = [UIColor colorWithHexString:@"#AAACAD"];
  55. NSString *holderStr3 = @"请输入提现金额";
  56. NSMutableAttributedString *placeholder3 = [[NSMutableAttributedString alloc] initWithString:holderStr3];
  57. [placeholder3 addAttribute:NSFontAttributeName
  58. value:[UIFont systemFontOfSize:14]
  59. range:NSMakeRange(0, holderStr3.length)];
  60. self.tfAmount.attributedPlaceholder = placeholder3;
  61. }
  62. - (void)viewWillAppear:(BOOL)animated {
  63. [super viewWillAppear:animated];
  64. [self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
  65. [self.navigationController.navigationBar setShadowImage:[UIImage new]];
  66. [self getDataFromNetworking];
  67. }
  68. - (void)viewWillDisappear:(BOOL)animated {
  69. [super viewWillDisappear:animated];
  70. [self.navigationController.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
  71. [self.navigationController.navigationBar setShadowImage:nil];
  72. }
  73. - (void)updateUI {
  74. self.labelAvailable.text = [NSString stringWithFormat:@"最多可提现%@元", useAmount];
  75. if (name.length > 0 && account.length > 0) {
  76. self.labelName.text = name;
  77. self.labelName.font = [UIFont systemFontOfSize:16];
  78. self.labelName.textColor = [UIColor blackColor];
  79. self.labelAccount.text = account;
  80. self.labelAccount.font = [UIFont systemFontOfSize:16];
  81. self.labelAccount.textColor = [UIColor blackColor];
  82. } else {
  83. self.labelName.text = @"去绑定";
  84. self.labelName.font = [UIFont systemFontOfSize:14];
  85. self.labelName.textColor = [UIColor colorWithHexString:@"#AAACAD"];
  86. self.labelAccount.text = @"去绑定";
  87. self.labelAccount.font = [UIFont systemFontOfSize:14];
  88. self.labelAccount.textColor = [UIColor colorWithHexString:@"#AAACAD"];
  89. }
  90. }
  91. - (void)backClick {
  92. if (self.callback) {
  93. self.callback(amount);
  94. }
  95. [self.navigationController popViewControllerAnimated:YES];
  96. }
  97. - (IBAction)bindAlipay:(id)sender {
  98. BindPhoneController *bindPhoneVC = [[BindPhoneController alloc] init];
  99. [self.navigationController pushViewController:bindPhoneVC animated:YES];
  100. }
  101. - (void)getDataFromNetworking {
  102. [MBProgressHUD showHUDAddedTo:self.view animated:YES];
  103. ModelUser *modelUser = [ModelUser user];
  104. NSDictionary *dic = @{@"modelpk": modelUser.modelpk};
  105. [YanCNetWorkManager requestPostWithURLStr:Url_alipayoutcashload(PublicUrl)
  106. parameters:dic
  107. finish:^(id dataDic) {
  108. [MBProgressHUD hideHUDForView:self.view animated:YES];
  109. NSString *issuccess = dataDic[@"msg"];
  110. if ([issuccess isEqualToString:@"success"]) {
  111. NSDictionary *data = dataDic[@"data"];
  112. amount = data[@"coin_a"];
  113. useAmount = data[@"coin_use"];
  114. name = data[@"name"];
  115. account = data[@"alipayid"];
  116. [self updateUI];
  117. } else {
  118. [MBProgressHUD showInfo:@"请求失败!"];
  119. }
  120. }
  121. enError:^(NSError *error) {
  122. [MBProgressHUD hideHUDForView:self.view animated:YES];
  123. }];
  124. }
  125. - (IBAction)back:(id)sender {
  126. [self backClick];
  127. }
  128. - (IBAction)submit:(id)sender {
  129. NSString *fee = self.tfAmount.text;
  130. if (name.length == 0) {
  131. [MBProgressHUD showInfo:@"请先绑定提现账号"];
  132. return;
  133. }
  134. if (account.length == 0) {
  135. [MBProgressHUD showInfo:@"请先绑定提现账号"];
  136. return;
  137. }
  138. if (fee.length == 0) {
  139. [MBProgressHUD showInfo:@"请输入提现金额"];
  140. return;
  141. }
  142. NSDecimalNumber *number = [NSDecimalNumber decimalNumberWithString:fee];
  143. if ([number doubleValue] <= 0) {
  144. [MBProgressHUD showInfo:@"请输入正确的金额"];
  145. return;
  146. }
  147. if ([number doubleValue] > [useAmount doubleValue]) {
  148. [MBProgressHUD showInfo:[NSString stringWithFormat:@"最多可提现%@元", useAmount]];
  149. return;
  150. }
  151. NSDictionary *dic = @{@"modelpk": [ModelUser user].modelpk, @"fee": fee};
  152. [YanCNetWorkManager requestPostWithURLStr:Url_alipayoutcash(PublicUrl)
  153. parameters:dic
  154. finish:^(id dataDic) {
  155. [MBProgressHUD hideHUDForView:self.view animated:YES];
  156. NSString *issuccess = dataDic[@"msg"];
  157. if ([issuccess isEqualToString:@"success"]) {
  158. NSDictionary *data = dataDic[@"data"];
  159. amount = data[@"coin_a"];
  160. useAmount = data[@"coin_use"];
  161. name = data[@"name"];
  162. account = data[@"alipayid"];
  163. [self updateUI];
  164. self.tfAmount.text = @"";
  165. self.successView.hidden = NO;
  166. } else {
  167. [self.view makeToast:@"提现申请提交失败" duration:2 position:CSToastPositionCenter];
  168. }
  169. }
  170. enError:^(NSError *error) {
  171. [MBProgressHUD hideHUDForView:self.view animated:YES];
  172. }];
  173. }
  174. /*
  175. #pragma mark - Navigation
  176. // In a storyboard-based application, you will often want to do a little preparation before navigation
  177. - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
  178. // Get the new view controller using [segue destinationViewController].
  179. // Pass the selected object to the new view controller.
  180. }
  181. */
  182. #pragma mark - textFieldDelegate
  183. //长度判断
  184. - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
  185. if (textField == self.tfAmount) {
  186. NSScanner *scanner = [NSScanner scannerWithString:string];
  187. NSCharacterSet *numbers;
  188. NSRange pointRange = [textField.text rangeOfString:@"."];
  189. if ((pointRange.length > 0) && (pointRange.location < range.location || pointRange.location > range.location + range.length)) {
  190. numbers = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"];
  191. } else {
  192. numbers = [NSCharacterSet characterSetWithCharactersInString:@"0123456789."];
  193. }
  194. if ([textField.text isEqualToString:@""] && [string isEqualToString:@"."]) {
  195. return NO;
  196. }
  197. short remain = 2;//默认保留2位小数
  198. NSString *tempStr = [textField.text stringByAppendingString:string]; // 原来的字符+当前输入的字符
  199. NSUInteger strlen = [tempStr length];
  200. if (pointRange.length > 0 && pointRange.location > 0) {//判断输入框内是否含有“.”。
  201. if ([string isEqualToString:@"."]) { //当输入框内已经含有“.”时,如果再输入“.”则被视为无效。
  202. return NO;
  203. }
  204. if (strlen > 0 && (strlen - pointRange.location) > remain + 1) {//当输入框内已经含有“.”,当字符串长度减去小数点前面的字符串长度大于需要要保留的小数点位数,则视当次输入无效。
  205. return NO;
  206. }
  207. }
  208. NSRange zeroRange = [textField.text rangeOfString:@"0"];
  209. if (zeroRange.length == 1 && zeroRange.location == 0) {//判断输入框第一个字符是否为“0”
  210. if (![string isEqualToString:@"0"] && ![string isEqualToString:@"."] && [textField.text length] == 1) {//当输入框只有一个字符并且字符为“0”时,再输入不为“0”或者“.”的字符时,则将此输入替换输入框的这唯一字符。
  211. textField.text = string;
  212. return NO;
  213. } else {
  214. if (pointRange.length == 0 && pointRange.location > 0) {//当输入框第一个字符为“0”时,并且没有“.”字符时,如果当此输入的字符为“0”,则视当此输入无效。
  215. if ([string isEqualToString:@"0"]) {
  216. return NO;
  217. }
  218. }
  219. }
  220. }
  221. NSString *buffer;
  222. if (![scanner scanCharactersFromSet:numbers intoString:&buffer] && ([string length] != 0)) {
  223. return NO;
  224. }
  225. // 大于10亿的时候不能再编辑
  226. if ([tempStr longLongValue] >= 1000000000) {
  227. return NO;
  228. }
  229. }
  230. if ([string isEqualToString:@"."]) {
  231. if (range.location + 2 < textField.text.length) {
  232. NSMutableString *notFormatString = [[NSMutableString alloc] initWithString:[textField.text substringWithRange:NSMakeRange(0, range.location + 2)]];
  233. [notFormatString insertString:@"." atIndex:range.location];
  234. textField.text = notFormatString;
  235. return false;
  236. }
  237. }
  238. return YES;
  239. }
  240. @end