UserInfo.m 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303
  1. #import "UserInfo.h"
  2. /**infoKeys是用来在userDefault里面存取数据的
  3. 要求:避免重复。
  4. */
  5. static NSArray* infoKeys;
  6. static UserInfo* userInfo = nil;
  7. void SaveObjectForKey(id object, NSString* key);
  8. @implementation UserInfo
  9. +(UserInfo*)shareInfo
  10. {
  11. static dispatch_once_t onceToken ;
  12. dispatch_once(&onceToken, ^{
  13. userInfo = [[UserInfo alloc] init] ;
  14. //这个和登录返回的用户车型无关 car_type 保存的是用户选择的题库类型
  15. infoKeys = @[@"car_type",@"userSchoolName",@"userSubj1Index",@"userSubj4Index",@"userNickName",@"userSex",@"userDict",@"userSchDict",@"isWelcomed",@"adPaths",@"user1Index",@"user4Index",@"userCoach",@"A2Subj1Index",@"A2Subj4Index",@"A1Subj1Index",@"A1Subj4Index",@"DSubj1Index",@"DSubj4Index",@"coachIndex",@"A1Index",@"A2Index",@"dangerIndex",@"texiIndex",@"isZhiGeZheng",@"wycIndex"];
  16. NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
  17. int i = 0;
  18. for (NSString* key in infoKeys)
  19. {
  20. if (i > infoKeys.count-1) {
  21. break;
  22. }
  23. if (i == 6){
  24. userInfo.userDict = [ud objectForKey:key] ;
  25. }else{
  26. [userInfo setValue:[ud objectForKey:key] forKey:infoKeys[i]];
  27. }
  28. i++;
  29. }
  30. }) ;
  31. return userInfo ;
  32. }
  33. +(void)saveObject:(id)object forKey:(NSString*)key
  34. {
  35. NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
  36. [ud setObject:object forKey:key];
  37. [ud synchronize];
  38. }
  39. -(void)removeUserInfo
  40. {
  41. defUser.userSchDict = nil;
  42. defUser.userDict = nil;
  43. defUser.userCoach = nil;
  44. if ([defUser.car_type isEqualToString:@"2"]) {
  45. RQ_SHARE_FUNCTION.myErorNum = [DB_Que_Helper queryGZPZ_EXAM_CYRYMarkQuestionWithMarkType:@"1"];
  46. } else {
  47. // RQ_SHARE_FUNCTION.myErorNum = [DB_Que_Helper queryMarkQuestionWithMarkType:@"1"];
  48. }
  49. }
  50. #pragma mark -
  51. -(NSString*) sfzmhm
  52. {
  53. if ([defUser.userDict[@"loginCode"] length] < 1) {
  54. return @"";
  55. }
  56. return defUser.userDict[@"loginCode"];
  57. }
  58. -(void)setCar_type:(NSString *)car_type
  59. {
  60. _car_type = car_type;
  61. SaveObjectForKey(car_type, infoKeys[0]);
  62. }
  63. -(void)setUserSchoolName:(NSString *)str
  64. {
  65. _userSchoolName = str;
  66. SaveObjectForKey(str, infoKeys[1]);
  67. }
  68. -(void)setUserSubj1Index:(NSString *)str{
  69. _userSubj1Index = str;
  70. SaveObjectForKey(str, infoKeys[2]);
  71. }
  72. -(void)setUserSubj4Index:(NSString *)str{
  73. _userSubj4Index = str;
  74. SaveObjectForKey(str, infoKeys[3]);
  75. }
  76. -(void)setUser1Index:(NSString *)str{
  77. _user1Index = str;
  78. SaveObjectForKey(str, infoKeys[10]);
  79. }
  80. -(void)setUser4Index:(NSString *)str{
  81. _user4Index = str;
  82. SaveObjectForKey(str, infoKeys[11]);
  83. }
  84. //这是教练的信息
  85. -(void)setUserCoach:(NSArray *)str{
  86. _userCoach = str;
  87. SaveObjectForKey(str, infoKeys[12]);
  88. }
  89. -(void)setUserNickName:(NSString *)userNickName{
  90. _userNickName = userNickName;
  91. SaveObjectForKey(userNickName, infoKeys[4]);
  92. }
  93. -(void)setUserSex:(NSString *)userSex{
  94. _userSex = userSex;
  95. SaveObjectForKey(userSex, infoKeys[5]);
  96. }
  97. -(void)setUserDict:(NSDictionary *)userDict
  98. {
  99. _userDict = userDict;
  100. SaveObjectForKey(userDict, infoKeys[6]);
  101. _userSchoolName = userDict[@"schoolName"];
  102. _userName = userDict[@"userName"];
  103. _userSchoolId = userDict[@"school"];
  104. _userStuId = userDict[@"outId"];
  105. _userTel = userDict[@"telphone"];
  106. // _car_type = userDict[@"carType"];这个和登录返回的用户车型无关 无关 无关
  107. //计算年龄
  108. NSString * string = userDict[@"birthday"];
  109. _userAge = @"";
  110. if (string.length != 0) {
  111. NSDateFormatter *inputFormatter= [[NSDateFormatter alloc] init];
  112. inputFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
  113. [inputFormatter setDateFormat:@"yyyy-MM-dd"];
  114. NSDate * date = [inputFormatter dateFromString:string];
  115. NSTimeInterval dateDiff = [date timeIntervalSinceNow];
  116. int age= trunc(dateDiff/(60*60*24))/365;
  117. age = ~(age - 1);
  118. if (age != 0) {
  119. _userAge = [NSString stringWithFormat:@"%d",age];
  120. }
  121. }
  122. _userHeadImg = userDict[@"photo"];
  123. _userSex = userDict[@"sex"];
  124. }
  125. -(void)setUserSchDict:(NSDictionary *)userSchDict
  126. {
  127. _userSchDict = userSchDict;
  128. SaveObjectForKey(userSchDict, infoKeys[7]);
  129. }
  130. -(void)setIsWelcomed:(NSString *)isWelcomed
  131. {
  132. _isWelcomed = isWelcomed;
  133. SaveObjectForKey(isWelcomed, infoKeys[8]);
  134. }
  135. -(void)setAdPaths:(NSArray *)adPaths
  136. {
  137. _adPaths = adPaths;
  138. SaveObjectForKey(adPaths, infoKeys[9]);
  139. }
  140. -(void)setA2Subj1Index:(NSString *)A2Subj1Index
  141. {
  142. _A2Subj1Index = A2Subj1Index;
  143. SaveObjectForKey(A2Subj1Index, infoKeys[13]);
  144. }
  145. -(void)setA2Subj4Index:(NSString *)A2Subj4Index
  146. {
  147. _A2Subj4Index = A2Subj4Index;
  148. SaveObjectForKey(A2Subj4Index, infoKeys[14]);
  149. }
  150. -(void)setA1Subj1Index:(NSString *)A1Subj1Index
  151. {
  152. _A1Subj1Index = A1Subj1Index;
  153. SaveObjectForKey(A1Subj1Index, infoKeys[15]);
  154. }
  155. -(void)setA1Subj4Index:(NSString *)A1Subj4Index
  156. {
  157. _A1Subj4Index = A1Subj4Index;
  158. SaveObjectForKey(A1Subj4Index, infoKeys[16]);
  159. }
  160. -(void)setDSubj1Index:(NSString *)DSubj1Index
  161. {
  162. _DSubj1Index = DSubj1Index;
  163. SaveObjectForKey(DSubj1Index, infoKeys[17]);
  164. }
  165. -(void)setDSubj4Index:(NSString *)DSubj4Index
  166. {
  167. _DSubj1Index = DSubj4Index;
  168. SaveObjectForKey(DSubj4Index, infoKeys[18]);
  169. }
  170. -(void)setCoachIndex:(NSString *)coachIndex
  171. {
  172. _coachIndex = coachIndex;
  173. SaveObjectForKey(coachIndex, infoKeys[19]);
  174. }
  175. -(void)setA1Index:(NSString *)A1Index
  176. {
  177. _A1Index = A1Index;
  178. SaveObjectForKey(A1Index, infoKeys[20]);
  179. }
  180. -(void)setA2Index:(NSString *)A2Index
  181. {
  182. _A2Index = A2Index;
  183. SaveObjectForKey(A2Index, infoKeys[21]);
  184. }
  185. -(void)setDangerIndex:(NSString *)dangerIndex
  186. {
  187. _dangerIndex = dangerIndex;
  188. SaveObjectForKey(dangerIndex, infoKeys[22]);
  189. }
  190. -(void)setTexiIndex:(NSString *)texiIndex
  191. {
  192. _texiIndex = texiIndex;
  193. SaveObjectForKey(texiIndex, infoKeys[23]);
  194. }
  195. -(void)setIsZhiGeZheng:(NSString *)isZhiGeZheng
  196. {
  197. _isZhiGeZheng = isZhiGeZheng;
  198. SaveObjectForKey(isZhiGeZheng, infoKeys[24]);
  199. }
  200. - (void)setWycIndex:(NSString *)wycIndex {
  201. _wycIndex = wycIndex;
  202. SaveObjectForKey(wycIndex, infoKeys[25]);
  203. }
  204. /// 是否开启活体检测 0-不开启 1-开启
  205. - (NSInteger)isycbd {
  206. return defUser.userDict[@"isycbd"]? [defUser.userDict[@"isycbd"] integerValue] : 0;
  207. }
  208. /// 活体检测比对动作数量
  209. - (NSInteger)ycbdFaceCount {
  210. return defUser.userDict[@"ycbdFaceCount"]? [defUser.userDict[@"ycbdFaceCount"] integerValue] : 0;
  211. }
  212. /// qzgx 是否强制更新 1开启 0不开启
  213. - (NSInteger)qzgx {
  214. return defUser.userDict[@"qzgx"]? [defUser.userDict[@"qzgx"] integerValue] : 0;
  215. }
  216. @end
  217. void SaveObjectForKey(id object, NSString* key)
  218. {
  219. NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
  220. if (!object) {
  221. [ud removeObjectForKey:key];
  222. }else{
  223. [ud setObject:object forKey:key];
  224. }
  225. [ud synchronize];
  226. }