RDSDemoApiHelper.m 59 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672
  1. //
  2. // RDSDemoApiHelper.m
  3. // singleProduct
  4. //
  5. // Created by coderYK on 2018/4/28.
  6. // Copyright © 2018年 RDIOT. All rights reserved.
  7. //
  8. #import "RDSDemoApiHelper.h"
  9. #import <AFNetworking.h>
  10. #import "NSDictionary+WiFiInfo.h"
  11. #import "NSString+convert.h"
  12. #import "NSDate+currentDate.h"
  13. #import "NSMutableDictionary+addObj.h"
  14. #import "RDSMapHelper.h"
  15. /**定义请求成功的block*/
  16. typedef void(^requestSuccess)( NSDictionary * responseObject);
  17. /**定义请求失败的block*/
  18. typedef void(^requestFailure)( NSError *error);
  19. /**定义上传进度block*/
  20. typedef void(^uploadProgress)(float progress);
  21. /**定义下载进度block*/
  22. typedef void(^downloadProgress)(float progress);
  23. @interface RDSDemoApiHelper ()
  24. @property (nonatomic, weak) AFHTTPSessionManager *netManager;
  25. @property (nonatomic, strong) NSDateFormatter *formatter;
  26. //@property (nonatomic, strong) NSString *appHeader;
  27. @end
  28. @implementation RDSDemoApiHelper
  29. DEF_SINGLETON(RDSDemoApiHelper)
  30. - (NSDateFormatter *)formatter {
  31. if (_formatter == nil) {
  32. _formatter = [[NSDateFormatter alloc] init];
  33. _formatter.dateFormat = @"yyyyMMddHHmmss";
  34. }
  35. return _formatter;
  36. }
  37. - (instancetype)init
  38. {
  39. self = [super init];
  40. if (self) {
  41. self.netManager = [AFHTTPSessionManager manager];
  42. // self.netManager.requestSerializer = [AFJSONRequestSerializer serializer];
  43. // self.netManager.responseSerializer = [AFHTTPResponseSerializer serializer];
  44. [self.netManager.responseSerializer setAcceptableContentTypes:[NSSet setWithObjects:@"text/plain",@"application/json",@"text/json",@"text/javascript",@"text/html", nil]];
  45. [self netWorkStart];
  46. // 默认生产环境
  47. self.baseUrlHost = kBaseUrlHost;
  48. self.baseUrlHeadImg = kBaseUrlHeadImg;
  49. self.isTest = 1;
  50. // self.isTest = @(TheDataManager.isTest).integerValue;
  51. }
  52. return self;
  53. }
  54. - (void)netWorkStart{
  55. // 1.获得网络监控的管理者
  56. AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];
  57. // 2.设置网络状态改变后的处理
  58. [manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
  59. // 当网络状态改变了, 就会调用这个block
  60. switch (status) {
  61. case AFNetworkReachabilityStatusUnknown: // 未知网络
  62. DDLog(@"网络状态:未知网络");
  63. self.netWorkState = @"未知网络";
  64. break;
  65. case AFNetworkReachabilityStatusNotReachable: // 没有网络(断网)
  66. DDLog(@"网络状态:没有联网");
  67. self.netWorkState = @"没有联网";
  68. break;
  69. case AFNetworkReachabilityStatusReachableViaWWAN: // 手机自带网络
  70. DDLog(@"网络状态:蜂窝数据");
  71. self.netWorkState = @"蜂窝数据";
  72. break;
  73. case AFNetworkReachabilityStatusReachableViaWiFi: // WIFI
  74. DDLog(@"网络状态:WIFI %@",[NSDictionary rds_fetchSSIDInfo][@"SSID"]);
  75. self.netWorkState = @"WIFI";
  76. break;
  77. }
  78. }];
  79. // 3.开始监控
  80. [manager startMonitoring];
  81. }
  82. - (NSString *)netWorkState{
  83. if (_netWorkState == nil) {
  84. _netWorkState = @"";
  85. }
  86. return _netWorkState;
  87. }
  88. // 设置生产、测试环境
  89. - (void)setIsTest:(NSInteger)isTest{
  90. _isTest = isTest;
  91. if(isTest == 1){
  92. _baseUrlHost = kBaseUrlHost_test;
  93. _baseUrlHeadImg = kBaseUrlHeadImg_test;
  94. }else{
  95. _baseUrlHost = kBaseUrlHost;
  96. _baseUrlHeadImg = kBaseUrlHeadImg;
  97. }
  98. }
  99. + (void)rds_appVersionCheckSuccess:(void (^)(id))success failure:(void (^)(NSError *))failure{
  100. NSString *currentVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
  101. NSDictionary *param = @{
  102. @"version" : currentVersion,
  103. @"platform" : @"IOS",// 平台
  104. };
  105. NSDictionary *header = @{
  106. @"Authorization" : TheDataManager.token
  107. };
  108. [RDSDemoApiHelper postWithUrlString:@"check_version"
  109. paraments:param
  110. headers:header
  111. success:success
  112. fail:failure
  113. progress:nil];
  114. }
  115. + (void)rds_appInitWithType:(NSNumber *)type success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  116. NSDictionary *header = @{
  117. @"Authorization" : TheDataManager.token,
  118. @"X-YX-APP":[RDSDemoApiHelper appHeaderWithType:type]
  119. };
  120. [RDSDemoApiHelper postWithUrlString:@"init"
  121. paraments:nil
  122. headers:header
  123. success:success
  124. fail:failure
  125. progress:nil];
  126. }
  127. + (void)rds_getGuideImgSuccess:(void (^)(id))success failure:(void (^)(NSError *))failure
  128. {
  129. NSDictionary *param = @{
  130. @"q":@"list",
  131. @"type":@"1",
  132. };
  133. [RDSDemoApiHelper getWithUrlString:@"backgrounds"
  134. paraments:param
  135. headers:nil
  136. success:success
  137. fail:failure
  138. progress:nil];
  139. }
  140. #pragma mark - 注册登录
  141. + (void)rds_getVerifyCodePhone:(NSString *)phone type:(int)type success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  142. NSDictionary *param = @{
  143. @"tel" : phone,
  144. @"bzty" : @(type),
  145. @"resend_limit" : @60, // 重发限制时间(秒数,默认60秒)
  146. @"expired" : @9999999, // 失效时间(秒数,默认5分钟)
  147. };
  148. [RDSDemoApiHelper postWithUrlString:@"login/code"
  149. paraments:param
  150. headers:nil
  151. success:success
  152. fail:failure
  153. progress:nil];
  154. }
  155. + (void)rds_loginWithVerifyCodePhone:(NSString *)phone code:(NSString *)code success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  156. NSDictionary *param = @{
  157. @"phone" : phone,
  158. @"code" : code,
  159. };
  160. [RDSDemoApiHelper postWithUrlString:@"login/sms"
  161. paraments:param
  162. headers:nil
  163. success:success
  164. fail:failure
  165. progress:nil];
  166. }
  167. + (void)rds_loginWithPwdPhone:(NSString *)phone password:(NSString *)password success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  168. NSDictionary *param = @{
  169. @"phone" : phone,
  170. @"password" : password,
  171. };
  172. [RDSDemoApiHelper postWithUrlString:@"login/password"
  173. paraments:param
  174. headers:nil
  175. success:success
  176. fail:failure
  177. progress:nil];
  178. }
  179. + (void)rds_setPassword:(NSString *)password success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  180. // token参数前面加Bearer+空格
  181. NSDictionary *param = @{
  182. @"password" : password,
  183. };
  184. NSDictionary *hearder = @{
  185. @"Authorization" : TheDataManager.token
  186. };
  187. [RDSDemoApiHelper putWithUrlString:@"login/set_password"
  188. paraments:param
  189. headers:hearder
  190. success:success
  191. fail:failure
  192. progress:nil];
  193. }
  194. + (void)rds_resetPwdPhone:(NSString *)phone password:(NSString *)password code:(NSString *)code success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  195. NSDictionary *param = @{
  196. @"phone" : phone,
  197. @"new_password" : password,
  198. @"code" : code,
  199. };
  200. [RDSDemoApiHelper putWithUrlString:@"login/update_pass"
  201. paraments:param
  202. headers:nil
  203. success:success
  204. fail:failure
  205. progress:nil];
  206. }
  207. + (void)rds_refreshTokenSuccess:(void (^)(id))success failure:(void (^)(NSError *))failure{
  208. NSDictionary *hearder = @{
  209. @"Authorization" : TheDataManager.token
  210. };
  211. [RDSDemoApiHelper putWithUrlString:@"login/refresh/token"
  212. paraments:nil
  213. headers:hearder
  214. success:success
  215. fail:failure
  216. progress:nil];
  217. }
  218. + (void)rds_logoutSuccess:(void (^)(id))success failure:(void (^)(NSError *))failure{
  219. NSDictionary *hearder = @{
  220. @"Authorization" : TheDataManager.token
  221. };
  222. [RDSDemoApiHelper postWithUrlString:@"login/exit"
  223. paraments:nil
  224. headers:hearder
  225. success:success
  226. fail:failure
  227. progress:nil];
  228. }
  229. + (void)rds_unsubscribeSuccess:(void (^)(id))success failure:(void (^)(NSError *))failure{
  230. NSDictionary *hearder = @{
  231. @"Authorization" : TheDataManager.token
  232. };
  233. [RDSDemoApiHelper patWithUrlString:@"login/unsubscribe"
  234. paraments:nil
  235. headers:hearder
  236. success:success
  237. fail:failure
  238. progress:nil];
  239. }
  240. + (void)rds_getWeatherSuccess:(void (^)(id))success failure:(void (^)(NSError *))failure{
  241. NSDictionary *param = @{
  242. @"home_id" : TheDataManager.current_home_id,
  243. };
  244. [RDSDemoApiHelper getWithUrlString:@"homepages/weather"
  245. paraments:param
  246. headers:nil
  247. success:success
  248. fail:failure
  249. progress:nil];
  250. }
  251. + (void)rds_getImageSuccess:(void (^)(id))success failure:(void (^)(NSError *))failure{
  252. NSDictionary *hearder = @{
  253. @"Authorization" : TheDataManager.token
  254. };
  255. [RDSDemoApiHelper getWithUrlString:@"backgrounds/current"
  256. paraments:nil
  257. headers:hearder
  258. success:success
  259. fail:failure
  260. progress:nil];
  261. }
  262. + (void)rds_getWelcomeMessageSuccess:(void (^)(id))success failure:(void (^)(NSError *))failure {
  263. [RDSDemoApiHelper getWithUrlString:@"system_parameter/app_homepage"
  264. paraments:nil
  265. headers:nil
  266. success:success
  267. fail:failure
  268. progress:nil];
  269. }
  270. #pragma mark - 用户信息
  271. + (void)rds_getCurrentUserInfoSuccess:(void (^)(id))success failure:(void (^)(NSError *))failure{
  272. NSDictionary *hearder = @{
  273. @"Authorization" : TheDataManager.token
  274. };
  275. [RDSDemoApiHelper getWithUrlString:@"users/current"
  276. paraments:nil
  277. headers:hearder
  278. success:success
  279. fail:failure
  280. progress:nil];
  281. }
  282. + (void)rds_postImage:(UIImage *)image success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  283. NSDictionary *hearder = @{
  284. @"Authorization" : TheDataManager.token
  285. };
  286. // NSDictionary *param = @{
  287. // @"file" : @"list",
  288. // };
  289. [RDSDemoApiHelper postImage:image
  290. urlString:@"files"
  291. paraments:nil
  292. headers:hearder
  293. success:success
  294. fail:failure
  295. progress:nil];
  296. }
  297. + (void)rds_updateUserInfoChangeUserName:(NSString *)userName photoUrl:(NSString *)photoUrl defaultHomeId:(NSString *)homeId isSetPwd:(BOOL)isSetPwd success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  298. NSMutableDictionary *param = [NSMutableDictionary dictionary];
  299. if(userName){
  300. param.rds_addObj(@"user_name",userName);
  301. }
  302. if(photoUrl){
  303. param.rds_addObj(@"photo",photoUrl);
  304. }
  305. if(homeId){
  306. param.rds_addObj(@"default_home_id",homeId);
  307. }
  308. if(isSetPwd){
  309. param.rds_addObj(@"set_password",@(isSetPwd));
  310. }
  311. NSDictionary *hearder = @{
  312. @"Authorization" : TheDataManager.token
  313. };
  314. NSString *url = [NSString stringWithFormat:@"users/%@",TheDataManager.currentUser.record_id];
  315. [RDSDemoApiHelper putWithUrlString:url
  316. paraments:param
  317. headers:hearder
  318. success:success
  319. fail:failure
  320. progress:nil];
  321. }
  322. + (void)rds_getDefaultHomeSuccess:(void (^)(id))success failure:(void (^)(NSError *))failure{
  323. NSDictionary *hearder = @{
  324. @"Authorization" : TheDataManager.token
  325. };
  326. [RDSDemoApiHelper getWithUrlString:@"homes/default"
  327. paraments:nil
  328. headers:hearder
  329. success:success
  330. fail:failure
  331. progress:nil];
  332. }
  333. + (void)rds_getHomeListIsAdmin:(BOOL)is_admin success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  334. NSDictionary *param = @{
  335. @"q" : @"list",
  336. @"is_admin" : @(is_admin),
  337. };
  338. NSDictionary *hearder = @{
  339. @"Authorization" : TheDataManager.token
  340. };
  341. [RDSDemoApiHelper getWithUrlString:@"homes"
  342. paraments:param
  343. headers:hearder
  344. success:success
  345. fail:failure
  346. progress:nil];
  347. }
  348. + (void)rds_getHomeDetailWithSuccess:(void (^)(id))success failure:(void (^)(NSError *))failure{
  349. NSDictionary *hearder = @{
  350. @"Authorization" : TheDataManager.token
  351. };
  352. [RDSDemoApiHelper getWithUrlString:@"homes/default"
  353. paraments:nil
  354. headers:hearder
  355. success:success
  356. fail:failure
  357. progress:nil];
  358. }
  359. + (void)rds_setDefaultHome:(NSString *)home_id success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  360. NSDictionary *hearder = @{
  361. @"Authorization" : TheDataManager.token
  362. };
  363. NSString *url = [NSString stringWithFormat:@"family_members/default/%@",home_id];
  364. [RDSDemoApiHelper putWithUrlString:url
  365. paraments:nil
  366. headers:hearder
  367. success:success
  368. fail:failure
  369. progress:nil];
  370. }
  371. + (void)rds_updateHomeInfoWithHomeId:(NSString *)record_id name:(NSString *)name province:(NSString *)province city:(NSString *)city district:(NSString *)district address:(NSString *)address rooms:(NSArray *)rooms success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  372. NSDictionary *param;
  373. if (rooms == nil || rooms.count == 0) {
  374. param = @{
  375. @"name" : name,
  376. @"province" : province,
  377. @"city" : city,
  378. @"district" : district,
  379. @"address" : address,
  380. };
  381. }else{
  382. param = @{
  383. @"name" : name,
  384. @"province" : province,
  385. @"city" : city,
  386. @"district" : district,
  387. @"address" : address,
  388. @"room" : rooms,
  389. };
  390. }
  391. NSDictionary *hearder = @{
  392. @"Authorization" : TheDataManager.token
  393. };
  394. NSString *url = [NSString stringWithFormat:@"homes/%@",record_id];
  395. [RDSDemoApiHelper putWithUrlString:url
  396. paraments:param
  397. headers:hearder
  398. success:success
  399. fail:failure
  400. progress:nil];
  401. }
  402. + (void)rds_addMemberWithHomeId:(NSString *)home_id phone:(NSString *)phone success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  403. NSDictionary *param = @{
  404. @"phone" : phone,
  405. @"home_id" : home_id,
  406. };
  407. NSDictionary *hearder = @{
  408. @"Authorization" : TheDataManager.token
  409. };
  410. [RDSDemoApiHelper postWithUrlString:@"family_members/invite"
  411. paraments:param
  412. headers:hearder
  413. success:success
  414. fail:failure
  415. progress:nil];
  416. }
  417. + (void)rds_delMemberWithHomeId:(NSString *)home_id user_id:(NSString *)user_id success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  418. NSDictionary *param = @{
  419. @"user_id" : user_id,
  420. @"home_id" : home_id,
  421. };
  422. NSDictionary *hearder = @{
  423. @"Authorization" : TheDataManager.token
  424. };
  425. [RDSDemoApiHelper deleteWithUrlString:@"family_members"
  426. paraments:param
  427. headers:hearder
  428. success:success
  429. fail:failure
  430. progress:nil];
  431. }
  432. + (void)rds_putMemberWithId:(NSString *)memberId remark:(NSString *)remark success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  433. NSDictionary *param = @{
  434. @"remark" : remark,
  435. };
  436. NSDictionary *hearder = @{
  437. @"Authorization" : TheDataManager.token
  438. };
  439. NSString *pathStr = [NSString stringWithFormat:@"family_members/%@/remark",memberId];
  440. [RDSDemoApiHelper putWithUrlString:pathStr
  441. paraments:param
  442. headers:hearder
  443. success:success
  444. fail:failure
  445. progress:nil];
  446. }
  447. + (void)rds_getDefaultRoomsSuccess:(void (^)(id))success failure:(void (^)(NSError *))failure{
  448. NSDictionary *hearder = @{
  449. @"Authorization" : TheDataManager.token
  450. };
  451. [RDSDemoApiHelper getWithUrlString:@"home/default_rooms"
  452. paraments:nil
  453. headers:hearder
  454. success:success
  455. fail:failure
  456. progress:nil];
  457. }
  458. + (void)rds_addHomeWithName:(NSString *)name province:(NSString *)province city:(NSString *)city district:(NSString *)district address:(NSString *)address rooms:(NSArray *)rooms success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  459. NSMutableDictionary *paramDic = [[NSMutableDictionary alloc]init];
  460. if (name != nil) {
  461. [paramDic setObject:name forKey:@"name"];
  462. }
  463. if (province != nil && city != nil && district != nil && address != nil) {
  464. [paramDic setObject:province forKey:@"province"];
  465. [paramDic setObject:city forKey:@"city"];
  466. [paramDic setObject:district forKey:@"district"];
  467. [paramDic setObject:address forKey:@"address"];
  468. }
  469. if (rooms != nil) {
  470. NSData *jsonData = [NSJSONSerialization dataWithJSONObject:rooms options:0 error:nil];
  471. if (!jsonData) {
  472. NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
  473. [paramDic setObject:jsonString forKey:@"room"];
  474. }
  475. }
  476. NSDictionary *hearder = @{
  477. @"Authorization" : TheDataManager.token
  478. };
  479. [RDSDemoApiHelper postWithUrlString:@"homes"
  480. paraments:paramDic
  481. headers:hearder
  482. success:success
  483. fail:failure
  484. progress:nil];
  485. }
  486. + (void)rds_delHomeWithHomeId:(NSString *)home_id success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  487. NSDictionary *hearder = @{
  488. @"Authorization" : TheDataManager.token
  489. };
  490. NSString *url = [NSString stringWithFormat:@"homes/%@",home_id];
  491. [RDSDemoApiHelper deleteWithUrlString:url
  492. paraments:nil
  493. headers:hearder
  494. success:success
  495. fail:failure
  496. progress:nil];
  497. }
  498. #pragma mark - 消息
  499. + (void)rds_getMessageListWithType:(NSString *)type Success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  500. NSDictionary *param = @{
  501. @"q" : @"list",
  502. @"home_id" : TheDataManager.current_home_id,
  503. @"type":type
  504. };
  505. NSDictionary *hearder = @{
  506. @"Authorization" : TheDataManager.token
  507. };
  508. [RDSDemoApiHelper getWithUrlString:@"messages"
  509. paraments:param
  510. headers:hearder
  511. success:success
  512. fail:failure
  513. progress:nil];
  514. }
  515. + (void)rds_getUnreadMessageSuccess:(void (^)(id))success failure:(void (^)(NSError *))failure{
  516. NSDictionary *param = @{
  517. @"q" : @"unread",
  518. @"home_id" : TheDataManager.current_home_id,
  519. };
  520. NSDictionary *hearder = @{
  521. @"Authorization" : TheDataManager.token
  522. };
  523. [RDSDemoApiHelper getWithUrlString:@"messages"
  524. paraments:param
  525. headers:hearder
  526. success:success
  527. fail:failure
  528. progress:nil];
  529. }
  530. + (void)rds_readAllMessageWithType:(NSString *)type success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  531. NSDictionary *param = @{
  532. @"type" : type,
  533. };
  534. NSDictionary *hearder = @{
  535. @"Authorization" : TheDataManager.token
  536. };
  537. NSString *urlStr = [NSString stringWithFormat:@"messages/%@/read_all",TheDataManager.current_home_id];
  538. [RDSDemoApiHelper patWithUrlString:urlStr
  539. paraments:param
  540. headers:hearder
  541. success:success
  542. fail:failure
  543. progress:nil];
  544. }
  545. #pragma mark - 商品
  546. + (void)rds_getGoodsSuccess:(void (^)(id))success failure:(void (^)(NSError *))failure{
  547. NSDictionary *param = @{
  548. @"q" : @"recommend",
  549. };
  550. NSDictionary *hearder = @{
  551. @"Authorization" : TheDataManager.token
  552. };
  553. [RDSDemoApiHelper getWithUrlString:@"goods"
  554. paraments:param
  555. headers:hearder
  556. success:success
  557. fail:failure
  558. progress:nil];
  559. }
  560. + (void)rds_getBannerSuccess:(void (^)(id))success failure:(void (^)(NSError *))failure{
  561. NSDictionary *param = @{
  562. @"q" : @"list",
  563. @"type" : @"1",
  564. };
  565. NSDictionary *hearder = @{
  566. @"Authorization" : TheDataManager.token
  567. };
  568. [RDSDemoApiHelper getWithUrlString:@"banners"
  569. paraments:param
  570. headers:hearder
  571. success:success
  572. fail:failure
  573. progress:nil];
  574. }
  575. #pragma mark - 场景
  576. + (void)rds_getHomeScenesWithHomeId:(NSString *)homeId homepage:(NSNumber *)page type:(NSString *)type success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  577. NSDictionary *param;
  578. if (type.length == 0) {
  579. param = @{
  580. @"q" : @"list",
  581. @"home_id" : homeId,
  582. @"homepage" : page,
  583. };
  584. }else{
  585. param = @{
  586. @"q" : @"list",
  587. @"home_id" : homeId,
  588. @"homepage" : page,
  589. @"type" : type,
  590. };
  591. }
  592. NSDictionary *hearder = @{
  593. @"Authorization" : TheDataManager.token
  594. };
  595. [RDSDemoApiHelper getWithUrlString:@"scenes"
  596. paraments:param
  597. headers:hearder
  598. success:success
  599. fail:failure
  600. progress:nil];
  601. }
  602. + (void)rds_putScenes:(NSString *)sceneId success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  603. NSDictionary *param = @{
  604. @"id" : sceneId,
  605. };
  606. NSDictionary *hearder = @{
  607. @"Authorization" : TheDataManager.token
  608. };
  609. NSString *pathStr = [NSString stringWithFormat:@"scenes/%@/do",sceneId];
  610. [RDSDemoApiHelper putWithUrlString:pathStr
  611. paraments:param
  612. headers:hearder
  613. success:success
  614. fail:failure
  615. progress:nil];
  616. }
  617. #pragma mark - 房间管理
  618. + (void)rds_getAllDevicesWithRoomId:(NSString *)roomId success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  619. NSDictionary *param = @{
  620. @"id" : roomId
  621. };
  622. NSDictionary *hearder = @{
  623. @"Authorization" : TheDataManager.token
  624. };
  625. NSString *path = [NSString stringWithFormat:@"rooms/%@/all_device",roomId];
  626. [RDSDemoApiHelper getWithUrlString:path
  627. paraments:param
  628. headers:hearder
  629. success:success
  630. fail:failure
  631. progress:nil];
  632. }
  633. + (void)rds_getDevicesWithRoomId:(NSString *)roomId success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  634. NSDictionary *param;
  635. if (roomId.length > 0) {
  636. param = @{
  637. @"q" : @"page",
  638. @"home_id" : TheDataManager.current_home_id,
  639. @"room_id" : roomId
  640. };
  641. }else{
  642. param = @{
  643. @"q" : @"page",
  644. @"home_id" : TheDataManager.current_home_id,
  645. };
  646. }
  647. NSDictionary *hearder = @{
  648. @"Authorization" : TheDataManager.token
  649. };
  650. [RDSDemoApiHelper getWithUrlString:@"devices"
  651. paraments:param
  652. headers:hearder
  653. success:success
  654. fail:failure
  655. progress:nil];
  656. }
  657. + (void)rds_getRoomListWithHomeId:(NSString *)homeId success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  658. NSDictionary *param = @{
  659. @"q" : @"list",
  660. @"home_id" : homeId,
  661. };
  662. NSDictionary *hearder = @{
  663. @"Authorization" : TheDataManager.token
  664. };
  665. [RDSDemoApiHelper getWithUrlString:@"rooms"
  666. paraments:param
  667. headers:hearder
  668. success:success
  669. fail:failure
  670. progress:nil];
  671. }
  672. + (void)rds_getDeviceTypeListSuccess:(void (^)(id))success failure:(void (^)(NSError *))failure {
  673. NSDictionary *hearder = @{
  674. @"Authorization" : TheDataManager.token
  675. };
  676. [RDSDemoApiHelper getWithUrlString:@"device_types"
  677. paraments:nil
  678. headers:hearder
  679. success:success
  680. fail:failure
  681. progress:nil];
  682. }
  683. + (void)rds_addRoomName:(NSString *)name control_number:(NSString *)control_number device_type_id:(NSString *)device_type_id success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  684. NSDictionary *param = @{
  685. @"name" : name,
  686. @"control_number" : control_number,
  687. @"home_id" : TheDataManager.current_home_id,
  688. @"device_type_id": device_type_id
  689. //@"is_master" : @2,
  690. };
  691. NSDictionary *hearder = @{
  692. @"Authorization" : TheDataManager.token
  693. };
  694. [RDSDemoApiHelper postWithUrlString:@"rooms"
  695. paraments:param
  696. headers:hearder
  697. success:success
  698. fail:failure
  699. progress:nil];
  700. }
  701. + (void)rds_createRoom:(NSString *)name homeId:(NSString *)homeId success:(void (^)(id))success failure:(void (^)(NSError *))failure {
  702. NSDictionary *param = @{
  703. @"name" : name,
  704. @"home_id" : homeId
  705. };
  706. NSDictionary *hearder = @{
  707. @"Authorization" : TheDataManager.token
  708. };
  709. [RDSDemoApiHelper postWithUrlString:@"rooms"
  710. paraments:param
  711. headers:hearder
  712. success:success
  713. fail:failure
  714. progress:nil];
  715. }
  716. + (void)rds_deleteRoomsRecordIds:(NSArray *)recordIds homeId:(NSString *)homeId success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  717. NSDictionary *param = @{
  718. @"record_ids" : recordIds,
  719. @"home_id" : homeId,
  720. };
  721. NSDictionary *hearder = @{
  722. @"Authorization" : TheDataManager.token
  723. };
  724. [RDSDemoApiHelper deleteWithUrlString:@"rooms"
  725. paraments:param
  726. headers:hearder
  727. success:success
  728. fail:failure
  729. progress:nil];
  730. }
  731. + (void)rds_putRoomsSequence:(NSArray *)rooms success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  732. NSDictionary *param = @{
  733. @"record_ids" : rooms,
  734. };
  735. NSDictionary *hearder = @{
  736. @"Authorization" : TheDataManager.token
  737. };
  738. [RDSDemoApiHelper putWithUrlString:@"rooms/sequence"
  739. paraments:param
  740. headers:hearder
  741. success:success
  742. fail:failure
  743. progress:nil];
  744. }
  745. + (void)rds_updateRoomName:(NSString *)name devices:(NSArray *)devices record_id:(NSString *)record_id success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  746. NSData *jsonData = [NSJSONSerialization dataWithJSONObject:devices options:NSJSONWritingPrettyPrinted error:nil];
  747. NSString *jsonStr = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
  748. NSDictionary *param = @{
  749. @"name" : name,
  750. @"devices" : jsonStr
  751. };
  752. NSDictionary *hearder = @{
  753. @"Authorization" : TheDataManager.token
  754. };
  755. NSString *url = [NSString stringWithFormat:@"rooms/%@",record_id];
  756. [RDSDemoApiHelper putWithUrlString:url
  757. paraments:param
  758. headers:hearder
  759. success:success
  760. fail:failure
  761. progress:nil];
  762. }
  763. + (void)rds_updateRoomName:(NSString *)name record_id:(NSString *)record_id home_id:(NSString *)home_id success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  764. NSDictionary *param = @{
  765. @"name" : name,
  766. @"home_id" : home_id,
  767. };
  768. NSDictionary *hearder = @{
  769. @"Authorization" : TheDataManager.token
  770. };
  771. NSString *url = [NSString stringWithFormat:@"rooms/%@",record_id];
  772. [RDSDemoApiHelper putWithUrlString:url
  773. paraments:param
  774. headers:hearder
  775. success:success
  776. fail:failure
  777. progress:nil];
  778. }
  779. + (void)rds_getRoomDetailRecord_id:(NSString *)record_id success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  780. NSDictionary *hearder = @{
  781. @"Authorization" : TheDataManager.token
  782. };
  783. NSString *url = [NSString stringWithFormat:@"rooms/%@",record_id];
  784. [RDSDemoApiHelper getWithUrlString:url
  785. paraments:nil
  786. headers:hearder
  787. success:success
  788. fail:failure
  789. progress:nil];
  790. }
  791. + (void)rds_getRoomStatusWithControl_number:(NSString *)control_number success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  792. NSDictionary *hearder = @{
  793. @"Authorization" : TheDataManager.token
  794. };
  795. NSDictionary *param = @{
  796. @"gateway" : TheDataManager.gateway,
  797. @"control_number" : control_number,
  798. };
  799. [RDSDemoApiHelper getWithUrlString:@"rooms/status"
  800. paraments:param
  801. headers:hearder
  802. success:success
  803. fail:failure
  804. progress:nil];
  805. }
  806. #pragma mark - 设备控制
  807. + (void)rds_getDeviceOnlineWithId:(NSString *)deviceId Success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  808. NSDictionary *hearder = @{
  809. @"Authorization" : TheDataManager.token
  810. };
  811. NSString *path = [NSString stringWithFormat:@"control/online/%@",deviceId];
  812. [RDSDemoApiHelper getWithUrlString:path
  813. paraments:nil
  814. headers:hearder
  815. success:success
  816. fail:failure
  817. progress:nil];
  818. }
  819. + (void)rds_AddDevicesWithName:(NSString *)name deviceCode:(NSString *)deviceCode subCode:(NSString *)subCode typeId:(NSString *)typeId isMaster:(BOOL)isMaster homeId:(NSString *)homeId roomId:(NSString *)roomId success:(void (^)(id responseObject))success failure:(void (^)(NSError *error))failure {
  820. NSDictionary *param = @{
  821. @"name" : name == nil ? @"" : name,
  822. @"device_code" : deviceCode,
  823. @"sub_code" : subCode == nil ? @"" : subCode,
  824. @"type_id":typeId == nil ? @"" : typeId,
  825. @"is_master":isMaster ? @"1" : @"0",
  826. @"home_id":homeId == nil ? @"" : homeId,
  827. @"room_id":roomId == nil ? @"" : roomId
  828. };
  829. NSDictionary *hearder = @{
  830. @"Authorization" : TheDataManager.token
  831. };
  832. [RDSDemoApiHelper postWithUrlString:@"devices"
  833. paraments:param
  834. headers:hearder
  835. success:success
  836. fail:failure
  837. progress:nil];
  838. }
  839. + (void)rds_getDeviceListWithHomeId:(NSString *)homeId roomId:(NSString *)roomId isMaster:(BOOL)status Success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  840. NSString *statusValue = status ? @"1" : @"0";
  841. NSDictionary *param = @{
  842. @"q" : @"page",
  843. @"home_id" : homeId,
  844. @"room_id" : roomId,
  845. @"is_master" : statusValue,
  846. };
  847. NSDictionary *hearder = @{
  848. @"Authorization" : TheDataManager.token
  849. };
  850. [RDSDemoApiHelper getWithUrlString:@"devices"
  851. paraments:param
  852. headers:hearder
  853. success:success
  854. fail:failure
  855. progress:nil];
  856. }
  857. + (void)rds_resetDeviceConsumablesWithId:(NSString *)deviceId success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  858. NSString *path = [NSString stringWithFormat:@"device_consumables/%@",deviceId];
  859. [RDSDemoApiHelper putWithUrlString:path
  860. paraments:nil
  861. headers:nil
  862. success:success
  863. fail:failure
  864. progress:nil];
  865. }
  866. + (void)rds_getDeviceConsumablesWithHomeId:(NSString *)homeId Success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  867. NSDictionary *param = @{
  868. @"home_id" : homeId,
  869. };
  870. NSDictionary *hearder = @{
  871. @"Authorization" : TheDataManager.token
  872. };
  873. [RDSDemoApiHelper getWithUrlString:@"device_consumables"
  874. paraments:param
  875. headers:hearder
  876. success:success
  877. fail:failure
  878. progress:nil];
  879. }
  880. + (void)rds_updateDevice:(NSString *)deviceId name:(NSString *)name homeId:(NSString *)homdId roomId:(NSString *)roomId success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  881. NSDictionary *param = @{
  882. @"name" : name,
  883. @"device_code" : deviceId,
  884. @"home_id" : homdId,
  885. @"room_id" : roomId
  886. };
  887. NSDictionary *hearder = @{
  888. @"Authorization" : TheDataManager.token
  889. };
  890. NSString *urlStr = [NSString stringWithFormat:@"devices/%@",deviceId];
  891. [RDSDemoApiHelper deleteWithUrlString:urlStr
  892. paraments:param
  893. headers:hearder
  894. success:success
  895. fail:failure
  896. progress:nil];
  897. }
  898. + (void)rds_deleteDeviceWithId:(NSString *)deviceId success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  899. NSDictionary *hearder = @{
  900. @"Authorization" : TheDataManager.token
  901. };
  902. NSString *path = [NSString stringWithFormat:@"devices/%@",deviceId];
  903. [RDSDemoApiHelper deleteWithUrlString:path
  904. paraments:nil
  905. headers:hearder
  906. success:success
  907. fail:failure
  908. progress:nil];
  909. }
  910. + (void)rds_putDevicesSequence:(NSArray *)devices success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  911. NSDictionary *param = @{
  912. @"record_ids" : devices,
  913. };
  914. NSDictionary *hearder = @{
  915. @"Authorization" : TheDataManager.token
  916. };
  917. [RDSDemoApiHelper putWithUrlString:@"devices/sequence"
  918. paraments:param
  919. headers:hearder
  920. success:success
  921. fail:failure
  922. progress:nil];
  923. }
  924. + (void)rds_setTemp:(int)temp control_number:(NSString *)control_number success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  925. NSDictionary *param = @{
  926. @"gateway" : TheDataManager.gateway,
  927. @"control_number" : control_number,
  928. @"temp" : @(temp),
  929. };
  930. NSDictionary *hearder = @{
  931. @"Authorization" : TheDataManager.token
  932. };
  933. [RDSDemoApiHelper postWithUrlString:@"control/temp"
  934. paraments:param
  935. headers:hearder
  936. success:success
  937. fail:failure
  938. progress:nil];
  939. }
  940. + (void)rds_setMode:(int)mode control_number:(NSString *)control_number success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  941. NSDictionary *param = @{
  942. @"gateway" : TheDataManager.gateway,
  943. @"control_number" : control_number,
  944. @"mode" : @(mode),
  945. };
  946. NSDictionary *hearder = @{
  947. @"Authorization" : TheDataManager.token
  948. };
  949. [RDSDemoApiHelper postWithUrlString:@"control/mode"
  950. paraments:param
  951. headers:hearder
  952. success:success
  953. fail:failure
  954. progress:nil];
  955. }
  956. + (void)rds_setSpeed:(int)speed control_number:(NSString *)control_number success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  957. NSDictionary *param = @{
  958. @"gateway" : TheDataManager.gateway,
  959. @"control_number" : control_number,
  960. @"speed" : @(speed),
  961. };
  962. NSDictionary *hearder = @{
  963. @"Authorization" : TheDataManager.token
  964. };
  965. [RDSDemoApiHelper postWithUrlString:@"control/speed"
  966. paraments:param
  967. headers:hearder
  968. success:success
  969. fail:failure
  970. progress:nil];
  971. }
  972. + (void)rds_setTimer:(NSNumber *)timer onOff:(BOOL)onOff control_number:(NSString *)control_number success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  973. NSDictionary *param = @{
  974. @"gateway" : TheDataManager.gateway,
  975. @"control_number" : control_number,
  976. @"timer" : timer,
  977. @"timer_status" : @(onOff),
  978. };
  979. NSDictionary *hearder = @{
  980. @"Authorization" : TheDataManager.token
  981. };
  982. [RDSDemoApiHelper postWithUrlString:@"control/timer"
  983. paraments:param
  984. headers:hearder
  985. success:success
  986. fail:failure
  987. progress:nil];
  988. }
  989. + (void)rds_setPower:(int)power control_number:(NSString *)control_number sub_code:(NSString *)sub_code success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  990. NSDictionary *param;
  991. if (sub_code.length == 0) {
  992. param = @{
  993. @"device_code" : control_number,
  994. @"power" : @(power),
  995. };
  996. }else{
  997. param = @{
  998. @"device_code" : control_number,
  999. @"sub_code": sub_code,
  1000. @"power" : @(power),
  1001. };
  1002. }
  1003. NSDictionary *hearder = @{
  1004. @"Authorization" : TheDataManager.token
  1005. };
  1006. [RDSDemoApiHelper postWithUrlString:@"control/power"
  1007. paraments:param
  1008. headers:hearder
  1009. success:success
  1010. fail:failure
  1011. progress:nil];
  1012. }
  1013. + (void)rds_setNewFanPower:(int)power control_number:(NSString *)control_number success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  1014. NSDictionary *param = @{
  1015. @"gateway" : TheDataManager.gateway,
  1016. @"control_number" : control_number,
  1017. @"power" : @(power),
  1018. };
  1019. NSDictionary *hearder = @{
  1020. @"Authorization" : TheDataManager.token
  1021. };
  1022. [RDSDemoApiHelper postWithUrlString:@"control/new_fan"
  1023. paraments:param
  1024. headers:hearder
  1025. success:success
  1026. fail:failure
  1027. progress:nil];
  1028. }
  1029. + (void)rds_setSleepPower:(int)power control_number:(NSString *)control_number success:(void (^)(id))success failure:(void (^)(NSError *))failure {
  1030. NSDictionary *param = @{
  1031. @"gateway" : TheDataManager.gateway,
  1032. @"control_number" : control_number,
  1033. @"power" : @(power),
  1034. };
  1035. NSDictionary *hearder = @{
  1036. @"Authorization" : TheDataManager.token
  1037. };
  1038. [RDSDemoApiHelper postWithUrlString:@"control/sleep"
  1039. paraments:param
  1040. headers:hearder
  1041. success:success
  1042. fail:failure
  1043. progress:nil];
  1044. }
  1045. + (void)rds_setSubDevPower:(int)power control_number:(NSString *)control_number success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  1046. NSDictionary *param = @{
  1047. @"gateway" : TheDataManager.gateway,
  1048. @"control_number" : control_number,
  1049. @"power" : @(power),
  1050. };
  1051. NSDictionary *hearder = @{
  1052. @"Authorization" : TheDataManager.token
  1053. };
  1054. [RDSDemoApiHelper postWithUrlString:@"control/fan_power"
  1055. paraments:param
  1056. headers:hearder
  1057. success:success
  1058. fail:failure
  1059. progress:nil];
  1060. }
  1061. + (void)rds_setSubDevSpeed:(int)speed control_number:(NSString *)control_number success:(void (^)(id))success failure:(void (^)(NSError *))failure{
  1062. NSDictionary *param = @{
  1063. @"gateway" : TheDataManager.gateway,
  1064. @"control_number" : control_number,
  1065. @"fan_value" : @(speed),
  1066. };
  1067. NSDictionary *hearder = @{
  1068. @"Authorization" : TheDataManager.token
  1069. };
  1070. [RDSDemoApiHelper postWithUrlString:@"control/fan_value"
  1071. paraments:param
  1072. headers:hearder
  1073. success:success
  1074. fail:failure
  1075. progress:nil];
  1076. }
  1077. + (NSString *)appHeaderWithType:(NSNumber *)type{
  1078. UIDevice *device = [UIDevice currentDevice];
  1079. NSDictionary *dicInfo = [[NSBundle mainBundle] infoDictionary];
  1080. NSString *appVersion = [dicInfo objectForKey:@"CFBundleShortVersionString"];
  1081. NSString *netType = TheApiHelper.netWorkState;
  1082. NSString *UUIDStr = [UIDevice currentDevice].identifierForVendor.UUIDString;
  1083. NSString *model = [[[UIDevice alloc]init] model];
  1084. NSString *location = [NSString stringWithFormat:@"%@,%@",TheMapHelper.userLocation.latitude,TheMapHelper.userLocation.longitude];
  1085. NSString *cidStr = [[NSUserDefaults standardUserDefaults] objectForKey:@"cid"];
  1086. NSDictionary *app = @{
  1087. @"channel": @"iOS",
  1088. @"device_id": UUIDStr,
  1089. @"device_type": @"iPhone",
  1090. @"net_type": netType,
  1091. @"os": @"iOS",
  1092. @"os_version": device.systemVersion,
  1093. @"phone_brand": @"Apple",
  1094. @"phone_model": model == nil?@"":model,
  1095. @"version": appVersion,
  1096. @"uuid": UUIDStr,
  1097. @"location": location,
  1098. @"login_type": type,
  1099. @"cid": cidStr == nil?@"":cidStr,
  1100. @"timestamp": [NSDate rds_getTimestamp:[NSDate date]],
  1101. };
  1102. NSData *jsonData = [NSJSONSerialization dataWithJSONObject:app options:NSJSONWritingPrettyPrinted error:nil];
  1103. NSString *appString = [jsonData base64EncodedStringWithOptions:0];
  1104. return appString;
  1105. }
  1106. #pragma mark - post
  1107. + (void)postWithUrlString:(NSString *)urlString paraments:(id)params headers:(id)header success:(requestSuccess)successBlock fail:(requestFailure)failBlock progress:(downloadProgress)progress{
  1108. NSString *reqUrl = [NSString stringWithFormat:@"%@/%@", TheApiHelper.baseUrlHost, urlString];
  1109. DDLog(@"req URL: %@", reqUrl);
  1110. DDLog(@"req para:%@",params);
  1111. NSDate *d1 = [NSDate date];
  1112. NSDictionary *dic = params;
  1113. NSString *str = @"";
  1114. if (dic && [dic isKindOfClass:[NSDictionary class]]) {
  1115. str = [NSString rds_dicToJson:dic];
  1116. }else{
  1117. str = @"格式错误!";
  1118. }
  1119. [[RDSDemoApiHelper sharedInstance].netManager POST:reqUrl parameters:params headers:header progress:^(NSProgress * _Nonnull uploadProgress) {
  1120. if (progress) {
  1121. progress(uploadProgress.completedUnitCount / uploadProgress.totalUnitCount);
  1122. }
  1123. } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
  1124. NSDictionary *dic = responseObject;
  1125. NSString *str = @"";
  1126. if (dic && [dic isKindOfClass:[NSDictionary class]]) {
  1127. str = [NSString rds_dicToJson:dic];
  1128. }else{
  1129. str = @"格式错误!";
  1130. }
  1131. NSDate *d2 = [NSDate date];
  1132. NSTimeInterval time = [d2 timeIntervalSinceDate:d1];
  1133. //简单计算耗时
  1134. DDLog(@"%@-Post请求耗时:%f秒 结果:%@", reqUrl, time, str);
  1135. if (successBlock) {
  1136. successBlock(responseObject);
  1137. }
  1138. } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
  1139. if (failBlock) {
  1140. failBlock(error);
  1141. }
  1142. DDLog(@"%@-Error结果:%@",reqUrl, error);
  1143. }];
  1144. }
  1145. #pragma mark - get
  1146. + (void)getWithUrlString:(NSString *)urlString paraments:(id)params headers:(id)header success:(requestSuccess)successBlock fail:(requestFailure)failBlock progress:(downloadProgress)progress{
  1147. NSString *reqUrl = [NSString stringWithFormat:@"%@/%@", TheApiHelper.baseUrlHost, urlString];
  1148. DDLog(@"req URL: %@", reqUrl);
  1149. DDLog(@"req para:%@",params);
  1150. [[RDSDemoApiHelper sharedInstance].netManager GET:reqUrl parameters:params headers:header progress:^(NSProgress * _Nonnull downloadProgress) {
  1151. if (progress) {
  1152. progress(downloadProgress.completedUnitCount / downloadProgress.totalUnitCount);
  1153. }
  1154. } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
  1155. NSDictionary *dic = responseObject;
  1156. NSString *str = @"";
  1157. if (dic && [dic isKindOfClass:[NSDictionary class]]) {
  1158. str = [NSString rds_dicToJson:dic];
  1159. }else{
  1160. str = @"格式错误!";
  1161. }
  1162. DDLog(@"%@-Get请求结果:%@",reqUrl, str);
  1163. if (successBlock) {
  1164. successBlock(responseObject);
  1165. }
  1166. } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
  1167. if (failBlock) {
  1168. failBlock(error);
  1169. }
  1170. DDLog(@"%@-Error结果:%@",reqUrl, error);
  1171. }];
  1172. }
  1173. #pragma mark - put
  1174. + (void)putWithUrlString:(NSString *)urlString paraments:(id)params headers:(id)header success:(requestSuccess)successBlock fail:(requestFailure)failBlock progress:(downloadProgress)progress{
  1175. NSString *reqUrl = [NSString stringWithFormat:@"%@/%@", TheApiHelper.baseUrlHost, urlString];
  1176. DDLog(@"req URL: %@", reqUrl);
  1177. DDLog(@"req para:%@",params);
  1178. [[RDSDemoApiHelper sharedInstance].netManager PUT:reqUrl parameters:params headers:header success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
  1179. DDLog(@"%@-PUT请求结果:%@",reqUrl, responseObject);
  1180. if (successBlock) {
  1181. successBlock(responseObject);
  1182. }
  1183. } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
  1184. if (failBlock) {
  1185. failBlock(error);
  1186. }
  1187. DDLog(@"%@-Error结果:%@",reqUrl, error);
  1188. }];
  1189. }
  1190. #pragma mark - PAT
  1191. + (void)patWithUrlString:(NSString *)urlString paraments:(id)params headers:(id)header success:(requestSuccess)successBlock fail:(requestFailure)failBlock progress:(downloadProgress)progress{
  1192. NSString *reqUrl = [NSString stringWithFormat:@"%@/%@", TheApiHelper.baseUrlHost, urlString];
  1193. DDLog(@"req URL:%@", reqUrl);
  1194. DDLog(@"req para:%@",params);
  1195. [[RDSDemoApiHelper sharedInstance].netManager PATCH:reqUrl parameters:params headers:header success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
  1196. DDLog(@"%@-PATCH请求结果:%@",reqUrl, responseObject);
  1197. if (successBlock) {
  1198. successBlock(responseObject);
  1199. }
  1200. } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
  1201. if (failBlock) {
  1202. failBlock(error);
  1203. }
  1204. DDLog(@"%@-Error结果:%@",reqUrl, error);
  1205. }];
  1206. }
  1207. #pragma mark - DELETE
  1208. + (void)deleteWithUrlString:(NSString *)urlString paraments:(id)params headers:(id)header success:(requestSuccess)successBlock fail:(requestFailure)failBlock progress:(downloadProgress)progress{
  1209. NSString *reqUrl = [NSString stringWithFormat:@"%@/%@", TheApiHelper.baseUrlHost, urlString];
  1210. DDLog(@"req URL: %@", reqUrl);
  1211. DDLog(@"req para:%@",params);
  1212. AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
  1213. manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/html",@"application/json",@"text/javascript",@"text/json",@"text/plain", nil];
  1214. // 设置请求头
  1215. [manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Accept"];
  1216. //[manager.requestSerializer setValue:api_key forHTTPHeaderField:@"api_key"];
  1217. [manager DELETE:reqUrl parameters:params headers:header success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
  1218. DDLog(@"%@-DELETE请求结果:%@",reqUrl, responseObject);
  1219. if (successBlock) {
  1220. successBlock(responseObject);
  1221. }
  1222. } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
  1223. if (failBlock) {
  1224. failBlock(error);
  1225. }
  1226. DDLog(@"%@-Error结果:%@",reqUrl, error);
  1227. }];
  1228. }
  1229. #pragma mark - 上传头像
  1230. - (NSURLSessionUploadTask *)rds_uploadTaskWithImage:(UIImage *)image completion:(void (^)(NSURLResponse *, id, NSError *))completionBlock{
  1231. NSError *error = NULL;
  1232. NSString *urlStr = [NSString stringWithFormat:@"%@/files",TheApiHelper.baseUrlHost];
  1233. AFHTTPRequestSerializer *serializer = [AFHTTPRequestSerializer serializer];
  1234. NSDictionary *hearder = @{
  1235. @"Authorization" : TheDataManager.token
  1236. };
  1237. RDS_WEAKSELF(weakSelf)
  1238. NSMutableURLRequest *request = [serializer multipartFormRequestWithMethod:@"POST"
  1239. URLString:urlStr
  1240. parameters:hearder
  1241. constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
  1242. NSData* imageData = UIImageJPEGRepresentation(image, 1.0);
  1243. NSString *str = [weakSelf.formatter stringFromDate:[NSDate date]];
  1244. NSString *fileName = [NSString stringWithFormat:@"%@.jpg",str];
  1245. [formData appendPartWithFileData:imageData
  1246. name:@"image"
  1247. fileName:fileName
  1248. mimeType:@"image/jpg"];
  1249. } error:&error];
  1250. // 将 NSURLRequest 与 completionBlock 包装为 NSURLSessionUploadTask
  1251. AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
  1252. manager.responseSerializer = [AFHTTPResponseSerializer serializer];
  1253. NSURLSessionUploadTask *uploadTask = [manager uploadTaskWithStreamedRequest:request progress:^(NSProgress * _Nonnull uploadProgress) {
  1254. [RDSHudShower showWithStatus:@"正在上传" autoDismiss:NO];
  1255. } completionHandler:completionBlock];
  1256. return uploadTask;
  1257. }
  1258. + (void)postImage:(UIImage *)image urlString:(NSString *)urlString paraments:(id)params headers:(id)header success:(requestSuccess)successBlock fail:(requestFailure)failBlock progress:(downloadProgress)progress{
  1259. // NSString *reqUrl = [NSString stringWithFormat:@"%@/%@", TheApiHelper.baseUrlHost, urlString];
  1260. NSString *reqUrl = @"https://app.yongxulvjian.com/api/v1/files";
  1261. DDLog(@"req URL: %@", reqUrl);
  1262. DDLog(@"req para:%@",params);
  1263. NSDate *d1 = [NSDate date];
  1264. NSDictionary *dic = params;
  1265. NSString *str = @"";
  1266. if (dic && [dic isKindOfClass:[NSDictionary class]]) {
  1267. str = [NSString rds_dicToJson:dic];
  1268. }else{
  1269. str = @"格式错误!";
  1270. }
  1271. NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
  1272. formatter.dateFormat = @"yyyyMMddHHmmss";
  1273. [[RDSDemoApiHelper sharedInstance].netManager POST:reqUrl parameters:nil headers:header constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
  1274. NSData* imageData = UIImageJPEGRepresentation(image, 1.0);
  1275. NSString *str = [formatter stringFromDate:[NSDate date]];
  1276. NSString *fileName = [NSString stringWithFormat:@"%@.jpg",str];
  1277. [formData appendPartWithFileData:imageData
  1278. name:@"file" //file为后台接收的字段或参数
  1279. fileName:fileName
  1280. mimeType:@"image/jpg"];
  1281. } progress:^(NSProgress * _Nonnull uploadProgress) {
  1282. if (progress) {
  1283. progress(uploadProgress.completedUnitCount / uploadProgress.totalUnitCount);
  1284. }
  1285. } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
  1286. NSDictionary *dic = responseObject;
  1287. NSString *str = @"";
  1288. if (dic && [dic isKindOfClass:[NSDictionary class]]) {
  1289. str = [NSString rds_dicToJson:dic];
  1290. }else{
  1291. str = @"格式错误!";
  1292. }
  1293. NSDate *d2 = [NSDate date];
  1294. NSTimeInterval time = [d2 timeIntervalSinceDate:d1];
  1295. //简单计算耗时
  1296. DDLog(@"%@-Post请求耗时:%f秒 结果:%@", reqUrl, time, responseObject);
  1297. if (successBlock) {
  1298. successBlock(responseObject);
  1299. }
  1300. } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
  1301. if (failBlock) {
  1302. failBlock(error);
  1303. }
  1304. DDLog(@"%@-Error结果:%@",reqUrl, error);
  1305. }];
  1306. }
  1307. #pragma mark - 文件下载
  1308. /**
  1309. * 文件下载
  1310. *
  1311. * @param operations 文件下载预留参数---视具体情况而定 可移除
  1312. * @param savePath 下载文件保存路径
  1313. * @param urlString 请求的url
  1314. * @param successBlock 下载文件成功的回调
  1315. * @param failureBlock 下载文件失败的回调
  1316. * @param progress 下载文件的进度显示
  1317. */
  1318. +(void)downLoadFileWithOperations:(NSDictionary *)operations withSavaPath:(NSString *)savePath withUrlString:(NSString *)urlString withSuccessBlock:(void (^)(id))successBlock withFailureBlock:(void (^)(NSError *))failureBlock withDownLoadProgress:(void (^)(float))progress{
  1319. NSString* encodedUrl = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
  1320. AFHTTPSessionManager * manager = [AFHTTPSessionManager manager];
  1321. NSURLSessionDownloadTask *downloadTask = [manager downloadTaskWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:encodedUrl]] progress:^(NSProgress * _Nonnull downloadProgress) {
  1322. if (progress) {
  1323. progress(downloadProgress.completedUnitCount / downloadProgress.totalUnitCount);
  1324. }
  1325. DDLog(@"下载进度:%f",1.0 * downloadProgress.completedUnitCount / downloadProgress.totalUnitCount);
  1326. } destination:^NSURL * _Nonnull(NSURL * _Nonnull targetPath, NSURLResponse * _Nonnull response) {
  1327. [[NSFileManager defaultManager] moveItemAtURL:targetPath toURL:[NSURL fileURLWithPath:savePath] error:nil];
  1328. if (successBlock) {
  1329. successBlock(nil);
  1330. }
  1331. return [NSURL URLWithString:savePath];
  1332. } completionHandler:^(NSURLResponse * _Nonnull response, NSURL * _Nullable filePath, NSError * _Nullable error) {
  1333. if (error && failureBlock) {
  1334. failureBlock(error);
  1335. }
  1336. }];
  1337. //开启下载任务
  1338. [downloadTask resume];
  1339. }
  1340. @end