OnlineDataProvider.m 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. //
  2. // OnlineDataProvider.m
  3. // RA TradeFiling
  4. //
  5. // Created by Rui Zhang on 11/19/20.
  6. //
  7. #import "OnlineDataProvider.h"
  8. #import "config.h"
  9. #import "RAUtils.h"
  10. @implementation OnlineDataProvider
  11. + (void)request_login : (NSString*) user password:(NSString*) password completionHandler:(resultHandler)result
  12. {
  13. // long ver = 0;
  14. NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
  15. // AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
  16. // ver = appDelegate.authVer;
  17. // if(appDelegate.duid !=nil)
  18. // [params setValue:appDelegate.duid forKey:@"udid"];
  19. [params setValue:@"login" forKey:@"action"];
  20. // [headers setValue:[NSString stringWithFormat:@"%d",dataLength] forKey:@"Content-Length"];
  21. [params setValue:user forKey:@"user"];
  22. [params setValue:password forKey:@"password"];
  23. // [params setValue:[NSString stringWithFormat:@"%ld",ver] forKey:@"auth_ver"];
  24. #ifdef TEST
  25. [params setValue:@"true" forKey:@"is_debug"];
  26. #else
  27. [params setValue:@"false" forKey:@"is_debug"];
  28. #endif
  29. [self request_interface:URL_LOGIN parameters:params err_record_url:nil completionHandler:result retry:0];
  30. }
  31. + (void)request_signup : (NSString*) user password:(NSString*) password completionHandler:(resultHandler)result
  32. {
  33. // long ver = 0;
  34. NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
  35. // AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
  36. // ver = appDelegate.authVer;
  37. // if(appDelegate.duid !=nil)
  38. // [params setValue:appDelegate.duid forKey:@"udid"];
  39. [params setValue:@"signup" forKey:@"action"];
  40. // [headers setValue:[NSString stringWithFormat:@"%d",dataLength] forKey:@"Content-Length"];
  41. [params setValue:user forKey:@"user"];
  42. [params setValue:password forKey:@"password"];
  43. // [params setValue:[NSString stringWithFormat:@"%ld",ver] forKey:@"auth_ver"];
  44. //#ifdef TEST
  45. // [params setValue:@"true" forKey:@"is_debug"];
  46. //#else
  47. // [params setValue:@"false" forKey:@"is_debug"];
  48. //#endif
  49. [self request_interface:URL_SIGNUP parameters:params err_record_url:nil completionHandler:result retry:0];
  50. }
  51. + (void)request_changepassword:(NSString*) newpassword completionHandler:(resultHandler)result
  52. {
  53. NSMutableDictionary* params = [NSMutableDictionary new];
  54. params[@"newpassword"]=newpassword;
  55. params[@"action"]=@"";
  56. // params = [self prepare_addtional_params:params];
  57. [self request_interface:URL_CHANGE_PASS parameters:params err_record_url:nil completionHandler:result retry:0];
  58. }
  59. + (void)request_logout : (resultHandler)result
  60. {
  61. NSMutableDictionary* params = [NSMutableDictionary new];
  62. params[@"action"]=@"logout";
  63. // params = [self prepare_addtional_params:params];
  64. [self request_interface:URL_LOGOUT parameters:params err_record_url:nil completionHandler:result retry:0];
  65. }
  66. + (void)request_home :(NSMutableDictionary *)params completionHandler:(resultHandler)result
  67. {
  68. // params = [self prepare_addtional_params:params];
  69. if(params==nil)
  70. params = [NSMutableDictionary new];
  71. params[@"action"]=@"dashboardMobile";
  72. [self request_interface:URL_HOME parameters:params err_record_url:nil completionHandler:result retry:0];
  73. }
  74. + (void)request_result:(NSMutableDictionary *)params completionHandler:(resultHandler)result
  75. {
  76. params[@"action"]=@"result";
  77. [self request_interface:URL_SEARCH_RESULT parameters:params err_record_url:nil completionHandler:result retry:0];
  78. // return [self mockResult:params];
  79. //
  80. // params[@"action"]=@"handset_search";
  81. //
  82. // [self request_interface:URL_SEARCH_RESULT parameters:params err_record_url:nil completionHandler:^(NSMutableDictionary *resultjson) {
  83. // NSMutableDictionary *resultDic = resultjson;
  84. //
  85. // // detail data in local database
  86. // NSString *module_name = [params objectForKey:@"module_name"];
  87. // AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
  88. // NSArray *actions = [ApexMobileDB getActionsForFunction:module_name withUser:appDelegate.user];
  89. // [resultDic setValue:actions forKey:@"actions"];
  90. // result(resultDic);
  91. // } retry:0];
  92. //
  93. }
  94. +(void) request_detail: (NSMutableDictionary *) params completionHandler:(resultHandler)result
  95. {
  96. [self request_interface:URL_REQUEST_DETAIL parameters:params err_record_url:nil completionHandler:result retry:0];
  97. // AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
  98. // [params setValue:@"handset_search" forKey:@"action"];
  99. //// [params setValue:appDelegate.sessionid forKey:@"sessionid"];
  100. //
  101. //
  102. // [self request_interface:URL_REQUEST_RECORDS parameters:params err_record_url:nil completionHandler:result retry:0];
  103. // return;
  104. }
  105. + (void)request_retrievepassword: (NSString*)user email:(NSString*)email completionHandler:(resultHandler)result
  106. {
  107. NSMutableDictionary* params = [NSMutableDictionary new];
  108. params[@"action"]=@"retrievePassword";
  109. params[@"user"]=user;
  110. params[@"email"]=email;
  111. [self request_interface:URL_RETRIEVE_PASS parameters:params err_record_url:nil completionHandler:result retry:0];
  112. }
  113. + (void)request_fastdownload:(NSMutableDictionary *)params url:(NSString *)url completionHandler:(resultHandler)result
  114. {
  115. #ifdef test_server
  116. // url=URL_REQUEST_RECORDS;
  117. // params[@"prefix"]=URL_REQUEST_RECORDS;
  118. #endif
  119. // if(method.length==0)
  120. // method=@"POST";
  121. //
  122. // if(path.length==0)
  123. // path=NSTemporaryDirectory();
  124. //
  125. // (NSString*) url parameters:(NSMutableDictionary *) params err_record_url:(NSString* )recorder_url offset:(NSUInteger)offset method:(NSString *)method storein:(NSString *)path progressHandler:(progressHandler)progressHandler completionHandler:(resultHandler)result;
  126. // params = [self prepare_addtional_params:params];
  127. // [self request_file:url parameters:params err_record_url:err_record offset:offset method:method storein:path progressHandler:progressHandler completionHandler:result];
  128. [self request_file_fast:url parameters:params completionHandler:result];
  129. }
  130. +(NSMutableDictionary*) prepare_additional_params:(NSMutableDictionary* ) params
  131. {
  132. if (params == nil) {
  133. params = [NSMutableDictionary dictionary];
  134. }
  135. // AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
  136. // if(appDelegate.user!=nil && params[@"user"] == nil)
  137. // [params setValue:[AESCrypt AES128Encrypt:appDelegate.user key:@"Usai2010"] forKey:@"user"];
  138. // if(appDelegate.password!=nil&& params[@"pwd"] == nil)
  139. // [params setValue:[AESCrypt AES128Encrypt:appDelegate.password key:@"Usai2010"] forKey:@"pwd"];
  140. if(RASingleton.sharedInstance.user!=nil && params[@"user"] == nil)
  141. [params setValue:RASingleton.sharedInstance.user forKey:@"user"];
  142. if(RASingleton.sharedInstance.password!=nil&& params[@"password"] == nil)
  143. [params setValue:RASingleton.sharedInstance.password forKey:@"password"];
  144. // [params setValue:appDelegate.build forKey:@"app_ver"];
  145. //
  146. NSDictionary* infoDict =[[NSBundle mainBundle] infoDictionary];
  147. NSString* short_version =[infoDict objectForKey:@"CFBundleShortVersionString"];
  148. [params setValue:short_version forKey:@"app_ver"];
  149. #if TARGET_IPHONE_SIMULATOR//模拟器
  150. [params setValue:@"simulator_uuid" forKey:@"deviceid"];
  151. #elif TARGET_OS_IPHONE//真机
  152. UIDevice * dev = [UIDevice currentDevice];
  153. NSUUID* uuid =dev.identifierForVendor;
  154. [params setValue:uuid.UUIDString forKey:@"deviceid"];
  155. #endif
  156. if(RASingleton.sharedInstance.companylist.count>0 && [params[@"company"] stringValue].length==0)
  157. {
  158. params[@"company"]= RASingleton.sharedInstance.companylist[RASingleton.sharedInstance.companyid][@"id"];
  159. }
  160. params[@"os"]=@"iOS";
  161. return params;
  162. }
  163. + (void)request_savepanel: (NSString*)panel_setting completionHandler:(resultHandler)result
  164. {
  165. NSMutableDictionary* params = [NSMutableDictionary new];
  166. params[@"function_panel"]=panel_setting;
  167. // params = [self prepare_addtional_params:params];
  168. [self request_interface:URL_SAVE_PANEL parameters:params err_record_url:nil completionHandler:result retry:0];
  169. }
  170. //重新实现request_interface 接口,对部分返回结果预处理。
  171. +(void)request_interface : (NSString*) url parameters:(NSMutableDictionary *) params err_record_url:(NSString* )recorder_url completionHandler:(resultHandler)result retry:(int) retry
  172. {
  173. [super request_interface:url parameters:params err_record_url:recorder_url completionHandler:^(NSMutableDictionary *resultjson) {
  174. if([resultjson[@"result"] intValue]==RESULT_LOGIN_ON_OTHER_DEVICE)
  175. {
  176. // [RAUtils message_alert:@"User login on other device." title:@"Warrning" controller:nil];
  177. [RAUtils message_alert:@"User login on other device." title:@"Warrning" controller:[RAUtils getCurrentVC] action_handler:nil completion:^{
  178. [RASingleton.sharedInstance logout];
  179. }];
  180. }
  181. // NSMutableDictionary *resultDic = resultjson;
  182. //
  183. // // detail data in local database
  184. // NSString *module_name = [params objectForKey:@"module_name"];
  185. // AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
  186. // NSArray *actions = [ApexMobileDB getActionsForFunction:module_name withUser:appDelegate.user];
  187. // [resultDic setValue:actions forKey:@"actions"];
  188. result(resultjson);
  189. }retry:retry];
  190. }
  191. @end