RQExerciseSubViewModel.m 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  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. //读取用户记录-赋值
  34. if(self.homeSubPageType == RQHomeSubPageType_SequentialPractice){//只有顺序-记录
  35. NSArray *readList = [NYTools readExerciseListUserKey:RQ_USER_MANAGER.currentUser.outId carType:RQ_YDTQuestion_Module.carType subject:RQ_YDTQuestion_Module.subject exerciseType:RQ_Exercise_Module.currentExerciseType];
  36. NSLog(@"readList=%@",readList);
  37. if(readList.count>0){ //遍历用户做的题目
  38. for (NSDictionary *item in readList) {
  39. NSInteger ID = [item[@"ID"] unsignedIntValue];//题目id
  40. NSInteger type = [item[@"type"] unsignedIntValue];//题目类型
  41. NSInteger answerResultsType = [item[@"answerResultsType"] unsignedIntValue];//是否做对
  42. NSArray *userAnswer = item[@"userAnswer"];//用户选项
  43. //查找对应题目
  44. NSArray *filteredArray = [self.questionArr filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"ydtQuestionModel.ID == %d", ID]];
  45. if (filteredArray.count > 0) {
  46. RQExerciseModel *exerciseModel = filteredArray.firstObject;
  47. exerciseModel.answerResultsType = answerResultsType;
  48. exerciseModel.userAnswer = userAnswer;
  49. if (exerciseModel.answerResultsType == RQAnswerResultsType_Correct) {
  50. if (![RQ_Exercise_Module.correctArr containsObject:exerciseModel]) {
  51. NSMutableArray *corArr = RQ_Exercise_Module.correctArr.mutableCopy;
  52. [corArr addObject:exerciseModel];
  53. RQ_Exercise_Module.correctArr = corArr.copy;
  54. }
  55. } else if (exerciseModel.answerResultsType == RQAnswerResultsType_Error) {
  56. if (![RQ_Exercise_Module.errorArr containsObject:exerciseModel]) {
  57. NSMutableArray *errArr = RQ_Exercise_Module.errorArr.mutableCopy;
  58. [errArr addObject:exerciseModel];
  59. RQ_Exercise_Module.errorArr = errArr.copy;
  60. }
  61. }
  62. }
  63. }
  64. }
  65. }
  66. }
  67. return self;
  68. }
  69. - (void)initialize {
  70. [super initialize];
  71. self.title = @"";
  72. ///配置数据
  73. [self rq_configureData];
  74. }
  75. #pragma mark - PrivateMethod
  76. - (void)rq_configureData {
  77. }
  78. @end