HJLoginDataBox.m 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. //
  2. // HJLoginDataBox.m
  3. // HappyJob
  4. //
  5. // Created by Bob on 2019/3/29.
  6. // Copyright © 2019 Bob. All rights reserved.
  7. //
  8. #import "HJLoginDataBox.h"
  9. #import "HJUserInfoModel.h"
  10. #import "HJLoginGetAuthCodeAPIManager.h"
  11. #import "HJLoginPhoneLoginAPIManager.h"
  12. #import "HJLoginWeChatLoginAPIManager.h"
  13. #import "HJLoginBindingPhoneAPIManager.h"
  14. #import "HJLoginInfoMergeAPI.h"
  15. @implementation HJLoginDataBox
  16. - (id)manager:(FBBaseAPIManager *)manager boxingData:(NSDictionary *)data {
  17. // NSLog(@"-----------------");
  18. FBAPIManagerErrorType type = manager.errorType;
  19. if (type == FBAPIManagerErrorTypeNoError)
  20. {
  21. //获得验证码
  22. if ([manager isKindOfClass:[HJLoginGetAuthCodeAPIManager class]])
  23. {
  24. return [data valueForKeyPath:@"data.code"];
  25. }
  26. //手机号登录
  27. if ([manager isKindOfClass:[HJLoginPhoneLoginAPIManager class]])
  28. {
  29. [[HJAppUserType sharedInstance] setLogin_type:@"1"];
  30. [[HJAppUserType sharedInstance] saveUserType];
  31. return [self dealwithReturnValue:manager boxingData:data];
  32. }
  33. //微信登录
  34. if ([manager isKindOfClass:[HJLoginWeChatLoginAPIManager class]])
  35. {
  36. [[HJAppUserType sharedInstance] setLogin_type:@""];
  37. [[HJAppUserType sharedInstance] saveUserType];
  38. if (((HJLoginWeChatLoginAPIManager *)manager).type == HJLoginWeChatLoginAPIManagerTypeBinding)
  39. {
  40. HJLoginBindingPhoneAPIManager *bindingPhoneAPIManager = [[HJLoginBindingPhoneAPIManager alloc] init];
  41. bindingPhoneAPIManager.openID = [data valueForKeyPath:@"data.openId"];
  42. bindingPhoneAPIManager.unionID = [data valueForKeyPath:@"data.unionId"];
  43. return bindingPhoneAPIManager;
  44. }
  45. else
  46. {
  47. return [self dealwithReturnValue:manager boxingData:data];
  48. }
  49. }
  50. //微信绑定的
  51. if ([manager isKindOfClass:[HJLoginBindingPhoneAPIManager class]])
  52. {
  53. return [self dealwithReturnValue:manager boxingData:data];
  54. }
  55. //合并信息
  56. if ([manager isKindOfClass:[HJLoginInfoMergeAPI class]])
  57. {
  58. [self saveUserInfo:data];
  59. return [data valueForKey:@"errmsg"];
  60. }
  61. }
  62. else if (type == FBAPIManagerErrorTypeNoContent)
  63. {
  64. return [data valueForKey:@"errmsg"];
  65. }
  66. else
  67. {
  68. return manager.errorMessage;
  69. }
  70. return data;
  71. }
  72. #pragma mark - private methods
  73. - (id)dealwithReturnValue:(FBBaseAPIManager *)manager boxingData:(NSDictionary *)data {
  74. if ([data[@"errcode"] integerValue] == 0 )
  75. {
  76. [self saveUserInfo:data];
  77. return data;
  78. }
  79. else if ([data[@"errcode"] integerValue] == 2009 )
  80. {
  81. return data;
  82. }
  83. else
  84. {
  85. return [data valueForKey:@"errmsg"];
  86. }
  87. }
  88. - (void)saveUserInfo:(NSDictionary *)dict {
  89. [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"userType"];//用户类型 yes 企业 0 非企业
  90. // 存储用户信息
  91. HJUserInfoModel *userInfo = [HJUserInfoModel yy_modelWithJSON:[dict valueForKeyPath:@"data.hpUser"]];
  92. [HJUserInfoModel setUserInfo:userInfo];
  93. HJMemberInfoModel *memberInfo = [HJMemberInfoModel yy_modelWithJSON:[dict valueForKeyPath:@"data.hpMember"]];
  94. [HJMemberInfoModel setMemberInfo:memberInfo];
  95. //登录通知刷新
  96. [[NSNotificationCenter defaultCenter] postNotificationName:@"loginRefreshNotification" object:nil];
  97. }
  98. @end