// // RQSpecialQuestionItemViewModel.m // jiaPei // // Created by 张嵘 on 2022/6/22. // Copyright © 2022 JCZ. All rights reserved. // #import "RQSpecialQuestionItemViewModel.h" @implementation RQSpecialQuestionItemViewModel - (instancetype)initWithTitleStr:(NSString *)titleStr iconImgStr:(NSString *)iconImgStr { if (self = [super init]) { @weakify(self) self.title = titleStr; self.icon = iconImgStr; CGFloat width = (RQ_SCREEN_WIDTH - 8 - 32) / 2.f; CGFloat height = RQ_FIT_HORIZONTAL(50.f); self.itemSize = CGSizeMake(width, height); if ([titleStr isEqualToString:@"未做题"] || [titleStr isEqualToString:@"已做题"]) { [[RACScheduler scheduler] schedule:^{ @strongify(self) NSInteger unDoCount = [RQ_YDTQuestion_Module getQuestionNumWithWithSubject:RQ_YDTQuestion_Module.subject exerciseType:RQExerciseType_UnDo]; NSInteger doCount = [RQ_YDTQuestion_Module getQuestionNumWithWithSubject:RQ_YDTQuestion_Module.subject exerciseType:RQExerciseType_Do]; self.subtitle = [NSString qmui_stringWithNSInteger:[titleStr isEqualToString:@"未做题"]? unDoCount : doCount]; self.operation = ^{ if ([titleStr isEqualToString:@"未做题"]) { NSArray *undoArr = [[RQ_YDTQuestion_Module getQuestionWithSubject:RQ_YDTQuestion_Module.subject exerciseType:RQExerciseType_UnDo ].rac_sequence.signal map:^id _Nullable(RQYDTQuestionModel *ydtQuestionModel) { return [RQExerciseModel exerciseModelWithRQYDTQuestionModel:ydtQuestionModel]; }].toArray; RQExerciseViewModel *exerciseViewModel = [[RQExerciseViewModel alloc] initWithServices:RQ_APPDELEGATE.services params:@{ RQHomePageCarTypeKey : @(RQ_YDTQuestion_Module.carType), RQHomePageSubjectTypeKey : @(RQ_YDTQuestion_Module.subject), RQHomeSubPageTypeKey : @(RQHomeSubPageType_SequentialPractice), RQViewModelIDKey : titleStr, RQExerciseTypeKey : @(RQExerciseType_UnDo), RQViewModelUtilKey : undoArr, }]; [RQ_APPDELEGATE.services pushViewModel:exerciseViewModel animated:YES]; } else if ([titleStr isEqualToString:@"已做题"]) { NSArray *doArr = [[RQ_YDTQuestion_Module getQuestionWithSubject:RQ_YDTQuestion_Module.subject exerciseType:RQExerciseType_Do ].rac_sequence.signal map:^id _Nullable(RQYDTQuestionModel *ydtQuestionModel) { return [RQExerciseModel exerciseModelWithRQYDTQuestionModel:ydtQuestionModel]; }].toArray; RQExerciseViewModel *exerciseViewModel = [[RQExerciseViewModel alloc] initWithServices:RQ_APPDELEGATE.services params:@{ RQHomePageCarTypeKey : @(RQ_YDTQuestion_Module.carType), RQHomePageSubjectTypeKey : @(RQ_YDTQuestion_Module.subject), RQHomeSubPageTypeKey : @(RQHomeSubPageType_SequentialPractice), RQViewModelIDKey : titleStr, RQExerciseTypeKey : @(RQExerciseType_Do), RQViewModelUtilKey : doArr, }]; [RQ_APPDELEGATE.services pushViewModel:exerciseViewModel animated:YES]; } else { [MBProgressHUD rq_showTips:@"正在获取题目..."]; } }; }]; } else if ([titleStr isEqualToString:@"单选题"]) { NSInteger count = [RQ_YDTQuestion_Module getQuestionNumWithWithSubject:RQ_YDTQuestion_Module.subject exerciseType:RQExerciseType_SingleChoice]; self.subtitle = [NSString qmui_stringWithNSInteger:count]; self.operation = ^{ [[RACScheduler mainThreadScheduler] schedule:^{ dispatch_semaphore_t sema = dispatch_semaphore_create(0); NSArray *arr = [[[RQ_YDTQuestion_Module getQuestionWithSubject:RQ_YDTQuestion_Module.subject exerciseType:RQExerciseType_SingleChoice ].rac_sequence.signal map:^id _Nullable(RQYDTQuestionModel *ydtQuestionModel) { return [RQExerciseModel exerciseModelWithRQYDTQuestionModel:ydtQuestionModel]; }] doCompleted:^{ dispatch_semaphore_signal(sema); }].toArray; dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER); RQExerciseViewModel *exerciseViewModel = [[RQExerciseViewModel alloc] initWithServices:RQ_APPDELEGATE.services params:@{ RQHomePageCarTypeKey : @(RQ_YDTQuestion_Module.carType), RQHomePageSubjectTypeKey : @(RQ_YDTQuestion_Module.subject), RQHomeSubPageTypeKey : @(RQHomeSubPageType_SequentialPractice), RQViewModelIDKey : titleStr, RQExerciseTypeKey : @(RQExerciseType_SingleChoice), RQViewModelUtilKey : arr, }]; [RQ_APPDELEGATE.services pushViewModel:exerciseViewModel animated:YES]; }]; }; } else if ([titleStr isEqualToString:@"多选题"]) { NSInteger count = [RQ_YDTQuestion_Module getQuestionNumWithWithSubject:RQ_YDTQuestion_Module.subject exerciseType:RQExerciseType_MutableChoice]; self.subtitle = [NSString qmui_stringWithNSInteger:count]; self.operation = ^{ NSArray *arr = [[RQ_YDTQuestion_Module getQuestionWithSubject:RQ_YDTQuestion_Module.subject exerciseType:RQExerciseType_MutableChoice ].rac_sequence.signal map:^id _Nullable(RQYDTQuestionModel *ydtQuestionModel) { return [RQExerciseModel exerciseModelWithRQYDTQuestionModel:ydtQuestionModel]; }].toArray; RQExerciseViewModel *exerciseViewModel = [[RQExerciseViewModel alloc] initWithServices:RQ_APPDELEGATE.services params:@{ RQHomePageCarTypeKey : @(RQ_YDTQuestion_Module.carType), RQHomePageSubjectTypeKey : @(RQ_YDTQuestion_Module.subject), RQHomeSubPageTypeKey : @(RQHomeSubPageType_SequentialPractice), RQViewModelIDKey : titleStr, RQExerciseTypeKey : @(RQExerciseType_MutableChoice), RQViewModelUtilKey : arr, }]; [RQ_APPDELEGATE.services pushViewModel:exerciseViewModel animated:YES]; }; } else if ([titleStr isEqualToString:@"判断题"]) { @strongify(self) NSInteger count = [RQ_YDTQuestion_Module getQuestionNumWithWithSubject:RQ_YDTQuestion_Module.subject exerciseType:RQExerciseType_Judge]; self.subtitle = [NSString qmui_stringWithNSInteger:count]; self.operation = ^{ NSArray *arr = [[RQ_YDTQuestion_Module getQuestionWithSubject:RQ_YDTQuestion_Module.subject exerciseType:RQExerciseType_Judge ].rac_sequence.signal map:^id _Nullable(RQYDTQuestionModel *ydtQuestionModel) { return [RQExerciseModel exerciseModelWithRQYDTQuestionModel:ydtQuestionModel]; }].toArray; RQExerciseViewModel *exerciseViewModel = [[RQExerciseViewModel alloc] initWithServices:RQ_APPDELEGATE.services params:@{ RQHomePageCarTypeKey : @(RQ_YDTQuestion_Module.carType), RQHomePageSubjectTypeKey : @(RQ_YDTQuestion_Module.subject), RQHomeSubPageTypeKey : @(RQHomeSubPageType_SequentialPractice), RQViewModelIDKey : titleStr, RQExerciseTypeKey : @(RQExerciseType_Judge), RQViewModelUtilKey : arr, }]; [RQ_APPDELEGATE.services pushViewModel:exerciseViewModel animated:YES]; }; } else if ([titleStr isEqualToString:@"文字题"]) { @strongify(self) NSInteger count = [RQ_YDTQuestion_Module getQuestionNumWithWithSubject:RQ_YDTQuestion_Module.subject exerciseType:RQExerciseType_Text]; self.subtitle = [NSString qmui_stringWithNSInteger:count]; self.operation = ^{ NSArray *arr = [[RQ_YDTQuestion_Module getQuestionWithExerciseType:RQExerciseType_Text].rac_sequence.signal map:^id _Nullable(RQYDTQuestionModel *ydtQuestionModel) { return [RQExerciseModel exerciseModelWithRQYDTQuestionModel:ydtQuestionModel]; }].toArray; RQExerciseViewModel *exerciseViewModel = [[RQExerciseViewModel alloc] initWithServices:RQ_APPDELEGATE.services params:@{ RQHomePageCarTypeKey : @(RQ_YDTQuestion_Module.carType), RQHomePageSubjectTypeKey : @(RQ_YDTQuestion_Module.subject), RQHomeSubPageTypeKey : @(RQHomeSubPageType_SequentialPractice), RQViewModelIDKey : titleStr, RQExerciseTypeKey : @(RQExerciseType_Text), RQViewModelUtilKey : arr, }]; [RQ_APPDELEGATE.services pushViewModel:exerciseViewModel animated:YES]; }; } else if ([titleStr isEqualToString:@"图片题"]) { NSInteger count = [RQ_YDTQuestion_Module getQuestionNumWithWithSubject:RQ_YDTQuestion_Module.subject exerciseType:RQExerciseType_Image]; self.subtitle = [NSString qmui_stringWithNSInteger:count]; self.operation = ^{ NSArray *arr = [[RQ_YDTQuestion_Module getQuestionWithSubject:RQ_YDTQuestion_Module.subject exerciseType:RQExerciseType_Image ].rac_sequence.signal map:^id _Nullable(RQYDTQuestionModel *ydtQuestionModel) { return [RQExerciseModel exerciseModelWithRQYDTQuestionModel:ydtQuestionModel]; }].toArray; RQExerciseViewModel *exerciseViewModel = [[RQExerciseViewModel alloc] initWithServices:RQ_APPDELEGATE.services params:@{ RQHomePageCarTypeKey : @(RQ_YDTQuestion_Module.carType), RQHomePageSubjectTypeKey : @(RQ_YDTQuestion_Module.subject), RQHomeSubPageTypeKey : @(RQHomeSubPageType_SequentialPractice), RQViewModelIDKey : titleStr, RQExerciseTypeKey : @(RQExerciseType_Image), RQViewModelUtilKey : arr, }]; [RQ_APPDELEGATE.services pushViewModel:exerciseViewModel animated:YES]; }; } else if ([titleStr isEqualToString:@"动画题"]) { NSInteger count = [RQ_YDTQuestion_Module getQuestionNumWithWithSubject:RQ_YDTQuestion_Module.subject exerciseType:RQExerciseType_Video]; self.subtitle = [NSString qmui_stringWithNSInteger:count]; self.operation = ^{ NSArray *arr = [[RQ_YDTQuestion_Module getQuestionWithSubject:RQ_YDTQuestion_Module.subject exerciseType:RQExerciseType_Video ].rac_sequence.signal map:^id _Nullable(RQYDTQuestionModel *ydtQuestionModel) { return [RQExerciseModel exerciseModelWithRQYDTQuestionModel:ydtQuestionModel]; }].toArray; RQExerciseViewModel *exerciseViewModel = [[RQExerciseViewModel alloc] initWithServices:RQ_APPDELEGATE.services params:@{ RQHomePageCarTypeKey : @(RQ_YDTQuestion_Module.carType), RQHomePageSubjectTypeKey : @(RQ_YDTQuestion_Module.subject), RQHomeSubPageTypeKey : @(RQHomeSubPageType_SequentialPractice), RQViewModelIDKey : titleStr, RQExerciseTypeKey : @(RQExerciseType_Video), RQViewModelUtilKey : arr, }]; [RQ_APPDELEGATE.services pushViewModel:exerciseViewModel animated:YES]; }; } } return self; } @end