RADataProvider.m 35 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072
  1. //
  2. // RADataProvider.m
  3. // Apex And Drivers
  4. //
  5. // Created by Jack on 2018/6/1.
  6. // Copyright © 2018年 USAI. All rights reserved.
  7. //
  8. #import "RADataProvider.h"
  9. #import "RASingleton.h"
  10. #import "config.h"
  11. #import "RAUtils.h"
  12. //#import "NetworkUtils.h"
  13. //#import "AESCrypt.h"
  14. //#import "RAOfflineHandler.h"
  15. //#import <CoreLocation/CoreLocation.h>
  16. //
  17. //
  18. @implementation RADataProvider
  19. + (void)SavePanel:(NSString*)panel_setting completionHandler:(resultHandler)result
  20. {
  21. if(fake_data)
  22. {
  23. result([OfflineDataProvider save_panel]);
  24. }
  25. else
  26. {
  27. [OnlineDataProvider request_savepanel:panel_setting completionHandler:result];
  28. }
  29. }
  30. + (void)Signup : (NSString*) user password:(NSString*) password completionHandler:(resultHandler)result
  31. {
  32. // bool boffline = RASingleton.sharedInstance.offline;
  33. if(fake_data&& false)
  34. {
  35. result([OfflineDataProvider request_signup]);
  36. }
  37. else
  38. {
  39. [OnlineDataProvider request_signup:user password:password completionHandler:result];
  40. }
  41. }
  42. + (void)Login: (NSString*) user password:(NSString*) password completionHandler:(resultHandler)result
  43. {
  44. // bool boffline = RASingleton.sharedInstance.offline;
  45. if(fake_data&& false)
  46. {
  47. result([OfflineDataProvider request_login]);
  48. }
  49. else
  50. {
  51. [OnlineDataProvider request_login:user password:password completionHandler:result];
  52. }
  53. }
  54. + (void)RetrievePassword : (NSString*)user email:(NSString*)email completionHandler:(resultHandler)result
  55. {
  56. if(fake_data)
  57. {
  58. result([OfflineDataProvider request_retrievepassword]);
  59. }
  60. else
  61. {
  62. [OnlineDataProvider request_retrievepassword:user email:email completionHandler:result];
  63. }
  64. }
  65. + (void)ChangePassword : (NSString*) newpassword completionHandler:(resultHandler)result
  66. {
  67. if(fake_data)
  68. {
  69. result([OfflineDataProvider request_changepassword]);
  70. }
  71. else
  72. {
  73. [OnlineDataProvider request_changepassword:newpassword completionHandler:result];
  74. }
  75. }
  76. + (void)Logout :(resultHandler)result
  77. {
  78. // bool boffline = RASingleton.sharedInstance.offline;
  79. if(fake_data)
  80. {
  81. result([OfflineDataProvider request_logout]);
  82. }
  83. else
  84. {
  85. [OnlineDataProvider request_logout:result];
  86. }
  87. }
  88. + (void)DownloadFile:(NSMutableDictionary *)params url:(NSString *)url completionHandler:(resultHandler)result;
  89. {
  90. if(fake_data)
  91. {
  92. [OfflineDataProvider request_fastdownload:nil url:url completionHandler:result];
  93. }
  94. else
  95. {
  96. [OnlineDataProvider request_fastdownload:nil url:url completionHandler:result];
  97. }
  98. }
  99. + (void)LoadHome :(resultHandler)result
  100. {
  101. // bool boffline = RASingleton.sharedInstance.offline;
  102. if(fake_data)
  103. {
  104. [OfflineDataProvider request_home:result];
  105. }
  106. else
  107. {
  108. [OnlineDataProvider request_home:nil completionHandler:result];
  109. }
  110. }
  111. + (void)Search:(NSMutableDictionary *)params completionHandler:(resultHandler)result
  112. {
  113. if(fake_data)
  114. {
  115. result([OfflineDataProvider request_result:params]);
  116. }
  117. else
  118. {
  119. [OnlineDataProvider request_result:params completionHandler:result];
  120. }
  121. }
  122. + (void) TabDetail: (NSMutableDictionary *) params completionHandler:(resultHandler)result
  123. {
  124. if(fake_data)
  125. {
  126. result([OfflineDataProvider request_detail:params]);
  127. }
  128. else
  129. {
  130. [OnlineDataProvider request_detail:params completionHandler:result];
  131. }
  132. }
  133. #pragma mark utils
  134. + (bool)saveDetailParameters:(NSMutableDictionary *)param forModule:(NSString *)module withName:(NSString *)name actions:(NSString*)actions
  135. {
  136. if (param==nil || module==nil) {
  137. return @{
  138. @"result" : @RESULT_FALSE,
  139. @"err_msg" : @"Sorry, cannot save search, please contact admin."
  140. };
  141. }
  142. NSString *docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
  143. NSData* json_user =[NSData dataWithContentsOfFile:[docDir stringByAppendingPathComponent:[NSString stringWithFormat:@"%@_%@.json",@"saved_detail",RASingleton.sharedInstance.user]]];
  144. NSMutableArray* array;
  145. if(json_user==nil)
  146. {
  147. array = [NSMutableArray new];
  148. }
  149. else
  150. {
  151. array = [[RAConvertor data2arr:json_user] mutableCopy] ;
  152. }
  153. if(array.count>=20)
  154. {
  155. // [array removeObjectAtIndex:19];
  156. [array removeLastObject];
  157. }
  158. NSMutableDictionary* item = [NSMutableDictionary new];
  159. if(RASingleton.sharedInstance.companylist.count>0)
  160. {
  161. param[@"company"]= RASingleton.sharedInstance.companylist[RASingleton.sharedInstance.companyid][@"id"];
  162. item[@"company_name"]= RASingleton.sharedInstance.companylist[RASingleton.sharedInstance.companyid][@"name"];
  163. }
  164. item[@"module"]=module;
  165. item[@"name"]=name;
  166. item[@"actions"]=actions;
  167. item[@"param"]=param;
  168. item[@"current_date"]=[RAUtils current_date_time];
  169. [array insertObject:item atIndex:0];
  170. json_user =[RAConvertor arr2data:array];
  171. bool result =[json_user writeToFile:[docDir stringByAppendingPathComponent:[NSString stringWithFormat:@"%@_%@.json",@"saved_detail",RASingleton.sharedInstance.user]] atomically:true];
  172. return result;
  173. }
  174. + (bool)saveSearchParameters:(NSMutableDictionary *)param forModule:(NSString *)module withName:(NSString *)name
  175. {
  176. if (param==nil || module==nil) {
  177. return false;
  178. // return @{
  179. // @"result" : @RESULT_FALSE,
  180. // @"err_msg" : @"Sorry, cannot save search, please contact admin."
  181. // };
  182. }
  183. NSString *docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
  184. NSData* json_user =[NSData dataWithContentsOfFile:[docDir stringByAppendingPathComponent:[NSString stringWithFormat:@"%@_%@.json",@"saved_search",RASingleton.sharedInstance.user]]];
  185. NSMutableArray* array;
  186. if(json_user==nil)
  187. {
  188. array = [NSMutableArray new];
  189. }
  190. else
  191. {
  192. array = [[RAConvertor data2arr:json_user] mutableCopy] ;
  193. }
  194. if(array.count>=20)
  195. {
  196. // [array removeObjectAtIndex:19];
  197. [array removeLastObject];
  198. }
  199. NSMutableDictionary* item = [NSMutableDictionary new];
  200. if(RASingleton.sharedInstance.companylist.count>0)
  201. {
  202. param[@"company"]= RASingleton.sharedInstance.companylist[RASingleton.sharedInstance.companyid][@"id"];
  203. item[@"company_name"]= RASingleton.sharedInstance.companylist[RASingleton.sharedInstance.companyid][@"name"];
  204. }
  205. item[@"module"]=module;
  206. item[@"name"]=name;
  207. item[@"param"]=param;
  208. item[@"current_date"]=[RAUtils current_date_time];
  209. [array insertObject:item atIndex:0];
  210. json_user =[RAConvertor arr2data:array];
  211. bool result =[json_user writeToFile:[docDir stringByAppendingPathComponent:[NSString stringWithFormat:@"%@_%@.json",@"saved_search",RASingleton.sharedInstance.user]] atomically:true];
  212. return result;
  213. }
  214. +(NSData*) updateFieldsjson:(NSString*) type subtype:(NSString *) subtype
  215. {
  216. NSString *docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
  217. NSData* json_user =[NSData dataWithContentsOfFile:[docDir stringByAppendingPathComponent:[NSString stringWithFormat:@"%@_%@_%@.json",type,subtype,RASingleton.sharedInstance.user]]];
  218. // NSData* json=[NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"%@_%@",type,subtype] ofType:@"json" ]]; ;
  219. if(json_user!=nil)
  220. {
  221. // NSDictionary* dict = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:nil] ;
  222. NSDictionary* dict = RASingleton.sharedInstance.fields[type][subtype];
  223. NSMutableDictionary* dict_user = [[NSJSONSerialization JSONObjectWithData:json_user options:NSJSONReadingMutableLeaves error:nil] mutableCopy] ;
  224. if([dict_user[@"ver"] doubleValue]<[dict[@"ver"] doubleValue])
  225. {
  226. // dict_user[@"ver"] =dict[@"ver"];
  227. // NSArray * arr_add=dict[@"add"];
  228. //
  229. // NSMutableArray* user_show=[dict_user[@"show"] mutableCopy];
  230. // NSMutableArray* user_hide=[dict_user[@"hide"] mutableCopy];
  231. // for(int i=0;i<arr_add.count;i++)
  232. // {
  233. // [user_hide addObject:arr_add[i]];
  234. //
  235. // }
  236. // NSArray * arr_remove=dict[@"remove"];
  237. // for(int i=0;i<arr_remove.count;i++)
  238. // {
  239. // [user_hide removeObject:arr_remove[i]];
  240. // [user_show removeObject:arr_remove[i]];
  241. //
  242. // }
  243. // dict_user[@"show"] = user_show;
  244. // dict_user[@"user_hide"] = user_hide;
  245. json_user =[RAConvertor dict2data:dict];
  246. bool result =[json_user writeToFile:[docDir stringByAppendingPathComponent:[NSString stringWithFormat:@"%@_%@_%@.json",type,subtype,RASingleton.sharedInstance.user]] atomically:true];
  247. }
  248. return json_user;
  249. }
  250. else
  251. {
  252. NSData* json = [RAConvertor dict2data:RASingleton.sharedInstance.fields[type][subtype] ];
  253. // json=[NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"FunctionPanel" ofType:@"json" ]];
  254. bool result =[json writeToFile:[docDir stringByAppendingPathComponent:[NSString stringWithFormat:@"%@_%@_%@.json",type,subtype,RASingleton.sharedInstance.user]] atomically:true];
  255. // NSDictionary* dict = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:nil] ;
  256. return json;
  257. }
  258. }
  259. +(NSData*) updateFunctionPanel
  260. {
  261. NSString *docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
  262. NSData* json_user =[NSData dataWithContentsOfFile:[docDir stringByAppendingPathComponent:[NSString stringWithFormat:@"FunctionPanel_%@.json",RASingleton.sharedInstance.user]]];
  263. NSData* json ;
  264. if(json_user!=nil)
  265. {
  266. // json=[NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"FunctionPanel" ofType:@"json" ]];
  267. // NSDictionary* dict = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:nil] ;
  268. NSDictionary* dict = RASingleton.sharedInstance.functionPanel;
  269. NSMutableDictionary* dict_user = [[NSJSONSerialization JSONObjectWithData:json_user options:NSJSONReadingMutableLeaves error:nil] mutableCopy] ;
  270. if([dict_user[@"ver"] doubleValue]<[dict[@"ver"] doubleValue])
  271. {
  272. dict_user = [dict mutableCopy];
  273. // dict_user[@"ver"] =dict[@"ver"];
  274. // NSArray * arr_add=dict[@"add"];
  275. //
  276. // NSMutableArray* user_deactive=[dict_user[@"deactive_functions"] mutableCopy];
  277. // NSMutableArray* user_active=[dict_user[@"active_functions"] mutableCopy];
  278. // for(int i=0;i<arr_add.count;i++)
  279. // {
  280. // [user_deactive addObject:arr_add[i]];
  281. //
  282. // }
  283. // NSArray * arr_remove=dict[@"remove"];
  284. // for(int i=0;i<arr_remove.count;i++)
  285. // {
  286. // [user_deactive removeObject:arr_remove[i]];
  287. // [user_active removeObject:arr_remove[i]];
  288. //
  289. // }
  290. // dict_user[@"deactive_functions"] = user_deactive;
  291. // dict_user[@"active_functions"] = user_active;
  292. json_user =[RAConvertor dict2data:dict_user];
  293. bool result =[json_user writeToFile:[docDir stringByAppendingPathComponent:[NSString stringWithFormat:@"FunctionPanel_%@.json",RASingleton.sharedInstance.user]] atomically:true];
  294. }
  295. return json_user;
  296. }
  297. else
  298. {
  299. json=[RAConvertor dict2data:RASingleton.sharedInstance.functionPanel];
  300. // json=[NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"FunctionPanel" ofType:@"json" ]];
  301. bool result =[json writeToFile:[docDir stringByAppendingPathComponent:[NSString stringWithFormat:@"FunctionPanel_%@.json",RASingleton.sharedInstance.user]] atomically:true];
  302. NSDictionary* dict = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:nil] ;
  303. return json;
  304. }
  305. }
  306. +(DetailContent*) json2DetailContent:(NSMutableDictionary*)jsobj
  307. {
  308. DetailContent * detailContent = [[DetailContent alloc] init];
  309. NSMutableArray* segments = [[NSMutableArray alloc] init];
  310. detailContent.segments = segments;
  311. // if(![NetworkUtils IsNetworkAvailable])
  312. // {
  313. // detailContent.result_code = RESULT_NET_NOTAVAILABLE;
  314. // return detailContent;
  315. // }
  316. if([jsobj[@"result"]intValue]== RESULT_NET_NOTAVAILABLE)
  317. {
  318. detailContent.result_code = RESULT_NET_NOTAVAILABLE;
  319. detailContent.err_msg = NSLocalizedString(@"net_not_available", nil);
  320. return detailContent;
  321. }
  322. if (jsobj==nil)
  323. {
  324. DebugLog(@"json is wrong");
  325. detailContent.result_code = RESULT_NET_ERROR;
  326. return detailContent;
  327. }
  328. //------------hack detail html 字体大小-----------
  329. NSString *str = [RAConvertor dict2string:jsobj];
  330. str=[str stringByReplacingOccurrencesOfString:@"<table " withString:@"<table style=font-size:12px "];
  331. DebugLog(@"hack string: %@",str);
  332. //------- hack-----------
  333. jsobj=[[RAConvertor string2dict:str] mutableCopy];
  334. int result = [[jsobj valueForKey:@"result"] intValue];
  335. // if(result== AP_SESSION_EXPIRED)
  336. // {
  337. // [self Authorize:appDelegate.user password:appDelegate.password];
  338. // json=[self get_json:URL_REQUEST_RECORDS parameters:params file:nil];
  339. // if (json==nil)
  340. // {
  341. // DebugLog(@"json is wrong");
  342. // detailContent.result_code = RESULT_NET_ERROR;
  343. // return detailContent;
  344. // }
  345. // jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
  346. // result = [[jsobj valueForKey:@"result"] intValue];
  347. //
  348. // }
  349. if(result!=RESULT_TRUE)
  350. {
  351. DebugLog(@"USER NOT AUTHORIZED CODE=%d ",result);
  352. detailContent.result_code = result;
  353. detailContent.err_msg = jsobj[@"err_msg"];
  354. return detailContent;
  355. }
  356. int count =[[jsobj valueForKey:@"count"] intValue];
  357. detailContent.result_code = RESULT_TRUE;
  358. if(count==0)
  359. {
  360. return detailContent;
  361. }
  362. for(int i=0;i<count;i++)
  363. {
  364. NSDictionary* segment = [jsobj objectForKey:[NSString stringWithFormat:@"group%d",i]];
  365. [segments addObject:segment];
  366. }
  367. // NSDictionary* objrecords = [jsobj objectForKey:@"records"];
  368. detailContent.originContent = jsobj;
  369. return detailContent;
  370. }
  371. //
  372. //+(NSMutableDictionary*) prepare_additional_params:(NSMutableDictionary* ) params
  373. //{
  374. //
  375. // if (params == nil) {
  376. // params = [NSMutableDictionary dictionary];
  377. // }
  378. //
  379. // NSString *user = params[@"user"];
  380. // if (!user) {
  381. // user = RASingleton.sharedInstance.user;
  382. // if (user) {
  383. // params[@"user"] = user;
  384. // }
  385. // }
  386. //
  387. // NSString *password = params[@"password"];
  388. // if (!password) {
  389. // password = RASingleton.sharedInstance.password;
  390. // if (password) {
  391. // params[@"password"] = password;
  392. // }
  393. // }
  394. //
  395. // [params setObject:@"iOS" forKey:@"platform"];
  396. //
  397. // NSDictionary* infoDict =[[NSBundle mainBundle] infoDictionary];
  398. // NSString* short_version =[infoDict objectForKey:@"CFBundleShortVersionString"];
  399. // [params setValue:short_version forKey:@"app_short_ver"];
  400. //
  401. // NSString *localeLanguageCode = [[NSLocale currentLocale] objectForKey:NSLocaleLanguageCode];
  402. // [params setValue:localeLanguageCode forKey:@"language"];
  403. //
  404. //#if TARGET_IPHONE_SIMULATOR//模拟器
  405. // [params setValue:@"simulator_uuid" forKey:@"deviceid"];
  406. //#elif TARGET_OS_IPHONE//真机
  407. // UIDevice * dev = [UIDevice currentDevice];
  408. // NSUUID* uuid =dev.identifierForVendor;
  409. // [params setValue:uuid.UUIDString forKey:@"deviceid"];
  410. //#endif
  411. //
  412. // if(RASingleton.sharedInstance.companylist.count>0)
  413. // params[@"company_id"]= RASingleton.sharedInstance.companylist[RASingleton.sharedInstance.companyid][@"id"];
  414. // return params;
  415. //}
  416. //
  417. //+(NSData*)get_json : (NSString*) url parameters:(NSMutableDictionary *) params file:(NSString *) file //delegate:(id < NSURLConnectionDelegate >)delegate
  418. //{
  419. //
  420. //
  421. //
  422. // params = [self prepare_addtional_params:params];
  423. //
  424. // return [NetworkUtils get_json:url parameters:params file:file err_recorder:URL_ERR_LOG result_handler:^NSMutableDictionary *(NSMutableDictionary *jsobj) {
  425. // int result=[[jsobj valueForKey:@"result"] intValue];
  426. //
  427. // switch (result) {
  428. // case -9:
  429. // case 0:
  430. // [jsobj setValue:MSG_USERAUTH_ERROR forKey:@"err_msg"];
  431. // break;
  432. // case 1:
  433. // [jsobj setValue:MSG_ERROR forKey:@"err_msg"];
  434. // break;
  435. // case RESULT_TRUE:
  436. // [jsobj setValue:MSG_SUCCESS forKey:@"err_msg"];
  437. // break;
  438. // case 9:
  439. // [jsobj setValue:[jsobj valueForKey:@"msg"] forKey:@"err_msg"];
  440. // break;
  441. // case RESULT_TIMEOUT:
  442. // [jsobj setValue:MSG_TIMEOUT forKey:@"err_msg"];
  443. // break;
  444. // default: {
  445. // NSString *msg = [jsobj valueForKey:@"msg"];
  446. // if (msg.length == 0) {
  447. // [jsobj setValue:MSG_ERROR forKey:@"err_msg"];
  448. // } else {
  449. // [jsobj setValue:msg forKey:@"err_msg"];
  450. // }
  451. // }
  452. // break;
  453. // }
  454. //
  455. // return jsobj;
  456. // } decrypt_handler:^NSMutableDictionary *(NSMutableDictionary *jsobj) {
  457. //
  458. // NSString* base64str = jsobj[@"str"];
  459. // NSString* decryptstr=[AESCrypt AES128Decrypt:base64str key:@"Usai2010"];
  460. // jsobj=[[RAConvertor string2dict:decryptstr] mutableCopy];
  461. // return jsobj;
  462. // }];
  463. //
  464. //
  465. // /*
  466. //
  467. //
  468. //
  469. // */
  470. // return nil;
  471. //}
  472. //
  473. //+ (NSDictionary *)handleJsonData:(NSData *)jsonData {
  474. //
  475. // if (jsonData==nil)
  476. // {
  477. // return @{
  478. // @"result" : @RESULT_NET_ERROR,
  479. // @"err_msg" : MSG_NET_ERROR
  480. // };
  481. // }
  482. //
  483. // NSDictionary *json = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
  484. //
  485. // return json;
  486. //
  487. //}
  488. //
  489. //+ (NSDictionary *)requestLogin:(NSString *)user password:(NSString *)pwd {
  490. //
  491. // NSMutableDictionary *params = [NSMutableDictionary dictionary];
  492. //
  493. // user = [[RASingleton sharedInstance] encryptString:user];
  494. // pwd = [[RASingleton sharedInstance] encryptString:pwd];
  495. //
  496. // [params setObject:user forKey:@"name"];
  497. // [params setObject:pwd forKey:@"password"];
  498. //
  499. // NSData* json=[self get_json:URL_LOGIN parameters:params file:nil];
  500. //
  501. // return [self handleJsonData:json];
  502. //}
  503. //
  504. //+ (NSDictionary *)requestRetrievePassword : (NSString*)user email:(NSString*)email
  505. //{
  506. //
  507. //// if(![NetworkUtils IsNetworkAvailable])
  508. //// return RESULT_NET_NOTAVAILABLE;
  509. // NSMutableDictionary * params = [[NSMutableDictionary alloc] init];
  510. // [params setValue:user forKey:@"name"];
  511. // [params setValue:email forKey:@"email"];
  512. // [params setValue:@"Retrieve Password" forKey:@"module_name"];
  513. // [params setValue:@"handset_search" forKey:@"action"];
  514. //
  515. // NSData* json=[self get_json:URL_RETRIVE_PASSWORD parameters:params file:nil];
  516. //// if (json==nil)
  517. //// {
  518. //// DebugLog(@"json is wrong");
  519. //// return RESULT_NET_ERROR;
  520. //// }
  521. ////
  522. //// NSError *error=nil;
  523. //// NSDictionary *jsobj = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableLeaves error:&error];
  524. //// if(jsobj)
  525. //// {
  526. //// int result = [[jsobj valueForKey:@"result"] intValue];
  527. //// if(result!=AP_USER_AUTH)
  528. //// {
  529. //// DebugLog(@"USER NOT AUTHORIZED CODE=%d ",result);
  530. //// return RESULT_FALSE;
  531. ////
  532. //// }
  533. //// return RESULT_TRUE;
  534. ////
  535. //// }
  536. //// return RESULT_NET_ERROR;
  537. //
  538. // return [self handleJsonData:json];
  539. //}
  540. //
  541. //+ (NSDictionary *)requestOrderList {
  542. //
  543. // if (RASingleton.sharedInstance.offline) {
  544. // NSDictionary *result = [[RAOfflineHandler defaultHandler] requestOfflineHome];
  545. // if (result) {
  546. // return result;
  547. // }
  548. // }
  549. //
  550. // NSMutableDictionary *params = [NSMutableDictionary dictionary];
  551. //
  552. //
  553. // NSData* json=[self get_json:URL_HOME parameters:params file:nil];
  554. //
  555. //
  556. //
  557. // NSMutableDictionary* ret= [RAConvertor data2dict:json].mutableCopy;
  558. //
  559. //
  560. // NSString* path = [[RAUtils appCacheDirectory] stringByAppendingPathComponent:[NSString stringWithFormat:@"%@_orderList.json",RASingleton.sharedInstance.user]];
  561. // if(ret!=nil&&[ret[@"result"] intValue]!=RESULT_NET_ERROR&&[ret[@"result"] intValue]!=RESULT_NET_NOTAVAILABLE)
  562. // {
  563. //
  564. // [ret writeToFile:path atomically:YES];
  565. // return ret;
  566. // }
  567. // else
  568. // {
  569. // NSFileManager* fm = [NSFileManager defaultManager];
  570. // BOOL isDir = NO;
  571. // if ([fm fileExistsAtPath:path isDirectory:&isDir])
  572. // {
  573. // ret=[NSDictionary dictionaryWithContentsOfFile:path].mutableCopy;
  574. // ret[@"iscache"]=@(true);
  575. // return ret;
  576. // }
  577. // else
  578. // {
  579. // return [self handleJsonData:json];
  580. // }
  581. //
  582. //
  583. // }
  584. //
  585. //}
  586. //
  587. //+ (NSDictionary *)requestMoreOrder:(NSInteger)orderType offset:(NSInteger)offset limit:(NSInteger)limit filter:(NSDictionary *)filter {
  588. //
  589. // NSMutableDictionary *params = [NSMutableDictionary dictionary];
  590. // [params setObject:@(orderType) forKey:@"type"];
  591. // [params setObject:@(offset) forKey:@"offset"];
  592. // [params setObject:@(limit) forKey:@"limit"];
  593. // if (filter) {
  594. // [params setObject:[self dic2String:filter] forKey:@"filter"];
  595. // }
  596. //
  597. // NSData* json=[self get_json:URL_MORE_ORDER parameters:params file:nil];
  598. //
  599. // NSMutableDictionary* ret= [RAConvertor data2dict:json].mutableCopy;
  600. //
  601. //
  602. // NSString* path = [[RAUtils appCacheDirectory] stringByAppendingPathComponent:[NSString stringWithFormat:@"%@_moreorder%@.json",RASingleton.sharedInstance.user,@(orderType)]];
  603. // if(offset==0&&ret!=nil&&[ret[@"result"] intValue]!=RESULT_NET_ERROR&&[ret[@"result"] intValue]!=RESULT_NET_NOTAVAILABLE)
  604. // {
  605. //
  606. // [ret writeToFile:path atomically:YES];
  607. // return ret;
  608. // }
  609. // else
  610. // {
  611. // NSFileManager* fm = [NSFileManager defaultManager];
  612. // BOOL isDir = NO;
  613. // if ([fm fileExistsAtPath:path isDirectory:&isDir]&&offset==0)
  614. // {
  615. // ret=[NSDictionary dictionaryWithContentsOfFile:path].mutableCopy;
  616. // ret[@"iscache"]=@(true);
  617. // return ret;
  618. // }
  619. // else
  620. // {
  621. // return [self handleJsonData:json];
  622. // }
  623. //
  624. //
  625. // }
  626. //
  627. // return [self handleJsonData:json];
  628. //}
  629. //
  630. //+ (NSDictionary *)requestOrderDetail:(NSString *)orderID type:(NSInteger)type type2:(NSString *)type2 statusNo:(NSString *)statusNo {
  631. //
  632. // if (RASingleton.sharedInstance.offline) {
  633. // NSDictionary *result = [[RAOfflineHandler defaultHandler] requestOfflineDetailForOrder:orderID withOrderType:type];
  634. // if (result) {
  635. // return result;
  636. // }
  637. // }
  638. //
  639. // NSMutableDictionary *params = [NSMutableDictionary dictionary];
  640. // if (orderID) {
  641. // [params setObject:orderID forKey:@"orderID"];
  642. // }
  643. // [params setObject:@(type) forKey:@"orderType"];
  644. // if (type2) {
  645. // [params setObject:type2 forKey:@"orderType2"];
  646. // }
  647. // if (statusNo) {
  648. // [params setObject:statusNo forKey:@"statusNo"];
  649. // }
  650. //
  651. // NSData* json=[self get_json:URL_DETAIL parameters:params file:nil];
  652. //
  653. // NSMutableDictionary* ret= [RAConvertor data2dict:json].mutableCopy;
  654. //
  655. //
  656. //
  657. // NSString* path = [[RAUtils appCacheDirectory] stringByAppendingPathComponent:[NSString stringWithFormat:@"%@_detail_%@.json",RASingleton.sharedInstance.user,orderID]];
  658. // if(ret!=nil&&[ret[@"result"] intValue]!=RESULT_NET_ERROR&&[ret[@"result"] intValue]!=RESULT_NET_NOTAVAILABLE)
  659. // {
  660. //
  661. // [ret writeToFile:path atomically:YES];
  662. // return ret;
  663. // }
  664. // else
  665. // {
  666. // NSFileManager* fm = [NSFileManager defaultManager];
  667. // BOOL isDir = NO;
  668. // if ([fm fileExistsAtPath:path isDirectory:&isDir])
  669. // {
  670. // ret=[NSDictionary dictionaryWithContentsOfFile:path].mutableCopy;
  671. // ret[@"iscache"]=@(true);
  672. // return ret;
  673. // }
  674. // else
  675. // {
  676. // return [self handleJsonData:json];
  677. // }
  678. //
  679. //
  680. // }
  681. //
  682. //#ifdef OFFLINE_MODE
  683. //
  684. // NSNumber *finish = [[RAOfflineHandler defaultHandler] lastActionIndexForOrder:orderID];
  685. // detail = [[RAOfflineHandler defaultHandler] filtrateActionFromDetail:[detail mutableCopy] withFinishActions:finish];
  686. //
  687. //#endif
  688. //
  689. //// return detail;
  690. //}
  691. //
  692. //+ (NSDictionary *)requestUpdateOrder:(NSString *)orderID driverAction:(NSInteger)action index:(NSInteger)idx {
  693. //
  694. // if (RASingleton.sharedInstance.offline) {
  695. // NSDictionary *result = [[RAOfflineHandler defaultHandler] requestOfflineEditOrder:orderID withAction:idx];
  696. // if (result) {
  697. // return result;
  698. // }
  699. // }
  700. //
  701. //// return [self loadFakeData:@"fake_order_edit.json"];
  702. // NSMutableDictionary *params = [NSMutableDictionary dictionary];
  703. // if (orderID) {
  704. // [params setObject:orderID forKey:@"orderID"];
  705. // }
  706. // [params setObject:@(action) forKey:@"action"];
  707. //
  708. //
  709. // NSData* json=[self get_json:URL_UPDATE parameters:params file:nil];
  710. //
  711. // NSMutableDictionary* ret= [RAConvertor data2dict:json].mutableCopy;
  712. //
  713. //
  714. //
  715. // NSString* path = [[RAUtils appCacheDirectory] stringByAppendingPathComponent:[NSString stringWithFormat:@"%@_%@_%@.json",RASingleton.sharedInstance.user,@(action),orderID]];
  716. // if(ret!=nil&&[ret[@"result"] intValue]!=RESULT_NET_ERROR&&[ret[@"result"] intValue]!=RESULT_NET_NOTAVAILABLE)
  717. // {
  718. //
  719. // [ret writeToFile:path atomically:YES];
  720. // return ret;
  721. // }
  722. // else
  723. // {
  724. // NSFileManager* fm = [NSFileManager defaultManager];
  725. // BOOL isDir = NO;
  726. // if ([fm fileExistsAtPath:path isDirectory:&isDir])
  727. // {
  728. // ret=[NSDictionary dictionaryWithContentsOfFile:path].mutableCopy;
  729. // ret[@"iscache"]=@(true);
  730. // return ret;
  731. // }
  732. // else
  733. // {
  734. // return [self handleJsonData:json];
  735. // }
  736. //
  737. //
  738. // }
  739. //}
  740. //
  741. //+ (NSDictionary *)reportOrder:(NSString *)orderId type:(NSInteger)type actionType:(NSInteger)action actionIndex:(NSInteger)actionIndex actionName:(NSString *)actionName toURL:(NSString *)url withParams:(NSMutableDictionary *)params {
  742. //
  743. // if (RASingleton.sharedInstance.offline) {
  744. // NSDictionary *result = [[RAOfflineHandler defaultHandler] reportOrder:orderId type:type actionType:action actionIndex:actionIndex actionName:actionName withURL:url params:params];
  745. // if (result) {
  746. // return result;
  747. // }
  748. // }
  749. //
  750. // NSData* json=[self get_json:url parameters:params file:nil];
  751. //
  752. // NSDictionary *dic = [self handleJsonData:json];
  753. //
  754. // int result = [[dic objectForKey:@"result"] intValue];
  755. // if (result == RESULT_TRUE) {
  756. // [[RAOfflineHandler defaultHandler] updateLastAction:actionIndex forOrder:orderId];
  757. // }
  758. //
  759. // return dic;
  760. //}
  761. //
  762. //+ (NSDictionary *)offlineSubmitOrder:(NSString *)orderId action:(NSInteger)actionId title:(NSString *)title index:(NSInteger)idx withParams:(NSDictionary *)params photos:(NSArray<RAEditImageBaseModel *> *)photos cacheDir:(NSString *)dir {
  763. //
  764. // return [[RAOfflineHandler defaultHandler] updateOrder:orderId action:actionId title:title index:idx withParams:params photos:photos cacheDir:dir];
  765. //}
  766. //
  767. //+ (NSDictionary *)submitEditOrder:(NSString *)orderId actionIndex:(NSInteger)actionIndex withParams:(NSMutableDictionary *)params {
  768. //
  769. // if (![params isKindOfClass:[NSMutableDictionary class]]) {
  770. // params = [params mutableCopy];
  771. // }
  772. //
  773. // NSData* json=[self get_json:URL_SUBMIT parameters:params file:nil];
  774. //
  775. // NSDictionary *dic = [self handleJsonData:json];
  776. //
  777. // int result = [[dic objectForKey:@"result"] intValue];
  778. // if (result == RESULT_TRUE) {
  779. // [[RAOfflineHandler defaultHandler] updateLastAction:actionIndex forOrder:orderId];
  780. // }
  781. //
  782. // return dic;
  783. //}
  784. //
  785. //+ (NSDictionary *)upload:(NSString*)url parameters:(NSMutableDictionary *)params file:(NSString*)file_path {
  786. //
  787. //
  788. // if (![params isKindOfClass:[NSMutableDictionary class]]) {
  789. // params = [params mutableCopy];
  790. // }
  791. // NSData* json=[self get_json:url parameters:params file:file_path];
  792. //
  793. // return [self handleJsonData:json];
  794. //}
  795. //
  796. //+ (NSDictionary *)uploadFile:(NSString *)filePath parameters:(NSMutableDictionary *)params {
  797. // return [self upload:URL_UPLOAD parameters:params file:filePath];
  798. //}
  799. //
  800. //+ (NSDictionary *)reportLastLocation:(CLLocation *)location forOrderID:(NSString *)orderID locationID:(NSString *)locationId {
  801. //
  802. // NSMutableDictionary *params = [NSMutableDictionary dictionary];
  803. //
  804. // NSString *latLon = nil;
  805. // if (location) {
  806. // latLon = [NSString stringWithFormat:@"%f,%f",location.coordinate.latitude,location.coordinate.longitude];
  807. //
  808. // } else {
  809. // latLon = @"-999,-999";
  810. // }
  811. //
  812. // if (latLon) {
  813. // [params setObject:latLon forKey:@"location"];
  814. // }
  815. //
  816. // if (orderID) {
  817. // [params setObject:orderID forKey:@"orderID"];
  818. // }
  819. //
  820. // if (location) {
  821. // [params setObject:@(location.speed) forKey:@"speed"];
  822. // [params setObject:@([location.timestamp timeIntervalSince1970]) forKey:@"timestamp"];
  823. // }
  824. //
  825. // if (locationId) {
  826. // [params setObject:locationId forKey:@"locationId"];
  827. // }
  828. //
  829. // NSString * lastLocationDateTime = RASingleton.sharedInstance.lastLocationDateTime;
  830. // if(lastLocationDateTime.length>0)
  831. // {
  832. // [params setObject:lastLocationDateTime forKey:@"lastLocationDateTime"];
  833. // }
  834. // [params setObject:@(0) forKey:@"userOption"]; // 0 表示同意发送位置
  835. //
  836. // NSData* json=[self get_json:URL_REPORT_LOCATION parameters:params file:nil];
  837. //
  838. // return [self handleJsonData:json];
  839. //}
  840. //
  841. //+ (NSDictionary *)reportLocationWithUserReason:(NSString *)reason forOrder:(NSString *)orderID locationID:(NSString *)locationId {
  842. //
  843. // NSMutableDictionary *params = [NSMutableDictionary dictionary];
  844. // if (reason) {
  845. // [params setObject:reason forKey:@"reason"];
  846. // }
  847. // if (orderID) {
  848. // [params setObject:orderID forKey:@"orderID"];
  849. // }
  850. //
  851. // if (locationId) {
  852. // [params setObject:locationId forKey:@"locationId"];
  853. // }
  854. //
  855. // [params setObject:@(1) forKey:@"userOption"]; // 1 表示不同意发送位置
  856. //
  857. // NSData* json=[self get_json:URL_REPORT_LOCATION parameters:params file:nil];
  858. //
  859. // return [self handleJsonData:json];
  860. //}
  861. //
  862. //+ (NSDictionary *)bindNotificationToken:(NSString *)token {
  863. //
  864. // if (token.length == 0) {
  865. // return @{@"result" : @(0)};
  866. // }
  867. //
  868. // NSMutableDictionary *params = [NSMutableDictionary dictionary];
  869. // [params setObject:token forKey:@"token"];
  870. //
  871. // NSData* json=[self get_json:URL_REPORT_TOKEN parameters:params file:nil];
  872. //
  873. // return [self handleJsonData:json];
  874. //}
  875. //
  876. //+ (NSDictionary *)logout {
  877. //
  878. // NSMutableDictionary *params = [NSMutableDictionary dictionary];
  879. //
  880. // NSData* json=[self get_json:URL_LOGOUT parameters:params file:nil];
  881. //
  882. // return [self handleJsonData:json];
  883. //}
  884. //
  885. //+ (NSDictionary *)loadFakeData:(NSString *)fileName {
  886. //
  887. // NSString *path = [[NSBundle mainBundle] pathForResource:fileName ofType:nil];
  888. // NSData *jsonData = [NSData dataWithContentsOfFile:path];
  889. // return [self handleJsonData:jsonData];
  890. //}
  891. //
  892. ////+ (NSDictionary *)fakeError {
  893. ////
  894. ////
  895. //// return @{
  896. //// @"container_photo_0": @"12346798",
  897. //// @"container_photo_1": @"78945612",
  898. //// @"result": @2
  899. //// };
  900. ////}
  901. //
  902. //+ (NSDictionary *)updateDriverAvailable:(BOOL)available {
  903. //
  904. // NSMutableDictionary *params = [NSMutableDictionary dictionary];
  905. //
  906. // int a = available ? 1 : 0;
  907. // [params setObject:@(a) forKey:@"available"];
  908. //
  909. // NSData* json=[self get_json:URL_DRIVER_AVAILABLE parameters:params file:nil];
  910. //
  911. // return [self handleJsonData:json];
  912. //}
  913. //
  914. //+ (NSDictionary *)loadDataFromBundleFile:(NSString *)fileName {
  915. // return [self loadFakeData:fileName];
  916. //}
  917. //
  918. //+ (NSDictionary *)requestChange:(NSString *)old password:(NSString *)pass {
  919. //
  920. // NSMutableDictionary *params = [NSMutableDictionary dictionary];
  921. // if (old) {
  922. // [params setObject:old forKey:@"oldPassword"];
  923. // }
  924. // if (pass) {
  925. // [params setObject:pass forKey:@"newPassword"];
  926. // }
  927. //
  928. // NSData* json=[self get_json:URL_CHANGE_PASSWORD parameters:params file:nil];
  929. //
  930. // return [self handleJsonData:json];
  931. //}
  932. //
  933. //+ (NSDictionary *)requestMessage:(NSInteger)offset limit:(NSInteger)limit unread:(BOOL)unread {
  934. //
  935. // NSMutableDictionary *params = [NSMutableDictionary dictionary];
  936. //
  937. // [params setObject:@(offset) forKey:@"offset"];
  938. // [params setObject:@(limit) forKey:@"limit"];
  939. // [params setObject:@(unread) forKey:@"unread"];
  940. //
  941. // NSData* json=[self get_json:URL_MESSAGE_LIST parameters:params file:nil];
  942. //
  943. // return [self handleJsonData:json];
  944. //}
  945. //
  946. //+ (void)downloadOfflineData {
  947. // [[RAOfflineHandler defaultHandler] downloadOfflineData];
  948. //}
  949. //
  950. //#pragma mark - Utils
  951. //
  952. //+ (NSString *)dic2String:(NSDictionary *)dic {
  953. // if (!dic) {
  954. // return nil;
  955. // }
  956. //
  957. // NSData *data = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:nil];
  958. // NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
  959. // return str;
  960. //}
  961. @end