RASingleton.m 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299
  1. //
  2. // RASingleton.m
  3. // Apex And Drivers
  4. //
  5. // Created by Jack on 2018/6/6.
  6. // Copyright © 2018年 USAI. All rights reserved.
  7. //
  8. #import "RASingleton.h"
  9. static RASingleton *singleton;
  10. ////
  11. //@interface RASingleton ()
  12. ////
  13. ////@property (nonatomic,strong) NSMutableString *log;
  14. ////
  15. ////@end
  16. //
  17. @implementation RASingleton
  18. {
  19. NSString *_secretKey;
  20. }
  21. //@synthesize backgroundReportType = _backgroundReportType;
  22. //
  23. + (instancetype)sharedInstance {
  24. static dispatch_once_t tocken;
  25. dispatch_once(&tocken, ^{
  26. singleton = [[RASingleton alloc] init];
  27. singleton->_secretKey = @"usai";
  28. singleton->_savePassword = [[[NSUserDefaults standardUserDefaults] objectForKey:@"savePassword"] boolValue];
  29. });
  30. return singleton;
  31. }
  32. //
  33. //- (void)setSavePassword:(BOOL)savePassword {
  34. // _savePassword = savePassword;
  35. //
  36. // NSUserDefaults *defaults =[NSUserDefaults standardUserDefaults];
  37. // [defaults setObject:@(_savePassword) forKey:@"savePassword"];
  38. //}
  39. //
  40. //#pragma mark - User
  41. //
  42. - (NSString *)secretKey {
  43. return _secretKey;
  44. }
  45. //
  46. - (NSString *)encryptUser {
  47. if (!self.user) {
  48. return nil;
  49. }
  50. return [self encryptString:self.user];
  51. }
  52. //
  53. - (NSString *)encryptPassword {
  54. if (!self.password) {
  55. return nil;
  56. }
  57. return [self encryptString:self.password];
  58. }
  59. -(NSString*) getfirstName
  60. {
  61. if(self.firstName.length<1)
  62. return @"user";
  63. else
  64. return self.firstName;
  65. }
  66. //
  67. - (void)saveUserInfo {
  68. if (self.user && self.password) {
  69. NSUserDefaults *defaults =[NSUserDefaults standardUserDefaults];
  70. [defaults removeObjectForKey:@"user"];
  71. [defaults removeObjectForKey:@"password"];
  72. [defaults removeObjectForKey:@"firstName"];
  73. if(self.savePassword)
  74. {
  75. [defaults setValue:self.encryptUser forKey:@"user"];
  76. [defaults setValue:self.encryptPassword forKey:@"password"];
  77. // [defaults setObject:self.firstName forKey:@"firstName"];
  78. // [defaults setBool:TRUE forKey:@"autologin"];
  79. }
  80. [defaults synchronize];
  81. }
  82. }
  83. //
  84. //- (NSString *)savedUser {
  85. // NSString * user = [self decryptString:[[NSUserDefaults standardUserDefaults] stringForKey:@"user"]];
  86. // return user;
  87. //}
  88. //
  89. //- (NSString *)savedPassword {
  90. // NSString * password = [self decryptString:[[NSUserDefaults standardUserDefaults] stringForKey:@"password"]];
  91. // return password;
  92. //}
  93. //
  94. //- (NSString *)savedFirstName {
  95. // return [[NSUserDefaults standardUserDefaults] stringForKey:@"firstName"];
  96. //}
  97. //
  98. - (void)changePassword:(NSString *)newpassword
  99. {
  100. _password = newpassword;
  101. [self saveUserInfo];
  102. }
  103. - (void)login:(NSString *)user password:(NSString *)password firstName:(NSString *)firstName companyList:(NSArray*) companylist functions:(NSDictionary*)function_panel active:(bool) active
  104. {
  105. _user = user;
  106. _password = password;
  107. _companyid=-1;
  108. if(companylist.count>0)
  109. _companyid=0;
  110. _companylist=companylist;
  111. _firstName = firstName;
  112. _functionPanel = function_panel;
  113. _active = active;
  114. [self saveUserInfo];
  115. self.isLogin=true;
  116. // [self bindUserWithNotificationToken];
  117. // [self setShouldAutoLogin:YES];
  118. }
  119. //
  120. //- (BOOL)autoLogin {
  121. //
  122. // _user = [self savedUser];
  123. // _password = [self savedPassword];
  124. // _firstName = [self savedFirstName];
  125. //
  126. // if ([self shouldAutoLogin]) {
  127. // return _user.length && _password.length;
  128. // }
  129. // return NO;
  130. //}
  131. //
  132. //- (void)setNotificationToken:(NSString *)notificationToken {
  133. // _notificationToken = notificationToken;
  134. //
  135. // [self bindUserWithNotificationToken];
  136. //}
  137. //
  138. //- (void)bindUserWithNotificationToken {
  139. //
  140. // if (_user.length && _password.length && _notificationToken.length) {
  141. // dispatch_async(dispatch_get_global_queue(0, 0), ^{
  142. // [RADataProvider bindNotificationToken:self.notificationToken];
  143. // });
  144. // }
  145. //}
  146. //
  147. - (id)globalParameterForKey:(NSString *)key {
  148. return nil;
  149. }
  150. - (void)logout {
  151. _user = nil;
  152. _password = nil;
  153. _firstName = nil;
  154. _functionPanel=nil;
  155. _active = false;
  156. self.isLogin=false;
  157. // if (!self.savePassword) {
  158. // NSUserDefaults *defaults =[NSUserDefaults standardUserDefaults];
  159. // [defaults removeObjectForKey:@"user"];
  160. // [defaults removeObjectForKey:@"password"];
  161. // [defaults removeObjectForKey:@"firstName"];
  162. // [defaults synchronize];
  163. // }
  164. // self.requiredBackgroundLocation = NO;
  165. // [self setShouldAutoLogin:NO];
  166. }
  167. //
  168. //- (void)changePassword:(NSString *)password {
  169. // _password = password;
  170. //
  171. // [self saveUserInfo];
  172. //}
  173. //
  174. //- (BOOL)shouldAutoLogin {
  175. // NSUserDefaults *defaults =[NSUserDefaults standardUserDefaults];
  176. // return [defaults boolForKey:@"autoLogin"];
  177. //}
  178. //
  179. //- (void)setShouldAutoLogin:(BOOL)login {
  180. // NSUserDefaults *defaults =[NSUserDefaults standardUserDefaults];
  181. // [defaults setBool:login forKey:@"autoLogin"];
  182. // [defaults synchronize];
  183. //}
  184. //
  185. //#pragma mark - Location
  186. //
  187. //- (void)setRequiredBackgroundLocation:(BOOL)requiredLocation {
  188. // _requiredBackgroundLocation = requiredLocation;
  189. //
  190. //// NSUserDefaults *defaults =[NSUserDefaults standardUserDefaults];
  191. //// [defaults setBool:_requiredBackgroundLocation forKey:@"requiredBackgroundLocation"];
  192. //// [defaults synchronize];
  193. //
  194. // [self sendRequiredLocationNotification];
  195. //}
  196. //
  197. //- (void)loadSavedReuqiredLocation { // 启动的时候
  198. //
  199. //// NSUserDefaults *defaults =[NSUserDefaults standardUserDefaults];
  200. //// _requiredLocation = [[defaults objectForKey:@"requiredBackgroundLocation"] boolValue];
  201. //
  202. //// [self sendRequiredLocationNotification];
  203. //}
  204. //
  205. //- (void)sendRequiredLocationNotification {
  206. //
  207. // if (_requiredBackgroundLocation) {
  208. // [[NSNotificationCenter defaultCenter] postNotificationName:RANotificationStartBackgroundLocation object:nil];
  209. // } else {
  210. // [[NSNotificationCenter defaultCenter] postNotificationName:RANotificationStopBackgroundLocation object:nil];
  211. // }
  212. //
  213. //}
  214. //
  215. //#pragma mark - Utils
  216. //
  217. - (NSString *)encryptString:(NSString *)str {
  218. if (str == nil) {
  219. return nil;
  220. }
  221. return [AESCrypt encrypt:str password:self.secretKey];
  222. }
  223. //
  224. - (NSString *)decryptString:(NSString *)str {
  225. if (str == nil) {
  226. return nil;
  227. }
  228. return [AESCrypt decrypt:str password:self.secretKey];
  229. }
  230. //
  231. //#pragma mark - NetworkQueue
  232. //
  233. //- (NSOperationQueue *)networkQueue {
  234. // if (!_networkQueue) {
  235. // _networkQueue = [[NSOperationQueue alloc] init];
  236. // _networkQueue.maxConcurrentOperationCount = 5;
  237. // _networkQueue.qualityOfService = NSQualityOfServiceUtility;
  238. // }
  239. // return _networkQueue;
  240. //}
  241. //
  242. //#pragma mark - Backgroud Report Location Permission
  243. //
  244. //- (void)setBackgroundReportType:(RABackgroundReportType)backgroundReportType {
  245. // _backgroundReportType = backgroundReportType;
  246. //
  247. // NSUserDefaults *defaults =[NSUserDefaults standardUserDefaults];
  248. // [defaults setInteger:_backgroundReportType forKey:@"backgroundReportLocationPermissionType"];
  249. // [defaults synchronize];
  250. //}
  251. //
  252. //- (RABackgroundReportType)backgroundReportType {
  253. // if (_backgroundReportType == 0) {
  254. // NSUserDefaults *defaults =[NSUserDefaults standardUserDefaults];
  255. // _backgroundReportType = (RABackgroundReportType)[defaults integerForKey:@"backgroundReportLocationPermissionType"];
  256. // }
  257. // return _backgroundReportType;
  258. //}
  259. //
  260. //#pragma mark - Log
  261. //
  262. //- (NSMutableString *)log {
  263. // if (!_log) {
  264. // _log = [NSMutableString string];
  265. // }
  266. // return _log;
  267. //}
  268. //
  269. //- (void)writeLog:(NSString *)log {
  270. // if (log.length) {
  271. // [self.log appendFormat:@"\n%@",log];
  272. // }
  273. //}
  274. //
  275. //- (void)saveLogs {
  276. // if (self.log.length > 0) {
  277. // NSString *cacheDir = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
  278. // NSString *logPath = [cacheDir stringByAppendingPathComponent:@"log"];
  279. //
  280. // [self.log writeToFile:logPath atomically:NO encoding:NSUTF8StringEncoding error:nil];
  281. // }
  282. //}
  283. //
  284. @end