// // RQCommonManager.m // JSJP // // Created by 张嵘 on 2021/8/19. // #import "RQCommonManager.h" @interface RQCommonManager () @property (nonatomic, readwrite, assign) BOOL isDispose; @end @implementation RQCommonManager @def_singleton(RQCommonManager); - (void)saveObjectWithObject:(id)object ForKey:(NSString* )key { NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; if (!object) { [ud removeObjectForKey:key]; }else{ [ud setObject:object forKey:key]; } [ud synchronize]; } - (id)getObjectWithKey:(NSString *)key { NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; return [ud objectForKey:key]; } - (NSString *)getCarTypeStrWithCarType:(RQHomePageCarType)carType { switch (carType) { case RQHomePageCarType_Car: return @"小车"; case RQHomePageCarType_Bus: return @"客车"; case RQHomePageCarType_Truck: return @"货车"; case RQHomePageCarType_Motorcycle: return @"摩托车"; default: return @""; } } - (NSString *)getSubjectTypeStrWithSubjectType:(RQHomePageSubjectType)subjecType { if (subjecType == RQHomePageSubjectType_SubjectOne) { return @"科目一"; } else if (subjecType == RQHomePageSubjectType_SubjectFour) { return @"科目四"; } else { return @""; } } - (void)keepIdleTimerDisabledisOpen:(BOOL)isOpen { _isDispose = isOpen; [UIApplication sharedApplication].idleTimerDisabled = _isDispose; __block RACDisposable *handler = [[RACObserve([UIApplication sharedApplication], idleTimerDisabled) distinctUntilChanged] subscribeNext:^(id _Nullable x) { if (_isDispose) { if (![UIApplication sharedApplication].idleTimerDisabled) { [UIApplication sharedApplication].idleTimerDisabled = _isDispose; } } else { [handler dispose]; } }]; } - (NSArray *)adPaths { id object = [self getObjectWithKey:@"adPaths"]; if (RQObjectIsNil(object)) { return @[]; } else { NSArray *adPaths = (NSArray *)object; return adPaths; } } - (void)setAdPaths:(NSArray *)adPaths { [self saveObjectWithObject:adPaths ForKey:@"adPaths"]; } - (NSString *)isWelcomed { id object = [self getObjectWithKey:@"isWelcomed"]; if (RQObjectIsNil(object)) { return @""; } else { NSString *isWelcomed = (NSString *)object; return isWelcomed; } } - (void)setIsWelcomed:(NSString *)isWelcomed { [self saveObjectWithObject:isWelcomed ForKey:@"isWelcomed"]; } - (BOOL)JSJP_APP_AD_OPEN { id object = [RQ_SHARE_FUNCTION getObjectWithKey:@"JSJP_APP_AD_OPEN"]; if (RQObjectIsNil(object)) { return NO; } else { BOOL appadopen = [object boolValue]; return appadopen; } } - (void)setJSJP_APP_AD_OPEN:(BOOL)JSJP_APP_AD_OPEN { [RQ_SHARE_FUNCTION saveObjectWithObject:[NSNumber numberWithBool:JSJP_APP_AD_OPEN] ForKey:@"JSJP_APP_AD_OPEN"]; } - (NSInteger)JSJP_APP_AD_CYCLE { id object = [RQ_SHARE_FUNCTION getObjectWithKey:@"JSJP_APP_AD_CYCLE"]; if (RQObjectIsNil(object)) { return 30; } else { NSInteger appadcycle = [object integerValue]; return appadcycle; } } - (void)setJSJP_APP_AD_CYCLE:(NSInteger)JSJP_APP_AD_CYCLE { [RQ_SHARE_FUNCTION saveObjectWithObject:[NSNumber numberWithInteger:JSJP_APP_AD_CYCLE] ForKey:@"JSJP_APP_AD_CYCLE"]; } - (BOOL)JSJP_Is_Online_Media_Image { id object = [RQ_SHARE_FUNCTION getObjectWithKey:@"JSJP_Is_Online_Media_Image"]; if (RQObjectIsNil(object)) { return NO; } else { BOOL isOnlineMediaImage = [object boolValue]; return isOnlineMediaImage; } } - (void)setJSJP_Is_Online_Media_Image:(BOOL)JSJP_Is_Online_Media_Image { [RQ_SHARE_FUNCTION saveObjectWithObject:[NSNumber numberWithInteger:JSJP_Is_Online_Media_Image] ForKey:@"JSJP_Is_Online_Media_Image"]; } - (BOOL)JSJP_Is_Online_Media_Video { id object = [RQ_SHARE_FUNCTION getObjectWithKey:@"JSJP_Is_Online_Media_Video"]; if (RQObjectIsNil(object)) { return NO; } else { BOOL isOnlineMediaVideo = [object boolValue]; return isOnlineMediaVideo; } } - (void)setJSJP_Is_Online_Media_Video:(BOOL)JSJP_Is_Online_Media_Video { [RQ_SHARE_FUNCTION saveObjectWithObject:[NSNumber numberWithInteger:JSJP_Is_Online_Media_Video] ForKey:@"JSJP_Is_Online_Media_Video"]; } - (BOOL)JSJP_APP_ICON_NEED_CHANGE { id object = [RQ_SHARE_FUNCTION getObjectWithKey:@"JSJP_APP_ICON_NEED_CHANGE"]; if (RQObjectIsNil(object)) { return NO; } else { BOOL JSJP_APP_ICON_NEED_CHANGE = [object boolValue]; return JSJP_APP_ICON_NEED_CHANGE; } } - (void)setJSJP_APP_ICON_NEED_CHANGE:(BOOL)JSJP_APP_ICON_NEED_CHANGE { [RQ_SHARE_FUNCTION saveObjectWithObject:[NSNumber numberWithInteger:JSJP_APP_ICON_NEED_CHANGE] ForKey:@"JSJP_APP_ICON_NEED_CHANGE"]; } - (NSInteger)JSJP_APP_AD_RATE { id object = [RQ_SHARE_FUNCTION getObjectWithKey:@"JSJP_APP_AD_RATE"]; if (RQObjectIsNil(object)) { return 70; } else { NSInteger JSJP_APP_AD_RATE = [object integerValue]; return JSJP_APP_AD_RATE; } } - (void)setJSJP_APP_AD_RATE:(NSInteger)JSJP_APP_AD_RATE { [RQ_SHARE_FUNCTION saveObjectWithObject:[NSNumber numberWithInteger:JSJP_APP_AD_RATE] ForKey:@"JSJP_APP_AD_RATE"]; } - (NSString *)JSJP_APP_PTSC_FBL { id object = [self getObjectWithKey:@"JSJP_APP_PTSC_FBL"]; if (RQObjectIsNil(object)) { return @"320,240"; } else { NSString *JSJP_APP_PTSC_FBL = (NSString *)object; return JSJP_APP_PTSC_FBL; } } - (void)setJSJP_APP_PTSC_FBL:(NSString *)JSJP_APP_PTSC_FBL { [self saveObjectWithObject:JSJP_APP_PTSC_FBL ForKey:@"JSJP_APP_PTSC_FBL"]; } - (BOOL)JSJP_DOMIAN_NAME_IS_OLD { id object = [RQ_SHARE_FUNCTION getObjectWithKey:@"JSJP_DOMIAN_NAME_IS_OLD"]; if (RQObjectIsNil(object)) { return NO; } else { BOOL isOld = [object boolValue]; return isOld; } } - (void)setJSJP_DOMIAN_NAME_IS_OLD:(BOOL)JSJP_DOMIAN_NAME_IS_OLD { [RQ_SHARE_FUNCTION saveObjectWithObject:[NSNumber numberWithBool:JSJP_DOMIAN_NAME_IS_OLD] ForKey:@"JSJP_DOMIAN_NAME_IS_OLD"]; } - (NSString *)updateTimeStr { id object = [self getObjectWithKey:@"updateTimeStr"]; if (RQObjectIsNil(object)) { return @"暂未同步"; } else { NSString *updateTimeStr = (NSString *)object; return updateTimeStr; } } - (void)setUpdateTimeStr:(NSString *)updateTimeStr { [self saveObjectWithObject:updateTimeStr ForKey:@"updateTimeStr"]; } - (NSInteger)myErrorOneCount { id object = [self getObjectWithKey:@"myErrorOneCount"]; if (RQObjectIsNil(object)) { return 0; } else { NSInteger myErrorOneCount = [object integerValue]; return myErrorOneCount; } } - (void)setMyErrorOneCount:(NSInteger)myErrorOneCount { [self saveObjectWithObject:[NSNumber numberWithInteger:myErrorOneCount] ForKey:@"myErrorOneCount"]; } - (NSInteger)myErrorFourCount { id object = [self getObjectWithKey:@"myErrorFourCount"]; if (RQObjectIsNil(object)) { return 0; } else { NSInteger myErrorFourCount = [object integerValue]; return myErrorFourCount; } } - (void)setMyErrorFourCount:(NSInteger)myErrorFourCount { [self saveObjectWithObject:[NSNumber numberWithInteger:myErrorFourCount] ForKey:@"myErrorFourCount"]; } - (NSInteger)myCollectOneCount { id object = [self getObjectWithKey:@"myCollectOneCount"]; if (RQObjectIsNil(object)) { return 0; } else { NSInteger myCollectOneCount = [object integerValue]; return myCollectOneCount; } } - (void)setMyCollectOneCount:(NSInteger)myCollectOneCount { [self saveObjectWithObject:[NSNumber numberWithInteger:myCollectOneCount] ForKey:@"myCollectOneCount"]; } - (NSInteger)myCollectFourCount { id object = [self getObjectWithKey:@"myCollectFourCount"]; if (RQObjectIsNil(object)) { return 0; } else { NSInteger myCollectFourCount = [object integerValue]; return myCollectFourCount; } } - (void)setMyCollectFourCount:(NSInteger)myCollectFourCount { [self saveObjectWithObject:[NSNumber numberWithInteger:myCollectFourCount] ForKey:@"myCollectFourCount"]; } - (NSInteger)myExamOneCount { id object = [self getObjectWithKey:@"myExamOneCount"]; if (RQObjectIsNil(object)) { return 0; } else { NSInteger myExamOneCount = [object integerValue]; return myExamOneCount; } } - (void)setMyExamOneCount:(NSInteger)myExamOneCount { [self saveObjectWithObject:[NSNumber numberWithInteger:myExamOneCount] ForKey:@"myExamOneCount"]; } - (NSInteger)myExamFourCount { id object = [self getObjectWithKey:@"myExamFourCount"]; if (RQObjectIsNil(object)) { return 0; } else { NSInteger myExamFourCount = [object integerValue]; return myExamFourCount; } } - (void)setMyExamFourCount:(NSInteger)myExamFourCount { [self saveObjectWithObject:[NSNumber numberWithInteger:myExamFourCount] ForKey:@"myExamFourCount"]; } - (NSInteger)quanZhouLookVideoCount { id object = [self getObjectWithKey:@"quanZhouLookVideoCount"]; if (RQObjectIsNil(object)) { return 1; } else { NSInteger quanZhouLookVideoCount = [object integerValue]; return quanZhouLookVideoCount; } } - (void)setQuanZhouLookVideoCount:(NSInteger)quanZhouLookVideoCount { [self saveObjectWithObject:[NSNumber numberWithInteger:quanZhouLookVideoCount] ForKey:@"quanZhouLookVideoCount"]; } - (BOOL)isQzLook { NSString *key = [NSString stringWithFormat:@"isQzLook%@",RQ_USER_MANAGER.currentUser? RQ_USER_MANAGER.currentUser._id : @""]; id object = [self getObjectWithKey:key]; if (RQObjectIsNil(object)) { return RQObjectIsNil(RQ_USER_MANAGER.currentUser); } else { BOOL isQzLook = [object boolValue]; return isQzLook; } } - (void)setIsQzLook:(BOOL)isQzLook { NSString *key = [NSString stringWithFormat:@"isQzLook%@",RQ_USER_MANAGER.currentUser? RQ_USER_MANAGER.currentUser._id : @""]; [self saveObjectWithObject:[NSNumber numberWithBool:isQzLook] ForKey:key]; } - (NSArray *)JSJP_APP_KAOCHANG_OPEN_ARR { id object = [self getObjectWithKey:@"JSJP_APP_KAOCHANG_OPEN_ARR"]; if (RQObjectIsNil(object)) { return @[]; } else { NSArray *JSJP_APP_KAOCHANG_OPEN_ARR = (NSArray *)object; return JSJP_APP_KAOCHANG_OPEN_ARR; } } - (void)setJSJP_APP_KAOCHANG_OPEN_ARR:(NSArray *)JSJP_APP_KAOCHANG_OPEN_ARR { [self saveObjectWithObject:JSJP_APP_KAOCHANG_OPEN_ARR ForKey:@"JSJP_APP_KAOCHANG_OPEN_ARR"]; } - (void)getCurrentStateWithCompleteBlock:(CompleteBlock)completeBlock { NSMutableArray *arr=[NSMutableArray array]; [arr addPro:@"stuOutId" Value:RQ_USER_MANAGER.currentUser.outId]; [arr addPro:@"dqbh" Value:RQ_USER_MANAGER.currentUser.city]; [arr addPro:@"subject" Value:RQ_USER_MANAGER.currentUser.pxjd]; NSString* method = @"getStuTrainStatus"; [jiaPeiManager requestAnythingWithURL:method array:arr data:nil completion:^(NSDictionary * root) { //更新数据 if ([root[@"code"] isEqualToString:@"0"]) { // [self upDateLocalMNClassIDWithDic:root[@"body"]]; } //其它地方调用 if (completeBlock) { completeBlock(root); return; } if (!root) { return; } if ([root[@"code"] isEqualToString:@"1"]) { return; } //跳转判断 /*模拟训练状态判断 0 成功获取学员信息 1 学员还未在模拟器签到 2.已登录,未签到(未进行人脸验证) 3 无法获取到当前训练科目(人脸比对验证通过,但是没有上传任何学时) 4 隔日签到记录 5 分钟学时科目异常 */ NSString *status = [NSString stringWithFormat:@"%@",root[@"body"][@"mn"][@"TYPE"]]; if ([status isEqualToString:@"0"]) { [self showSelectGoToTrainWithType:@"mn" title:nil message:@"系统检测到您正在进行模拟计时,是否前往" cancle:@"否" sure:@"是"]; }else if ([status isEqualToString:@"1"]) { }else if ([status isEqualToString:@"2"]) { [self showSelectGoToTrainWithType:@"mn" title:nil message:@"您已在模拟设备登录,前往开始模拟计时" cancle:@"否" sure:@"是"]; }else if ([status isEqualToString:@"3"]) { [self showSelectGoToTrainWithType:@"mn" title:nil message:@"您已在模拟设备登录,前往开始模拟计时" cancle:@"否" sure:@"是"]; }else if ([status isEqualToString:@"4"]) { [self showSelectGoToTrainWithType:@"mn" title:nil message:@"您昨(往)日模拟计时训练尚未签退" cancle:@"我知道了" sure:@"立即签退"]; }else if ([status isEqualToString:@"5"]) { } }]; } //弹出一个提示框 提示框上展示一些东西 东西里面有一些计时信息 暂时用alertC代替 - (void)showSelectGoToTrainWithType:(NSString *)type title:(NSString *)title message:(NSString *)message cancle:(NSString *)cancle sure:(NSString *)sure{ UIViewController *currentVC = RQControllerHelper.currentViewController; while (currentVC.presentedViewController) { currentVC = currentVC.presentedViewController; } //判断已推入当前vc if ([currentVC isKindOfClass:[UITabBarController class]]) { UINavigationController *nav = [RQControllerHelper.currentViewController.childViewControllers lastObject]; if ([type isEqualToString:@"mn"]) { if ([[nav.childViewControllers lastObject] isKindOfClass:[MNQtTrainVC class]]) { return; } } } UIAlertController *alertFind = [UIAlertController alertControllerWithTitle:nil message:message preferredStyle:UIAlertControllerStyleAlert]; [alertFind addAction:[UIAlertAction actionWithTitle:cancle style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) { }]]; [alertFind addAction:[UIAlertAction actionWithTitle:sure style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) { NSString *vcName = nil; if ([type isEqualToString:@"mn"]) { //去模拟计时界面 vcName = @"MNQtTrainVC"; } UINavigationController *vc = [self getPeriodVCWithName:vcName]; if (vc) { vc.modalPresentationStyle = UIModalPresentationFullScreen; [currentVC presentViewController:vc animated:YES completion:nil]; } }]]; [currentVC presentViewController:alertFind animated:true completion:nil]; } -(UINavigationController *)getPeriodVCWithName:(NSString *)name{ NSInteger isNeed = 1; for (ParamsItem *item in RQ_USER_MANAGER.currentUser.params) { if ([item.KEY isEqualToString:@"SP_VERIFY_IMEI"]) { isNeed = [item.VALUE integerValue]; } } // NSString *IMEI = RQ_USER_MANAGER.currentUser.imei; // if (IMEI.length > 0) { // if (isNeed == 1) { // if (![IMEI isEqualToString:[Tools getIDFV]]) { // ShowMsg(@"您当前手机与绑定手机不一致, 无法计时"); // return nil; // } // }else{ // NSString *logType = @""; // if ([name isEqualToString:@"MNQtTrainVC"]){ // logType = @"3"; // }else if ([name isEqualToString:@"BigTruckVC"]){ // logType = @"4"; // } // [Tools saveNotBindImeiLogWithType:logType]; // } // // }else { // UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"温馨提示" message:@"您的账号暂未与该手机绑定,不能进行此操作,请通过“考试界面左上角点击头像-弹出左边侧栏-绑定账号”进行绑定" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil, nil]; // [alert show]; // return nil; // } //已经在模拟计时中了 又去扫模拟计时二维码码 if ([name isEqualToString:@"MNQtTrainVC"] && myDelegate.mnPeriodVC) { myDelegate.mnTrainType = @"0";//既然存在 表明在模拟计时中 UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:myDelegate.mnPeriodVC]; return nav; }else{ UIViewController* vc = [NSClassFromString(name) new]; UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:vc]; return nav; } } - (void)updateVipList { [[RQ_HTTP_Service getPlaceVipList] subscribeNext:^(NSArray *placeVipList) { RQ_COMMON_MANAGER.vipListArr = [placeVipList.rac_sequence.signal map:^id _Nullable(RQPlaceVipListModel *placeVipListModel) { return placeVipListModel.examName; }].toArray; }]; } @end