KSRequestManager.m 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748
  1. //
  2. // KSRequestManager.m
  3. // MusicGradeExam
  4. //
  5. // Created by Kyle on 2020/7/10.
  6. // Copyright © 2020 DayaMusic. All rights reserved.
  7. //
  8. #import "KSRequestManager.h"
  9. #import "AppDelegate.h"
  10. #import "NSString+MD5.h"
  11. #import "CustomNavViewController.h"
  12. #import <RongIMKit/RongIMKit.h>
  13. #import "JPUSHService.h"
  14. #import "RCConnectionManager.h"
  15. #import "LoginViewController.h"
  16. @implementation KSRequestManager
  17. + (void)configRequestHeader {
  18. if (![NSString isEmptyString:UserDefault(TokenKey)]) {
  19. [[KSNetworking shareManager] configHttpHeader:@{@"Authorization":[NSString stringWithFormat:@"%@ %@", UserDefault(Token_type), UserDefault(TokenKey)]}];
  20. }
  21. }
  22. + (void)clearRequestHeader {
  23. [[KSNetworking shareManager] configHttpHeader:@{@"Authorization":@""}];
  24. }
  25. // 设置表单提交方式
  26. + (void)configRequestMethodForm {
  27. [KSNetworking shareManager].httpSessionManager.requestSerializer = [AFHTTPRequestSerializer serializer];
  28. [self configRequestHeader];
  29. [[KSNetworking shareManager].httpSessionManager.requestSerializer setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
  30. }
  31. // 设置json提交方式
  32. + (void)configRequestMethodJSON {
  33. [KSNetworking shareManager].httpSessionManager.requestSerializer = [AFJSONRequestSerializer serializer];
  34. [self configRequestHeader];
  35. }
  36. + (void)request:(NSString *)request url:(NSString *)myUrl parm:(NSDictionary *)parm success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure {
  37. __block NSDictionary *dic;
  38. #pragma mark ------- 签名
  39. // parm = [NSString signToMD5:parm];
  40. NSLog(@"url----%@",myUrl);
  41. NSLog(@"%@",[parm mj_JSONString]);
  42. if ([request isEqualToString:KS_POST]) { // post
  43. [[KSNetworking shareManager] postWithUrl:myUrl refreshRequest:YES cache:NO params:parm progressBlock:^(int64_t bytesRead, int64_t totalBytes) {
  44. NSLog(@"%lld--%lld",bytesRead,totalBytes);
  45. } successBlock:^(id _Nullable response) {
  46. dic = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableContainers | NSJSONReadingMutableLeaves error:nil];
  47. if ([dic integerValueForKey:@"code"] == 403) { // token验证失败
  48. [self logOutWithType:YES];
  49. // [self refreshAndRequsest:KS_POST andWithUrl:myUrl and:parm success:success faliure:faliure];
  50. return ;
  51. }
  52. else if ([dic integerValueForKey:@"code"] == 401) {
  53. [self logOutWithType:NO];
  54. return ;
  55. }
  56. success(dic);
  57. return ;
  58. } failBlock:^(NSError * _Nonnull error) {
  59. NSLog(@"%@",error.description);
  60. if (error.code == -1001) {
  61. [self showMessage:@"网络请求超时"];
  62. }
  63. else if (error.code != -999) {
  64. [self showMessage:@"网络或服务器错误,请重试"];
  65. }
  66. faliure(error);
  67. }];
  68. }
  69. else { // get
  70. [[KSNetworking shareManager] getWithUrl:myUrl refreshRequest:YES cache:NO params:parm progressBlock:^(int64_t bytesRead, int64_t totalBytes) {
  71. NSLog(@"%lld--%lld",bytesRead,totalBytes);
  72. } successBlock:^(id _Nullable response) {
  73. dic = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableContainers | NSJSONReadingMutableLeaves error:nil];
  74. if ([dic integerValueForKey:@"code"] == 403) { // token验证失败
  75. [self logOutWithType:YES];
  76. // [self refreshAndRequsest:KS_POST andWithUrl:myUrl and:parm success:success faliure:faliure];
  77. return ;
  78. }
  79. else if ([dic integerValueForKey:@"code"] == 401) {
  80. [self logOutWithType:NO];
  81. return ;
  82. }
  83. success(dic);
  84. return ;
  85. } failBlock:^(NSError * _Nonnull error) {
  86. NSLog(@"%@",error.description);
  87. if (error.code == -1001) {
  88. [self showMessage:@"网络请求超时"];
  89. }
  90. else if (error.code != -999) {
  91. [self showMessage:@"网络或服务器错误,请重试"];
  92. }
  93. faliure(error);
  94. }];
  95. }
  96. }
  97. // 刷新token再次请求
  98. + (void)refreshAndRequsest:(NSString *)post andWithUrl:(NSString *)myUrl and:(NSDictionary *)parm success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure {
  99. KSWeakSelf(weakSelf);
  100. [self refreshTokenRequest:KS_POST success:^(NSDictionary * _Nonnull dic) {
  101. if ([dic integerValueForKey:@"code"] == 200 && [dic boolValueForKey:@"status"]) {
  102. NSDictionary *parm = [dic dictionaryValueForKey:@"data"];
  103. UserDefaultSet([parm stringValueForKey:@"access_token"], TokenKey);
  104. UserDefaultSet([parm stringValueForKey:@"refresh_token"], RefreshToken);
  105. UserDefaultSet([parm stringValueForKey:@"token_type"], Token_type);
  106. [[NSUserDefaults standardUserDefaults] synchronize];
  107. [weakSelf configRequestHeader];
  108. [weakSelf request:post url:myUrl parm:parm success:success faliure:faliure];
  109. }
  110. } faliure:^(NSError * _Nonnull error) {
  111. }];
  112. }
  113. + (void)logOutWithType:(BOOL)isDisable {
  114. // 移除所有的loadView
  115. [MBProgressHUD hideHUD];
  116. [[KSNetworking shareManager] cancleAllRequest];
  117. if (isDisable) {
  118. [self showMessage:@"登录过期,请重新登录"];
  119. }
  120. else {
  121. [self showMessage:@"未认证"];
  122. }
  123. [self logoutAction];
  124. }
  125. + (void)logoutAction {
  126. [MBProgressHUD hideHUD];
  127. [self clearRequestHeader];
  128. // 取消推送别名
  129. [JPUSHService deleteAlias:nil seq:0];
  130. // 清除数据信息
  131. [[NSUserDefaults standardUserDefaults] removeObjectForKey:TokenKey];
  132. [[NSUserDefaults standardUserDefaults] removeObjectForKey:RongTokenKey];
  133. [[NSUserDefaults standardUserDefaults] synchronize];
  134. [RCConnectionManager shareManager].isNeedJoin = NO;
  135. [RCConnectionManager shareManager].isNeedShowMessage = NO;
  136. [[RCIM sharedRCIM] logout];
  137. // 回到登录界面
  138. // 回到登录界面
  139. UIViewController *vc = [UIApplication sharedApplication].keyWindow.rootViewController;
  140. if ([vc isKindOfClass:[UITabBarController class]]) {
  141. UITabBarController *tab = (UITabBarController *)[UIApplication sharedApplication].keyWindow.rootViewController;
  142. CustomNavViewController *ctrl = (CustomNavViewController *)tab.selectedViewController;
  143. [ctrl popToRootViewControllerAnimated:NO];
  144. LoginViewController *logonVC = [[LoginViewController alloc] init];
  145. CustomNavViewController *navCtrl = [[CustomNavViewController alloc] initWithRootViewController:logonVC];
  146. navCtrl.modalPresentationStyle = UIModalPresentationFullScreen;
  147. [tab.selectedViewController presentViewController:navCtrl animated:YES completion:nil];
  148. }
  149. }
  150. // 提示信息
  151. + (void)showMessage:(NSString *)message {
  152. MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:[[UIApplication sharedApplication].windows lastObject] animated:YES];
  153. hud.removeFromSuperViewOnHide =YES;
  154. hud.mode = MBProgressHUDModeText;
  155. hud.label.text = message;
  156. hud.minSize = CGSizeMake(132.f, 60.0f);
  157. hud.label.textColor = [UIColor whiteColor];
  158. hud.bezelView.backgroundColor = [UIColor colorWithHexString:@"#000000" alpha:0.8];
  159. [hud hideAnimated:YES afterDelay:2];
  160. }
  161. // 多文件上传
  162. + (void)uploadMultiFileWithFileArray:(NSArray *)datas
  163. andWithUrl:(NSString *)myUrl
  164. parameters:(NSDictionary *)parameters
  165. type:(NSString *)type
  166. name:(NSString *)name
  167. mimeType:(NSString *)mimeType
  168. progress:(void(^)(NSProgress * _Nonnull uploadProgress))progress
  169. success:(void(^)(NSMutableArray *dics))success
  170. faliure:(void(^)(NSError *error))faliure {
  171. __block NSMutableArray *dics = [NSMutableArray array];
  172. [[KSNetworking shareManager] uploadMultFileWithUrl:myUrl parameters:parameters fileDatas:datas type:type name:name mimeType:mimeType progressBlock:^(int64_t bytesWritten, int64_t totalBytes) {
  173. } successBlock:^(NSArray *responses) {
  174. for (id response in responses) {
  175. NSDictionary *subDic = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableContainers | NSJSONReadingMutableLeaves error:nil];
  176. [dics addObject:subDic];
  177. }
  178. success(dics);
  179. } failBlock:^(NSArray *errors) {
  180. [self showMessage:@"网络或服务器错误,请重试"];
  181. faliure([errors lastObject]);
  182. }];
  183. }
  184. // 单文件上传
  185. + (void)uploadFileWithFileData:(NSData *)data
  186. andWithUrl:(NSString *)myUrl
  187. parameters:(NSDictionary *)parameters
  188. type:(NSString *)type
  189. name:(NSString *)name
  190. mimeType:(NSString *)mimeType
  191. progress:(void(^)(int64_t bytesWritten,
  192. int64_t totalBytes))progress
  193. success:(void(^)(NSDictionary *dic))success
  194. faliure:(void(^)(NSError *error))faliure {
  195. __block NSDictionary *dic;
  196. [[KSNetworking shareManager] uploadFileWithUrl:myUrl parameters:parameters fileData:data type:type name:name mimeType:mimeType progressBlock:^(int64_t bytesWritten, int64_t totalBytes) {
  197. if (progress) {
  198. progress(bytesWritten, totalBytes);
  199. }
  200. } successBlock:^(id response) {
  201. dic = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableContainers | NSJSONReadingMutableLeaves error:nil];
  202. success(dic);
  203. return ;
  204. } failBlock:^(NSError *error) {
  205. [self showMessage:@"网络或服务器错误,请重试"];
  206. faliure(error);
  207. }];
  208. }
  209. // 下载
  210. + (void)downloadTaskWithUrl:(NSString *)myUrl
  211. progress:(void(^)(int64_t bytesRead, int64_t totalBytes))progress
  212. success:(void(^)(NSURL *fileUrl))success
  213. faliure:(void(^)(NSError *error))faliure {
  214. [[KSNetworking shareManager] downloadWithUrl:myUrl progressBlock:^(int64_t bytesRead, int64_t totalBytes) {
  215. if (progress) {
  216. progress(bytesRead, totalBytes);
  217. }
  218. } successBlock:^(NSURL * _Nullable url) {
  219. if (success) {
  220. success(url);
  221. }
  222. } failBlock:^(NSError * _Nonnull error) {
  223. [self showMessage:@"网络或服务器错误,请重试"];
  224. if (faliure) {
  225. faliure(error);
  226. }
  227. }];
  228. }
  229. // 多文件下载
  230. + (void)mutilDownTaskWithUrl:(NSArray *)urlArray
  231. progress:(void(^)(int64_t bytesRead, int64_t totalBytes))progress
  232. successBlock:(void(^)(NSMutableArray *dics))success
  233. failBlock:(void(^)(NSError *error))faliure {
  234. [[KSNetworking shareManager] downloadMutilFileWithUrl:urlArray progressBlock:^(int64_t bytesRead, int64_t totalBytes) {
  235. } successBlock:^(NSArray * _Nonnull responses) {
  236. NSMutableArray *result = [NSMutableArray arrayWithArray:responses];
  237. success(result);
  238. } failBlock:^(NSArray * _Nonnull errors) {
  239. [self showMessage:@"网络或服务器错误,请重试"];
  240. faliure([errors lastObject]);
  241. }];
  242. }
  243. #pragma mark --- 图片上传
  244. /// 图片上传
  245. /// @param post post
  246. /// @param pics 图片的数组
  247. /// @param success 成功
  248. /// @param faliure 失败
  249. + (void)multiImageUpload:(NSString *)post imgDataArray:(NSArray *)pics success:(void (^)(NSArray * _Nonnull))success faliure:(void (^)(NSError * _Nonnull))faliure {
  250. NSString* url = [NSString stringWithFormat:@"%@%@",hostURL,@"/api-user/uploadFile"];
  251. NSString *type = [UIImage typeForImageData:[pics lastObject]];
  252. [self uploadMultiFileWithFileArray:pics andWithUrl:url parameters:nil type:type name:@"file" mimeType:[NSString stringWithFormat:@"Image/%@",type] progress:nil success:success faliure:faliure];
  253. }
  254. // 证件照上传
  255. + (void)cardImageUpload:(NSString *)post imgData:(NSData *)imageData success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure {
  256. NSString* url = [NSString stringWithFormat:@"%@%@",hostURL,@"/api-user/examRegistration/ocr"];
  257. NSString *type = [UIImage typeForImageData:imageData];
  258. NSDictionary *parm = @{@"idCardSide" : @"front"};
  259. [self uploadFileWithFileData:imageData andWithUrl:url parameters:parm type:type name:@"file" mimeType:[NSString stringWithFormat:@"Image/%@",type] progress:nil success:success faliure:faliure];
  260. }
  261. #pragma mark --- version
  262. // api-web/appVersionInfo/queryByPlatform
  263. + (void)appVersionInfoRequest:(NSString *)get success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure {
  264. NSString *url = [NSString stringWithFormat:@"%@%@", hostURL, @"/api-web/appVersionInfo/queryByPlatform"];
  265. NSMutableDictionary *parm = [NSMutableDictionary dictionary];
  266. [parm setValue:@"iOS-user" forKey:@"platform"];
  267. [self request:get url:url parm:parm success:success faliure:faliure];
  268. }
  269. #pragma mark ---- 录音文件上传
  270. /// 录音文件上传
  271. /// @param post post
  272. /// @param fileData 文件data
  273. /// @param success 成功
  274. /// @param faliure 失败
  275. + (void)recordFileUpload:(NSString *)post fileData:(NSData *)fileData success:(void (^)(NSDictionary * _Nonnull))success faliure:(void (^)(NSError * _Nonnull))faliure {
  276. NSString* url = [NSString stringWithFormat:@"%@%@",hostURL,@"/api-user/uploadFile"];
  277. [self uploadFileWithFileData:fileData andWithUrl:url parameters:nil type:@".aac" name:@"file" mimeType:[NSString stringWithFormat:@"Image/.aac"] progress:nil success:success faliure:faliure];
  278. }
  279. #pragma mark ---- 视频文件上传
  280. /// 视频文件上传
  281. /// @param post post
  282. /// @param fileData 文件data
  283. /// @param progress 进度
  284. /// @param success 成功
  285. /// @param faliure 失败
  286. + (void)videoFileUpload:(NSString *)post fileData:(NSData *)fileData progress:(void (^)(int64_t, int64_t))progress success:(void (^)(NSDictionary * _Nonnull))success faliure:(void (^)(NSError * _Nonnull))faliure {
  287. [self configRequestMethodJSON];
  288. NSString* url = [NSString stringWithFormat:@"%@%@",hostURL,@"/api-user/uploadFile"];
  289. [self uploadFileWithFileData:fileData andWithUrl:url parameters:nil type:@".mp4" name:@"file" mimeType:[NSString stringWithFormat:@"Image/.mp4"] progress:progress success:success faliure:faliure];
  290. }
  291. #pragma mark ---- 文件下载
  292. + (void)downloadFileRequestWithFileUrl:(NSString *)url progress:(void (^)(int64_t, int64_t))progress success:(void (^)(NSURL * _Nonnull))success faliure:(void (^)(NSError * _Nonnull))faliure {
  293. [self downloadTaskWithUrl:url progress:progress success:success faliure:faliure];
  294. }
  295. + (void)mutiDownloadFileRequest:(NSArray *)fileUrl progress:(void (^)(int64_t, int64_t))progress success:(void (^)(NSArray * _Nonnull))success faliure:(void (^)(NSError * _Nonnull))faliure {
  296. [self mutilDownTaskWithUrl:fileUrl progress:progress successBlock:success failBlock:faliure];
  297. }
  298. #pragma mark ---- 验证码服务
  299. // /api-auth/code/sendSms
  300. /**
  301. 发送短信验证码
  302. @param post post
  303. @param mobile 手机号码
  304. @param success 成功
  305. @param faliure 失败
  306. */
  307. + (void)sendSmsRequest:(NSString *)post mobile:(NSString *)mobile success:(void (^)(NSDictionary * _Nonnull))success faliure:(void (^)(NSError * _Nonnull))faliure {
  308. [self configRequestMethodForm];
  309. NSMutableDictionary *parm = [NSMutableDictionary dictionary];
  310. [parm setValue:mobile forKey:@"mobile"];
  311. NSString *url = [NSString stringWithFormat:@"%@%@",hostURL, @"/api-auth/code/sendSms"];
  312. [self request:post url:url parm:parm success:success faliure:faliure];
  313. }
  314. // /api-auth/code/verifyLoginImage
  315. /**
  316. 图形验证码校验
  317. @param post post
  318. @param phone 手机号
  319. @param code 验证码
  320. @param success 成功
  321. @param faliure 失败
  322. */
  323. + (void)verifyLoginImageRequest:(NSString *)post phone:(NSString *)phone code:(NSString *)code success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure {
  324. [self configRequestMethodForm];
  325. NSMutableDictionary *parm = [NSMutableDictionary dictionary];
  326. [parm setValue:phone forKey:@"phone"];
  327. [parm setValue:code forKey:@"code"];
  328. NSString *url = [NSString stringWithFormat:@"%@%@",hostURL, @"/api-auth/code/verifyLoginImage"];
  329. [self request:post url:url parm:parm success:success faliure:faliure];
  330. }
  331. // /api-auth/code/verifySmsCode
  332. /**
  333. 校验短信验证码
  334. @param post post
  335. @param mobile 手机号
  336. @param code 验证码
  337. @param success 成功
  338. @param faliure 失败
  339. */
  340. + (void)verifySmsCodeRequest:(NSString *)post mobile:(NSString *)mobile code:(NSString *)code success:(void (^)(NSDictionary * _Nonnull))success faliure:(void (^)(NSError * _Nonnull))faliure {
  341. [self configRequestMethodForm];
  342. NSMutableDictionary *parm = [NSMutableDictionary dictionary];
  343. [parm setValue:mobile forKey:@"mobile"];
  344. [parm setValue:code forKey:@"code"];
  345. NSString *url = [NSString stringWithFormat:@"%@%@",hostURL, @"api-auth/code/verifySmsCode"];
  346. [self request:post url:url parm:parm success:success faliure:faliure];
  347. }
  348. #pragma mark ---- 登录相关
  349. /**
  350. 手机号密码登录
  351. @param post post
  352. @param phone 手机号
  353. @param password 密码
  354. @param success 成功
  355. @param faliure 失败
  356. */
  357. + (void)LoginRequest:(NSString *)post phone:(NSString *)phone password:(NSString *)password success:(void (^)(NSDictionary * _Nonnull))success faliure:(void (^)(NSError * _Nonnull))faliure {
  358. [self configRequestMethodForm];
  359. NSMutableDictionary *parm = [NSMutableDictionary dictionary];
  360. [parm setValue:@"student" forKey:@"clientId"];
  361. [parm setValue:@"student" forKey:@"clientSecret"];
  362. [parm setValue:phone forKey:@"username"];
  363. [parm setValue:password forKey:@"password"];
  364. NSString *url = [NSString stringWithFormat:@"%@%@",hostURL,@"/api-auth/usernameLogin"];
  365. [self request:post url:url parm:parm success:success faliure:faliure];
  366. }
  367. // /api-auth/smsLogin
  368. /**
  369. 验证码登录
  370. @param post post
  371. @param phone 手机号
  372. @param smsCode 验证码
  373. @param registerFlag 是否注册
  374. @param success 成功
  375. @param faliure 失败
  376. */
  377. + (void)smsLoginRequest:(NSString *)post phone:(NSString *)phone smsCode:(NSString *)smsCode registerFlag:(NSString *)registerFlag success:(void (^)(NSDictionary * _Nonnull))success faliure:(void (^)(NSError * _Nonnull))faliure {
  378. [self configRequestMethodForm];
  379. NSMutableDictionary *parm = [NSMutableDictionary dictionary];
  380. [parm setValue:@"student" forKey:@"clientId"];
  381. [parm setValue:@"student" forKey:@"clientSecret"];
  382. [parm setValue:phone forKey:@"phone"];
  383. [parm setValue:smsCode forKey:@"smsCode"];
  384. [parm setValue:@"IOS" forKey:@"channel"];
  385. [parm setValue:registerFlag forKey:@"registerFlag"];
  386. NSString *url = [NSString stringWithFormat:@"%@%@",hostURL,@"/api-auth/smsLogin"];
  387. [self request:post url:url parm:parm success:success faliure:faliure];
  388. }
  389. // /api-auth/refreshToken
  390. /**
  391. 刷新token的逻辑
  392. @param post post
  393. @param success 成功
  394. @param faliure 失败
  395. */
  396. + (void)refreshTokenRequest:(NSString *)post success:(void (^)(NSDictionary * _Nonnull))success faliure:(void (^)(NSError * _Nonnull))faliure {
  397. [self configRequestMethodForm];
  398. [self clearRequestHeader];
  399. NSMutableDictionary *parm = [NSMutableDictionary dictionary];
  400. [parm setValue:@"student" forKey:@"clientId"];
  401. [parm setValue:@"student" forKey:@"clientSecret"];
  402. [parm setValue:UserDefault(RefreshToken) forKey:@"refreshToken"];
  403. NSString *url = [NSString stringWithFormat:@"%@%@",hostURL, @"/api-auth/refreshToken"];
  404. [self request:post url:url parm:parm success:success faliure:faliure];
  405. }
  406. // 接口地址 /api-auth/user/setPassword
  407. /**
  408. 设置密码
  409. @param post post
  410. @param username 用户名
  411. @param authCode 验证码
  412. @param mobile 手机号
  413. @param password 密码
  414. @param success 成功
  415. @param faliure 失败
  416. */
  417. + (void)setPasswordRequest:(NSString *)post username:(NSString *)username authCode:(NSString *)authCode mobile:(NSString *)mobile password:(NSString *)password success:(void (^)(NSDictionary * _Nonnull))success faliure:(void (^)(NSError * _Nonnull))faliure {
  418. [self configRequestMethodForm];
  419. NSMutableDictionary *parm = [NSMutableDictionary dictionary];
  420. [parm setValue:mobile forKey:@"mobile"];
  421. [parm setValue:authCode forKey:@"authCode"];
  422. [parm setValue:password forKey:@"password"];
  423. [parm setValue:username forKey:@"username"];
  424. NSString *url = [NSString stringWithFormat:@"%@%@",hostURL, @"/api-auth/user/setPassword"];
  425. [self request:post url:url parm:parm success:success faliure:faliure];
  426. }
  427. // /api-auth/user/updatePassword
  428. /**
  429. 修改密码
  430. @param post post
  431. @param authCode 验证码
  432. @param mobile 手机号
  433. @param newPassword 新密码
  434. @param success 成功
  435. @param faliure 失败
  436. */
  437. + (void)updatePasswordRequest:(NSString *)post authCode:(NSString *)authCode mobile:(NSString *)mobile newPassword:(NSString *)newPassword success:(void (^)(NSDictionary * _Nonnull))success faliure:(void (^)(NSError * _Nonnull))faliure {
  438. [self configRequestMethodForm];
  439. NSMutableDictionary *parm = [NSMutableDictionary dictionary];
  440. [parm setValue:mobile forKey:@"mobile"];
  441. [parm setValue:authCode forKey:@"authCode"];
  442. [parm setValue:newPassword forKey:@"newPassword"];
  443. NSString *url = [NSString stringWithFormat:@"%@%@",hostURL, @"/api-auth/user/updatePassword"];
  444. [self request:post url:url parm:parm success:success faliure:faliure];
  445. }
  446. // /api-auth/exit
  447. /**
  448. 退出登录
  449. @param post 请求
  450. @param success 成功
  451. @param faliure 失败
  452. */
  453. + (void)logoutRequest:(NSString *)post success:(void (^)(NSDictionary * _Nonnull))success faliure:(void (^)(NSError * _Nonnull))faliure {
  454. [self configRequestMethodForm];
  455. NSMutableDictionary *parm = [NSMutableDictionary dictionary];
  456. NSString *url = [NSString stringWithFormat:@"%@%@",hostURL, @"/api-auth/exit"];
  457. [self request:post url:url parm:parm success:success faliure:faliure];
  458. }
  459. #pragma mark --- 消息相关
  460. // /api-auth/sysMessage/list
  461. /// 消息列表
  462. /// @param get get
  463. /// @param page 分页
  464. /// @param rows 条数
  465. /// @param success 成功
  466. /// @param faliure 失败
  467. + (void)sysMessageRequest:(NSString *)get page:(NSString *)page rows:(NSString *)rows success:(void (^)(NSDictionary * _Nonnull))success faliure:(void (^)(NSError * _Nonnull))faliure {
  468. NSString *url = [NSString stringWithFormat:@"%@%@",hostURL, @"/api-auth/sysMessage/list"];
  469. NSMutableDictionary *parm = [NSMutableDictionary dictionary];
  470. [parm setValue:page forKey:@"page"];
  471. [parm setValue:rows forKey:@"rows"];
  472. [self request:get url:url parm:parm success:success faliure:faliure];
  473. }
  474. // /api-auth/sysMessage/setRead
  475. /// 消息设置已读
  476. /// @param post post
  477. /// @param messageId 消息id
  478. /// @param success 成功
  479. /// @param faliure 失败
  480. + (void)sysMessageSetReadRequest:(NSString *)post messageId:(NSString *)messageId success:(void (^)(NSDictionary * _Nonnull))success faliure:(void (^)(NSError * _Nonnull))faliure {
  481. [self configRequestMethodForm];
  482. NSString *url = [NSString stringWithFormat:@"%@%@",hostURL, @"/api-auth/sysMessage/setRead"];
  483. NSMutableDictionary *parm = [NSMutableDictionary dictionary];
  484. [parm setValue:messageId forKey:@"id"];
  485. [self request:post url:url parm:parm success:success faliure:faliure];
  486. }
  487. // /api-auth/sysMessage/queryCountOfUnread
  488. /// 获取未读消息条数
  489. /// @param get get
  490. /// @param success 成功
  491. /// @param faliure 失败
  492. + (void)queryCountOfUnreadRequest:(NSString *)get success:(void (^)(NSDictionary * _Nonnull))success faliure:(void (^)(NSError * _Nonnull))faliure {
  493. NSString *url = [NSString stringWithFormat:@"%@%@", hostURL, @"/api-auth/sysMessage/queryCountOfUnread"];
  494. [self request:get url:url parm:nil success:success faliure:faliure];
  495. }
  496. #pragma mark --- 个人信息
  497. // /api-user/student/getStudent
  498. /**
  499. 获取个人信息
  500. @param get get
  501. @param success 成功
  502. @param faliure 失败
  503. */
  504. + (void)queryUserInfo:(NSString *)get success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure {
  505. NSString *url = [NSString stringWithFormat:@"%@%@",hostURL, @"/api-user/student/getStudent"];
  506. [self request:get url:url parm:nil success:success faliure:faliure];
  507. }
  508. // /api-user/student/updateInfo
  509. /// 用户设置
  510. /// @param post post
  511. /// @param idCardNo 身份证号
  512. /// @param realName 姓名
  513. /// @param gender 性别
  514. /// @param birthdate 生日
  515. /// @param nation 名族
  516. /// @param avatar 头像
  517. /// @param success 成功
  518. /// @param faliure 失败
  519. + (void)updateInfoRequest:(NSString *)post idCardNo:(NSString *)idCardNo realName:(NSString *)realName gender:(NSString *)gender birthdate:(NSString *)birthdate nation:(NSString *)nation avatar:(NSString *)avatar success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure {
  520. [self configRequestMethodForm];
  521. NSMutableDictionary *parm = [NSMutableDictionary dictionary];
  522. [parm setValue:idCardNo forKey:@"idCardNo"];
  523. [parm setValue:realName forKey:@"realName"];
  524. [parm setValue:gender forKey:@"gender"];
  525. [parm setValue:birthdate forKey:@"birthdate"];
  526. [parm setValue:nation forKey:@"nation"];
  527. [parm setValue:avatar forKey:@"certificatePhoto"];
  528. NSString *url = [NSString stringWithFormat:@"%@%@",hostURL, @"/api-user/student/updateInfo"];
  529. [self request:post url:url parm:parm success:success faliure:faliure];
  530. }
  531. // /api-user/suggestion/add
  532. /**
  533. 新增建议
  534. @param post post
  535. @param content 内容
  536. @param mobileNo 手机号
  537. @param success 成功
  538. @param faliure 失败
  539. */
  540. + (void)suggestionAddRequest:(NSString *)post content:(NSString *)content mobileNo:(NSString *)mobileNo success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure {
  541. [self configRequestMethodForm];
  542. NSMutableDictionary *parm = [NSMutableDictionary dictionary];
  543. [parm setValue:content forKey:@"content"];
  544. [parm setValue:mobileNo forKey:@"mobileNo"];
  545. NSString *url = [NSString stringWithFormat:@"%@%@",hostURL, @"/api-user/suggestion/add"];
  546. [self request:post url:url parm:parm success:success faliure:faliure];
  547. }
  548. // /api-auth/user/checkUser
  549. /// 用户信息校验
  550. /// @param get get
  551. /// @param phone 手机号
  552. /// @param password 密码
  553. /// @param success 成功
  554. /// @param faliure 失败
  555. + (void)checkUserRequest:(NSString *)get phone:(NSString *)phone password:(NSString *)password success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure {
  556. NSString *url = [NSString stringWithFormat:@"%@%@",hostURL, @"/api-auth/user/checkUser"];
  557. NSMutableDictionary *parm = [NSMutableDictionary dictionary];
  558. [parm setValue:phone forKey:@"phone"];
  559. [parm setValue:password forKey:@"password"];
  560. [self request:get url:url parm:nil success:success faliure:faliure];
  561. }
  562. // /api-auth/user/updatePhone
  563. /// 修改手机号
  564. /// @param post post
  565. /// @param oldPhone 旧手机号
  566. /// @param authCode 验证码
  567. /// @param newPhone 新手机号码
  568. /// @param success 成功
  569. /// @param faliure 失败
  570. + (void)updatePhoneRequest:(NSString *)post oldPhone:(NSString *)oldPhone authCode:(NSString *)authCode newPhone:(NSString *)newPhone success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure {
  571. [self configRequestMethodForm];
  572. NSString *url = [NSString stringWithFormat:@"%@%@",hostURL, @"/api-auth/user/updatePhone"];
  573. NSMutableDictionary *parm = [NSMutableDictionary dictionary];
  574. [parm setValue:oldPhone forKey:@"oldPhone"];
  575. [parm setValue:authCode forKey:@"authCode"];
  576. [parm setValue:newPhone forKey:@"newPhone"];
  577. [self request:post url:url parm:parm success:success faliure:faliure];
  578. }
  579. // /api-auth/user/refreshImToken
  580. /// 刷新IM token
  581. /// @param post post
  582. /// @param success 成功
  583. /// @param faliure 失败
  584. + (void)refreshImTokenRequest:(NSString *)post success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure {
  585. [self configRequestMethodForm];
  586. NSString *url = [NSString stringWithFormat:@"%@%@",hostURL, @"/api-auth/user/refreshImToken"];
  587. NSMutableDictionary *parm = [NSMutableDictionary dictionary];
  588. [self request:post url:url parm:parm success:success faliure:faliure];
  589. }
  590. #pragma mark ----- 准考证服务
  591. // /api-user/examCertification/queryCertificationPage
  592. /// 获取学员准考证列表
  593. /// @param get get
  594. /// @param success 成功
  595. /// @param faliure 失败
  596. + (void)queryCertificationPageRequest:(NSString *)get success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure {
  597. NSString *url = [NSString stringWithFormat:@"%@%@",hostURL, @"/api-user/examCertification/queryCertificationPage"];
  598. [self request:get url:url parm:nil success:success faliure:faliure];
  599. }
  600. // /api-user/examCertification/needCheckingDetail
  601. /// 待考详情
  602. /// @param get get
  603. /// @param examRegistrationId 报名编号
  604. /// @param success 成功
  605. /// @param faliure 失败
  606. + (void)needCheckingDetailRequest:(NSString *)get examRegistrationId:(NSString *)examRegistrationId success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure {
  607. NSString *url = [NSString stringWithFormat:@"%@%@",hostURL, @"/api-user/examCertification/needCheckingDetail"];
  608. NSMutableDictionary *parm = [NSMutableDictionary dictionary];
  609. [parm setValue:examRegistrationId forKey:@"examRegistrationId"];
  610. [self request:get url:url parm:parm success:success faliure:faliure];
  611. }
  612. // /api-user/examRoomStudentRelation/signIn
  613. /// 签到
  614. /// @param post post
  615. /// @param examRegistrationId 报名编号
  616. /// @param success 成功
  617. /// @param faliure 失败
  618. + (void)signInRequest:(NSString *)post examRegistrationId:(NSString *)examRegistrationId success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure {
  619. [self configRequestMethodForm];
  620. NSString *url = [NSString stringWithFormat:@"%@%@",hostURL, @"/api-user/examRoomStudentRelation/signIn"];
  621. NSMutableDictionary *parm = [NSMutableDictionary dictionary];
  622. [parm setValue:examRegistrationId forKey:@"examRegistrationId"];
  623. [self request:post url:url parm:parm success:success faliure:faliure];
  624. }
  625. #pragma mark ---- 曲库
  626. // /api-user/subject/studentQueryPage
  627. /// 获取学生曲库科目
  628. /// @param get get
  629. /// @param success 成功
  630. /// @param faliure 失败
  631. + (void)musicLibraryPageRequest:(NSString *)get success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure {
  632. NSString *url = [NSString stringWithFormat:@"%@%@", hostURL, @"/api-user/subject/studentQueryPage"];
  633. NSMutableDictionary *parm = [NSMutableDictionary dictionary];
  634. [parm setValue:@"0" forKey:@"parentId"];
  635. [self request:get url:url parm:nil success:success faliure:faliure];
  636. }
  637. // /api-user/examSong/queryPage
  638. /// 分页查询曲目
  639. /// @param get get
  640. /// @param subjectList 专业
  641. /// @param level 级别
  642. /// /// @param page 分页
  643. /// @param rows 条数
  644. /// @param success 成功
  645. /// @param faliure 失败
  646. + (void)musicSongListRequest:(NSString *)get subjectList:(NSString *)subjectList level:(NSString *)level page:(NSString *)page rows:(NSString *)rows success:(void(^)(NSDictionary *dic))success faliure:(void(^)(NSError *error))faliure {
  647. NSString *url = [NSString stringWithFormat:@"%@%@", hostURL, @"/api-user/examSong/queryPage"];
  648. NSMutableDictionary *parm = [NSMutableDictionary dictionary];
  649. [parm setValue:subjectList forKey:@"subjectList"];
  650. [parm setValue:level forKey:@"level"];
  651. [parm setValue:page forKey:@"page"];
  652. [parm setValue:rows forKey:@"rows"];
  653. [self request:get url:url parm:nil success:success faliure:faliure];
  654. }
  655. @end