RQExerciseSubViewModel.m 4.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. //
  2. // RQExerciseSubViewModel.m
  3. // JSJP
  4. //
  5. // Created by 张嵘 on 2021/8/12.
  6. //
  7. #import "RQExerciseSubViewModel.h"
  8. @interface RQExerciseSubViewModel ()
  9. //@property (nonatomic, readwrite, assign) RQExerciseType exerciseType;
  10. /// homePageCarType
  11. @property (nonatomic, readwrite, assign) RQHomePageCarType homePageCarType;
  12. /// homePageSubjectType
  13. @property (nonatomic, readwrite, assign) RQHomePageSubjectType homePageSubjectType;
  14. /// homeSubPageType
  15. @property (nonatomic, readwrite, assign) RQHomeSubPageType homeSubPageType;
  16. /// homeSubEditListType
  17. @property (nonatomic, readwrite, assign) RQHomeSubEditListType homeSubEditListType;
  18. @property (nonatomic, readwrite, copy) NSString *titleStr;
  19. @property (nonatomic, readwrite, assign) NSInteger number;
  20. @end
  21. @implementation RQExerciseSubViewModel
  22. #pragma mark - Public Method
  23. - (instancetype)initWithServices:(id<RQViewModelServices>)services params:(NSDictionary *)params {
  24. if (self = [super initWithServices:services params:params]) {
  25. // self.exerciseType = [params[RQExerciseTypeKey] integerValue];
  26. self.homePageCarType = [params[RQHomePageCarTypeKey] integerValue];
  27. self.homePageSubjectType = [params[RQHomePageSubjectTypeKey] integerValue];
  28. self.homeSubPageType = [params[RQHomeSubPageTypeKey] integerValue];
  29. self.homeSubEditListType = [params[RQHomeSubEditListTypeKey] integerValue];
  30. self.titleStr = params[RQViewModelIDKey];
  31. self.number = [params[RQViewCommonValueKey] integerValue];
  32. self.questionArr = params[RQViewModelUtilKey];
  33. self.subPageTypeKHMode = 0;
  34. if(params[RQHomeSubPageTypeKHModeKey]){
  35. self.subPageTypeKHMode = [params[RQHomeSubPageTypeKHModeKey] integerValue];
  36. }
  37. //读取用户记录-赋值
  38. if(self.homeSubPageType == RQHomeSubPageType_SequentialPractice){//只有顺序-记录
  39. NSArray *readList = [NYTools readExerciseListUserKey:RQ_USER_MANAGER.currentUser.outId carType:RQ_YDTQuestion_Module.carType subject:RQ_YDTQuestion_Module.subject exerciseType:RQ_Exercise_Module.currentExerciseType];
  40. NSLog(@"readList=%@",readList);
  41. if(readList.count>0){ //遍历用户做的题目
  42. for (NSDictionary *item in readList) {
  43. NSInteger ID = [item[@"ID"] unsignedIntValue];//题目id
  44. NSInteger type = [item[@"type"] unsignedIntValue];//题目类型
  45. NSInteger answerResultsType = [item[@"answerResultsType"] unsignedIntValue];//是否做对
  46. NSArray *userAnswer = item[@"userAnswer"];//用户选项
  47. //查找对应题目
  48. NSArray *filteredArray = [self.questionArr filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"ydtQuestionModel.ID == %d", ID]];
  49. if (filteredArray.count > 0) {
  50. RQExerciseModel *exerciseModel = filteredArray.firstObject;
  51. exerciseModel.answerResultsType = answerResultsType;
  52. exerciseModel.userAnswer = userAnswer;
  53. if (exerciseModel.answerResultsType == RQAnswerResultsType_Correct) {
  54. if (![RQ_Exercise_Module.correctArr containsObject:exerciseModel]) {
  55. NSMutableArray *corArr = RQ_Exercise_Module.correctArr.mutableCopy;
  56. [corArr addObject:exerciseModel];
  57. RQ_Exercise_Module.correctArr = corArr.copy;
  58. }
  59. } else if (exerciseModel.answerResultsType == RQAnswerResultsType_Error) {
  60. if (![RQ_Exercise_Module.errorArr containsObject:exerciseModel]) {
  61. NSMutableArray *errArr = RQ_Exercise_Module.errorArr.mutableCopy;
  62. [errArr addObject:exerciseModel];
  63. RQ_Exercise_Module.errorArr = errArr.copy;
  64. }
  65. }
  66. }
  67. }
  68. }
  69. }
  70. }
  71. return self;
  72. }
  73. - (void)initialize {
  74. [super initialize];
  75. self.title = @"";
  76. ///配置数据
  77. [self rq_configureData];
  78. }
  79. #pragma mark - PrivateMethod
  80. - (void)rq_configureData {
  81. }
  82. @end