RQCommonManager.m 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662
  1. //
  2. // RQCommonManager.m
  3. // JSJP
  4. //
  5. // Created by 张嵘 on 2021/8/19.
  6. //
  7. #import "RQCommonManager.h"
  8. @interface RQCommonManager ()
  9. @property (nonatomic, readwrite, assign) BOOL isDispose;
  10. @end
  11. @implementation RQCommonManager
  12. @def_singleton(RQCommonManager);
  13. - (void)saveObjectWithObject:(id)object ForKey:(NSString* )key {
  14. NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
  15. if (!object) {
  16. [ud removeObjectForKey:key];
  17. }else{
  18. [ud setObject:object forKey:key];
  19. }
  20. [ud synchronize];
  21. }
  22. - (id)getObjectWithKey:(NSString *)key {
  23. NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
  24. return [ud objectForKey:key];
  25. }
  26. - (NSString *)getCarTypeStrWithCarType:(RQHomePageCarType)carType {
  27. switch (carType) {
  28. case RQHomePageCarType_Car:
  29. return @"小车";
  30. case RQHomePageCarType_Bus:
  31. return @"客车";
  32. case RQHomePageCarType_Truck:
  33. return @"货车";
  34. case RQHomePageCarType_Motorcycle:
  35. return @"摩托车";
  36. default:
  37. return @"";
  38. }
  39. }
  40. - (NSString *)getSubjectTypeStrWithSubjectType:(RQHomePageSubjectType)subjecType {
  41. if (subjecType == RQHomePageSubjectType_SubjectOne) {
  42. return @"科目一";
  43. } else if (subjecType == RQHomePageSubjectType_SubjectFour) {
  44. return @"科目四";
  45. } else {
  46. return @"";
  47. }
  48. }
  49. - (void)keepIdleTimerDisabledisOpen:(BOOL)isOpen {
  50. _isDispose = isOpen;
  51. [UIApplication sharedApplication].idleTimerDisabled = _isDispose;
  52. __block RACDisposable *handler = [[RACObserve([UIApplication sharedApplication], idleTimerDisabled) distinctUntilChanged] subscribeNext:^(id _Nullable x) {
  53. if (_isDispose) {
  54. if (![UIApplication sharedApplication].idleTimerDisabled) {
  55. [UIApplication sharedApplication].idleTimerDisabled = _isDispose;
  56. }
  57. } else {
  58. [handler dispose];
  59. }
  60. }];
  61. }
  62. - (NSArray *)adPaths {
  63. id object = [self getObjectWithKey:@"adPaths"];
  64. if (RQObjectIsNil(object)) {
  65. return @[];
  66. } else {
  67. NSArray *adPaths = (NSArray *)object;
  68. return adPaths;
  69. }
  70. }
  71. - (void)setAdPaths:(NSArray *)adPaths {
  72. [self saveObjectWithObject:adPaths ForKey:@"adPaths"];
  73. }
  74. - (NSString *)isWelcomed {
  75. id object = [self getObjectWithKey:@"isWelcomed"];
  76. if (RQObjectIsNil(object)) {
  77. return @"";
  78. } else {
  79. NSString *isWelcomed = (NSString *)object;
  80. return isWelcomed;
  81. }
  82. }
  83. - (void)setIsWelcomed:(NSString *)isWelcomed {
  84. [self saveObjectWithObject:isWelcomed ForKey:@"isWelcomed"];
  85. }
  86. - (BOOL)JSJP_APP_AD_OPEN {
  87. id object = [RQ_SHARE_FUNCTION getObjectWithKey:@"JSJP_APP_AD_OPEN"];
  88. if (RQObjectIsNil(object)) {
  89. return NO;
  90. } else {
  91. BOOL appadopen = [object boolValue];
  92. return appadopen;
  93. }
  94. }
  95. - (BOOL)JSJP_APP_JSQ_ICON_OPEN {
  96. id object = [RQ_SHARE_FUNCTION getObjectWithKey:@"JSJP_APP_JSQ_ICON_OPEN"];
  97. if (RQObjectIsNil(object)) {
  98. return NO;
  99. } else {
  100. BOOL appadopen = [object boolValue];
  101. return appadopen;
  102. }
  103. }
  104. - (BOOL)JSJP_APP_VOICE {
  105. id object = [RQ_SHARE_FUNCTION getObjectWithKey:@"JSJP_APP_VOICE"];
  106. if (RQObjectIsNil(object)) {
  107. return NO;
  108. } else {
  109. BOOL appadopen = [object boolValue];
  110. return appadopen;
  111. }
  112. }
  113. - (void)setJSJP_APP_AD_OPEN:(BOOL)JSJP_APP_AD_OPEN {
  114. [RQ_SHARE_FUNCTION saveObjectWithObject:[NSNumber numberWithBool:JSJP_APP_AD_OPEN] ForKey:@"JSJP_APP_AD_OPEN"];
  115. }
  116. - (void)setJSJP_APP_JSQ_ICON_OPEN:(BOOL)JSJP_APP_JSQ_ICON_OPEN {
  117. [RQ_SHARE_FUNCTION saveObjectWithObject:[NSNumber numberWithBool:JSJP_APP_JSQ_ICON_OPEN] ForKey:@"JSJP_APP_JSQ_ICON_OPEN"];
  118. }
  119. - (void)setJSJP_APP_VOICE:(BOOL)JSJP_APP_VOICE {
  120. [RQ_SHARE_FUNCTION saveObjectWithObject:[NSNumber numberWithBool:JSJP_APP_VOICE] ForKey:@"JSJP_APP_VOICE"];
  121. }
  122. - (NSInteger)JSJP_APP_AD_CYCLE {
  123. id object = [RQ_SHARE_FUNCTION getObjectWithKey:@"JSJP_APP_AD_CYCLE"];
  124. if (RQObjectIsNil(object)) {
  125. return 30;
  126. } else {
  127. NSInteger appadcycle = [object integerValue];
  128. return appadcycle;
  129. }
  130. }
  131. - (void)setJSJP_iOS_PT:(NSInteger)JSJP_iOS_PT {
  132. [RQ_SHARE_FUNCTION saveObjectWithObject:[NSNumber numberWithInt:JSJP_iOS_PT] ForKey:@"JSJP_iOS_PT"];
  133. }
  134. - (NSInteger)JSJP_iOS_PT {
  135. id object = [RQ_SHARE_FUNCTION getObjectWithKey:@"JSJP_iOS_PT"];
  136. if (RQObjectIsNil(object)) {
  137. return 0;
  138. } else {
  139. NSInteger value = [object integerValue];
  140. return value;
  141. }
  142. }
  143. - (NSDictionary *)JSJP_APP_VOICE_SET
  144. {
  145. id object = [RQ_SHARE_FUNCTION getObjectWithKey:@"JSJP_APP_VOICE_SET"];
  146. if (RQObjectIsNil(object)) {
  147. return @{};
  148. }
  149. return object;
  150. }
  151. - (void)setJSJP_APP_AD_CYCLE:(NSInteger)JSJP_APP_AD_CYCLE {
  152. [RQ_SHARE_FUNCTION saveObjectWithObject:[NSNumber numberWithInteger:JSJP_APP_AD_CYCLE] ForKey:@"JSJP_APP_AD_CYCLE"];
  153. }
  154. - (void)setJSJP_APP_VOICE_SET:(NSDictionary *)JSJP_APP_VOICE_SET {
  155. if (JSJP_APP_VOICE_SET)
  156. [RQ_SHARE_FUNCTION saveObjectWithObject:JSJP_APP_VOICE_SET ForKey:@"JSJP_APP_VOICE_SET"];
  157. }
  158. - (BOOL)JSJP_Is_Online_Media_Image {
  159. id object = [RQ_SHARE_FUNCTION getObjectWithKey:@"JSJP_Is_Online_Media_Image"];
  160. if (RQObjectIsNil(object)) {
  161. return NO;
  162. } else {
  163. BOOL isOnlineMediaImage = [object boolValue];
  164. return isOnlineMediaImage;
  165. }
  166. }
  167. - (void)setJSJP_Is_Online_Media_Image:(BOOL)JSJP_Is_Online_Media_Image {
  168. [RQ_SHARE_FUNCTION saveObjectWithObject:[NSNumber numberWithInteger:JSJP_Is_Online_Media_Image] ForKey:@"JSJP_Is_Online_Media_Image"];
  169. }
  170. - (BOOL)JSJP_Is_Online_Media_Video {
  171. id object = [RQ_SHARE_FUNCTION getObjectWithKey:@"JSJP_Is_Online_Media_Video"];
  172. if (RQObjectIsNil(object)) {
  173. return NO;
  174. } else {
  175. BOOL isOnlineMediaVideo = [object boolValue];
  176. return isOnlineMediaVideo;
  177. }
  178. }
  179. - (void)setJSJP_Is_Online_Media_Video:(BOOL)JSJP_Is_Online_Media_Video {
  180. [RQ_SHARE_FUNCTION saveObjectWithObject:[NSNumber numberWithInteger:JSJP_Is_Online_Media_Video] ForKey:@"JSJP_Is_Online_Media_Video"];
  181. }
  182. - (BOOL)JSJP_APP_ICON_NEED_CHANGE {
  183. id object = [RQ_SHARE_FUNCTION getObjectWithKey:@"JSJP_APP_ICON_NEED_CHANGE"];
  184. if (RQObjectIsNil(object)) {
  185. return NO;
  186. } else {
  187. BOOL JSJP_APP_ICON_NEED_CHANGE = [object boolValue];
  188. return JSJP_APP_ICON_NEED_CHANGE;
  189. }
  190. }
  191. - (void)setJSJP_APP_ICON_NEED_CHANGE:(BOOL)JSJP_APP_ICON_NEED_CHANGE {
  192. [RQ_SHARE_FUNCTION saveObjectWithObject:[NSNumber numberWithInteger:JSJP_APP_ICON_NEED_CHANGE] ForKey:@"JSJP_APP_ICON_NEED_CHANGE"];
  193. }
  194. - (NSInteger)JSJP_APP_AD_RATE {
  195. id object = [RQ_SHARE_FUNCTION getObjectWithKey:@"JSJP_APP_AD_RATE"];
  196. if (RQObjectIsNil(object)) {
  197. return 50;
  198. } else {
  199. NSInteger JSJP_APP_AD_RATE = [object integerValue];
  200. return JSJP_APP_AD_RATE;
  201. }
  202. }
  203. - (void)setJSJP_APP_AD_RATE:(NSInteger)JSJP_APP_AD_RATE {
  204. [RQ_SHARE_FUNCTION saveObjectWithObject:[NSNumber numberWithInteger:JSJP_APP_AD_RATE] ForKey:@"JSJP_APP_AD_RATE"];
  205. }
  206. - (NSInteger)JSJP_APP_MAdTime {
  207. id object = [RQ_SHARE_FUNCTION getObjectWithKey:@"JSJP_APP_MAdTime"];
  208. if (RQObjectIsNil(object)) {
  209. return 6;
  210. } else {
  211. NSInteger JSJP_APP_MAdTime = [object integerValue];
  212. return JSJP_APP_MAdTime;
  213. }
  214. }
  215. - (void)setJSJP_APP_MAdTime:(NSInteger)JSJP_APP_MAdTime {
  216. [RQ_SHARE_FUNCTION saveObjectWithObject:[NSNumber numberWithInteger:JSJP_APP_MAdTime] ForKey:@"JSJP_APP_MAdTime"];
  217. }
  218. - (NSInteger)JSJP_APP_XM_AD_RATE {
  219. id object = [RQ_SHARE_FUNCTION getObjectWithKey:@"JSJP_APP_XM_AD_RATE"];
  220. if (RQObjectIsNil(object)) {
  221. return 50;
  222. } else {
  223. NSInteger JSJP_APP_XM_AD_RATE = [object integerValue];
  224. return JSJP_APP_XM_AD_RATE;
  225. }
  226. }
  227. - (void)setJSJP_APP_XM_AD_RATE:(NSInteger)JSJP_APP_XM_AD_RATE {
  228. [RQ_SHARE_FUNCTION saveObjectWithObject:[NSNumber numberWithInteger:JSJP_APP_XM_AD_RATE] ForKey:@"JSJP_APP_XM_AD_RATE"];
  229. }
  230. - (NSString *)JSJP_APP_PTSC_FBL {
  231. id object = [self getObjectWithKey:@"JSJP_APP_PTSC_FBL"];
  232. if (RQObjectIsNil(object)) {
  233. return @"320,240";
  234. } else {
  235. NSString *JSJP_APP_PTSC_FBL = (NSString *)object;
  236. return JSJP_APP_PTSC_FBL;
  237. }
  238. }
  239. - (void)setJSJP_APP_PTSC_FBL:(NSString *)JSJP_APP_PTSC_FBL {
  240. [self saveObjectWithObject:JSJP_APP_PTSC_FBL ForKey:@"JSJP_APP_PTSC_FBL"];
  241. }
  242. - (NSString *)JSJP_SHARE_CITY {
  243. id object = [self getObjectWithKey:@"JSJP_SHARE_CITY"];
  244. if (RQObjectIsNil(object)) {
  245. return @"";
  246. } else {
  247. NSString *JSJP_SHARE_CITY = (NSString *)object;
  248. return JSJP_SHARE_CITY;
  249. }
  250. }
  251. - (NSString *)JSJP_FREE_VIP {
  252. id object = [self getObjectWithKey:@"JSJP_FREE_VIP"];
  253. if (RQObjectIsNil(object)) {
  254. return @"";
  255. } else {
  256. NSString *JSJP_FREE_VIP = (NSString *)object;
  257. return JSJP_FREE_VIP;
  258. }
  259. }
  260. - (void)setJSJP_XCX_NAME:(NSString *)JSJP_XCX_NAME {
  261. [self saveObjectWithObject:JSJP_XCX_NAME ForKey:@"JSJP_XCX_NAME"];
  262. }
  263. - (NSString *)JSJP_XCX_NAME {
  264. id object = [self getObjectWithKey:@"JSJP_XCX_NAME"];
  265. if (RQObjectIsNil(object)) {
  266. return @"";
  267. } else {
  268. NSString *JSJP_XCX_NAME = (NSString *)object;
  269. return JSJP_XCX_NAME;
  270. }
  271. }
  272. - (void)setJSJP_XCX_PAGE:(NSString *)JSJP_XCX_PAGE {
  273. [self saveObjectWithObject:JSJP_XCX_PAGE ForKey:@"JSJP_XCX_PAGE"];
  274. }
  275. - (NSString *)JSJP_XCX_PAGE {
  276. id object = [self getObjectWithKey:@"JSJP_XCX_PAGE"];
  277. if (RQObjectIsNil(object)) {
  278. return @"";
  279. } else {
  280. NSString *JSJP_XCX_PAGE = (NSString *)object;
  281. return JSJP_XCX_PAGE;
  282. }
  283. }
  284. - (void)setJSJP_SHARE_CITY:(NSString *)JSJP_SHARE_CITY {
  285. [self saveObjectWithObject:JSJP_SHARE_CITY ForKey:@"JSJP_SHARE_CITY"];
  286. }
  287. - (void)setJSJP_FREE_VIP:(NSString *)JSJP_FREE_VIP {
  288. [self saveObjectWithObject:JSJP_FREE_VIP ForKey:@"JSJP_FREE_VIP"];
  289. }
  290. - (BOOL)JSJP_DOMIAN_NAME_IS_OLD {
  291. id object = [RQ_SHARE_FUNCTION getObjectWithKey:@"JSJP_DOMIAN_NAME_IS_OLD"];
  292. if (RQObjectIsNil(object)) {
  293. return NO;
  294. } else {
  295. BOOL isOld = [object boolValue];
  296. return isOld;
  297. }
  298. }
  299. - (void)setJSJP_DOMIAN_NAME_IS_OLD:(BOOL)JSJP_DOMIAN_NAME_IS_OLD {
  300. [RQ_SHARE_FUNCTION saveObjectWithObject:[NSNumber numberWithBool:JSJP_DOMIAN_NAME_IS_OLD] ForKey:@"JSJP_DOMIAN_NAME_IS_OLD"];
  301. }
  302. - (NSString *)updateTimeStr {
  303. id object = [self getObjectWithKey:@"updateTimeStr"];
  304. if (RQObjectIsNil(object)) {
  305. return @"暂未同步";
  306. } else {
  307. NSString *updateTimeStr = (NSString *)object;
  308. return updateTimeStr;
  309. }
  310. }
  311. - (void)setUpdateTimeStr:(NSString *)updateTimeStr {
  312. [self saveObjectWithObject:updateTimeStr ForKey:@"updateTimeStr"];
  313. }
  314. - (NSInteger)myErrorOneCount {
  315. id object = [self getObjectWithKey:@"myErrorOneCount"];
  316. if (RQObjectIsNil(object)) {
  317. return 0;
  318. } else {
  319. NSInteger myErrorOneCount = [object integerValue];
  320. return myErrorOneCount;
  321. }
  322. }
  323. - (void)setMyErrorOneCount:(NSInteger)myErrorOneCount {
  324. [self saveObjectWithObject:[NSNumber numberWithInteger:myErrorOneCount] ForKey:@"myErrorOneCount"];
  325. }
  326. - (NSInteger)myErrorFourCount {
  327. id object = [self getObjectWithKey:@"myErrorFourCount"];
  328. if (RQObjectIsNil(object)) {
  329. return 0;
  330. } else {
  331. NSInteger myErrorFourCount = [object integerValue];
  332. return myErrorFourCount;
  333. }
  334. }
  335. - (void)setMyErrorFourCount:(NSInteger)myErrorFourCount {
  336. [self saveObjectWithObject:[NSNumber numberWithInteger:myErrorFourCount] ForKey:@"myErrorFourCount"];
  337. }
  338. - (NSInteger)myCollectOneCount {
  339. id object = [self getObjectWithKey:@"myCollectOneCount"];
  340. if (RQObjectIsNil(object)) {
  341. return 0;
  342. } else {
  343. NSInteger myCollectOneCount = [object integerValue];
  344. return myCollectOneCount;
  345. }
  346. }
  347. - (void)setMyCollectOneCount:(NSInteger)myCollectOneCount {
  348. [self saveObjectWithObject:[NSNumber numberWithInteger:myCollectOneCount] ForKey:@"myCollectOneCount"];
  349. }
  350. - (NSInteger)myCollectFourCount {
  351. id object = [self getObjectWithKey:@"myCollectFourCount"];
  352. if (RQObjectIsNil(object)) {
  353. return 0;
  354. } else {
  355. NSInteger myCollectFourCount = [object integerValue];
  356. return myCollectFourCount;
  357. }
  358. }
  359. - (void)setMyCollectFourCount:(NSInteger)myCollectFourCount {
  360. [self saveObjectWithObject:[NSNumber numberWithInteger:myCollectFourCount] ForKey:@"myCollectFourCount"];
  361. }
  362. - (NSInteger)myExamOneCount {
  363. id object = [self getObjectWithKey:@"myExamOneCount"];
  364. if (RQObjectIsNil(object)) {
  365. return 0;
  366. } else {
  367. NSInteger myExamOneCount = [object integerValue];
  368. return myExamOneCount;
  369. }
  370. }
  371. - (void)setMyExamOneCount:(NSInteger)myExamOneCount {
  372. [self saveObjectWithObject:[NSNumber numberWithInteger:myExamOneCount] ForKey:@"myExamOneCount"];
  373. }
  374. - (NSInteger)myExamFourCount {
  375. id object = [self getObjectWithKey:@"myExamFourCount"];
  376. if (RQObjectIsNil(object)) {
  377. return 0;
  378. } else {
  379. NSInteger myExamFourCount = [object integerValue];
  380. return myExamFourCount;
  381. }
  382. }
  383. - (void)setMyExamFourCount:(NSInteger)myExamFourCount {
  384. [self saveObjectWithObject:[NSNumber numberWithInteger:myExamFourCount] ForKey:@"myExamFourCount"];
  385. }
  386. - (NSInteger)quanZhouLookVideoCount {
  387. id object = [self getObjectWithKey:@"quanZhouLookVideoCount"];
  388. if (RQObjectIsNil(object)) {
  389. return 1;
  390. } else {
  391. NSInteger quanZhouLookVideoCount = [object integerValue];
  392. return quanZhouLookVideoCount;
  393. }
  394. }
  395. - (void)setQuanZhouLookVideoCount:(NSInteger)quanZhouLookVideoCount {
  396. [self saveObjectWithObject:[NSNumber numberWithInteger:quanZhouLookVideoCount] ForKey:@"quanZhouLookVideoCount"];
  397. }
  398. - (BOOL)isQzLook {
  399. NSString *key = [NSString stringWithFormat:@"isQzLook%@",RQ_USER_MANAGER.currentUser? RQ_USER_MANAGER.currentUser._id : @""];
  400. id object = [self getObjectWithKey:key];
  401. if (RQObjectIsNil(object)) {
  402. return RQObjectIsNil(RQ_USER_MANAGER.currentUser);
  403. } else {
  404. BOOL isQzLook = [object boolValue];
  405. return isQzLook;
  406. }
  407. }
  408. - (void)setIsQzLook:(BOOL)isQzLook {
  409. NSString *key = [NSString stringWithFormat:@"isQzLook%@",RQ_USER_MANAGER.currentUser? RQ_USER_MANAGER.currentUser._id : @""];
  410. [self saveObjectWithObject:[NSNumber numberWithBool:isQzLook] ForKey:key];
  411. }
  412. - (NSArray *)JSJP_APP_KAOCHANG_OPEN_ARR {
  413. id object = [self getObjectWithKey:@"JSJP_APP_KAOCHANG_OPEN_ARR"];
  414. if (RQObjectIsNil(object)) {
  415. return @[];
  416. } else {
  417. NSArray *JSJP_APP_KAOCHANG_OPEN_ARR = (NSArray *)object;
  418. return JSJP_APP_KAOCHANG_OPEN_ARR;
  419. }
  420. }
  421. - (void)setJSJP_APP_KAOCHANG_OPEN_ARR:(NSArray *)JSJP_APP_KAOCHANG_OPEN_ARR {
  422. [self saveObjectWithObject:JSJP_APP_KAOCHANG_OPEN_ARR ForKey:@"JSJP_APP_KAOCHANG_OPEN_ARR"];
  423. }
  424. - (void)getCurrentStateWithCompleteBlock:(CompleteBlock)completeBlock {
  425. NSMutableArray *arr=[NSMutableArray array];
  426. [arr addPro:@"stuOutId" Value:RQ_USER_MANAGER.currentUser.outId];
  427. [arr addPro:@"dqbh" Value:RQ_USER_MANAGER.currentUser.city];
  428. [arr addPro:@"subject" Value:RQ_USER_MANAGER.currentUser.pxjd];
  429. NSString* method = @"getStuTrainStatus";
  430. [jiaPeiManager requestAnythingWithURL:method array:arr data:nil completion:^(NSDictionary * root) {
  431. //更新数据
  432. if ([root[@"code"] isEqualToString:@"0"]) {
  433. // [self upDateLocalMNClassIDWithDic:root[@"body"]];
  434. }
  435. //其它地方调用
  436. if (completeBlock) {
  437. completeBlock(root);
  438. return;
  439. }
  440. if (!root) {
  441. return;
  442. }
  443. if ([root[@"code"] isEqualToString:@"1"]) {
  444. return;
  445. }
  446. //跳转判断
  447. /*模拟训练状态判断
  448. 0 成功获取学员信息
  449. 1 学员还未在模拟器签到
  450. 2.已登录,未签到(未进行人脸验证)
  451. 3 无法获取到当前训练科目(人脸比对验证通过,但是没有上传任何学时)
  452. 4 隔日签到记录
  453. 5 分钟学时科目异常
  454. */
  455. NSString *status = [NSString stringWithFormat:@"%@",root[@"body"][@"mn"][@"TYPE"]];
  456. if ([status isEqualToString:@"0"]) {
  457. [self showSelectGoToTrainWithType:@"mn" title:nil message:@"系统检测到您正在进行模拟计时,是否前往" cancle:@"否" sure:@"是"];
  458. }else if ([status isEqualToString:@"1"]) {
  459. }else if ([status isEqualToString:@"2"]) {
  460. [self showSelectGoToTrainWithType:@"mn" title:nil message:@"您已在模拟设备登录,前往开始模拟计时" cancle:@"否" sure:@"是"];
  461. }else if ([status isEqualToString:@"3"]) {
  462. [self showSelectGoToTrainWithType:@"mn" title:nil message:@"您已在模拟设备登录,前往开始模拟计时" cancle:@"否" sure:@"是"];
  463. }else if ([status isEqualToString:@"4"]) {
  464. [self showSelectGoToTrainWithType:@"mn" title:nil message:@"您昨(往)日模拟计时训练尚未签退" cancle:@"我知道了" sure:@"立即签退"];
  465. }else if ([status isEqualToString:@"5"]) {
  466. }
  467. }];
  468. }
  469. //弹出一个提示框 提示框上展示一些东西 东西里面有一些计时信息 暂时用alertC代替
  470. - (void)showSelectGoToTrainWithType:(NSString *)type title:(NSString *)title message:(NSString *)message cancle:(NSString *)cancle sure:(NSString *)sure{
  471. UIViewController *currentVC = RQControllerHelper.currentViewController;
  472. while (currentVC.presentedViewController) {
  473. currentVC = currentVC.presentedViewController;
  474. }
  475. //判断已推入当前vc
  476. if ([currentVC isKindOfClass:[UITabBarController class]]) {
  477. UINavigationController *nav = [RQControllerHelper.currentViewController.childViewControllers lastObject];
  478. if ([type isEqualToString:@"mn"]) {
  479. if ([[nav.childViewControllers lastObject] isKindOfClass:[MNQtTrainVC class]]) {
  480. return;
  481. }
  482. }
  483. }
  484. UIAlertController *alertFind = [UIAlertController alertControllerWithTitle:nil message:message preferredStyle:UIAlertControllerStyleAlert];
  485. [alertFind addAction:[UIAlertAction actionWithTitle:cancle style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
  486. }]];
  487. [alertFind addAction:[UIAlertAction actionWithTitle:sure style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {
  488. NSString *vcName = nil;
  489. if ([type isEqualToString:@"mn"]) {
  490. //去模拟计时界面
  491. vcName = @"MNQtTrainVC";
  492. }
  493. UINavigationController *vc = [self getPeriodVCWithName:vcName];
  494. if (vc) {
  495. vc.modalPresentationStyle = UIModalPresentationFullScreen;
  496. [currentVC presentViewController:vc animated:YES completion:nil];
  497. }
  498. }]];
  499. [currentVC presentViewController:alertFind animated:true completion:nil];
  500. }
  501. -(UINavigationController *)getPeriodVCWithName:(NSString *)name{
  502. NSInteger isNeed = 1;
  503. for (ParamsItem *item in RQ_USER_MANAGER.currentUser.params) {
  504. if ([item.KEY isEqualToString:@"SP_VERIFY_IMEI"]) {
  505. isNeed = [item.VALUE integerValue];
  506. }
  507. }
  508. // NSString *IMEI = RQ_USER_MANAGER.currentUser.imei;
  509. // if (IMEI.length > 0) {
  510. // if (isNeed == 1) {
  511. // if (![IMEI isEqualToString:[Tools getIDFV]]) {
  512. // ShowMsg(@"您当前手机与绑定手机不一致, 无法计时");
  513. // return nil;
  514. // }
  515. // }else{
  516. // NSString *logType = @"";
  517. // if ([name isEqualToString:@"MNQtTrainVC"]){
  518. // logType = @"3";
  519. // }else if ([name isEqualToString:@"BigTruckVC"]){
  520. // logType = @"4";
  521. // }
  522. // [Tools saveNotBindImeiLogWithType:logType];
  523. // }
  524. //
  525. // }else {
  526. // UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"温馨提示" message:@"您的账号暂未与该手机绑定,不能进行此操作,请通过“考试界面左上角点击头像-弹出左边侧栏-绑定账号”进行绑定" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
  527. // [alert show];
  528. // return nil;
  529. // }
  530. //已经在模拟计时中了 又去扫模拟计时二维码码
  531. if ([name isEqualToString:@"MNQtTrainVC"] && myDelegate.mnPeriodVC) {
  532. myDelegate.mnTrainType = @"0";//既然存在 表明在模拟计时中
  533. UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:myDelegate.mnPeriodVC];
  534. return nav;
  535. }else{
  536. UIViewController* vc = [NSClassFromString(name) new];
  537. UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:vc];
  538. return nav;
  539. }
  540. }
  541. - (void)updateVipList {
  542. [[RQ_HTTP_Service getPlaceVipList] subscribeNext:^(NSArray *placeVipList) {
  543. RQ_COMMON_MANAGER.vipListArr = [placeVipList.rac_sequence.signal map:^id _Nullable(RQPlaceVipListModel *placeVipListModel) {
  544. return placeVipListModel.examName;
  545. }].toArray;
  546. }];
  547. }
  548. @end