RQExerciseOptionSureBtnItemViewModel.m 4.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. //
  2. // RQExerciseOptionSureBtnItemViewModel.m
  3. // JSJP
  4. //
  5. // Created by 张嵘 on 2021/8/23.
  6. //
  7. #import "RQExerciseOptionSureBtnItemViewModel.h"
  8. @implementation RQExerciseOptionSureBtnItemViewModel
  9. - (instancetype)initWithRQExerciseModel:(RQExerciseModel *)exerciseModel {
  10. if (self = [super init]) {
  11. self.rowHeight = 56.f;
  12. NSArray *allOptionsArr = [@[exerciseModel.ydtQuestionModel.An1,exerciseModel.ydtQuestionModel.An2,exerciseModel.ydtQuestionModel.An3,exerciseModel.ydtQuestionModel.An4].rac_sequence.signal filter:^BOOL(NSString *optStr) {
  13. return RQStringIsNotEmpty(optStr);
  14. }].toArray;
  15. self.operation = ^{
  16. if ([exerciseModel.userAnswer containsObject:@"预选Option"]) {
  17. NSMutableArray *userAnswerArr = exerciseModel.userAnswer.mutableCopy;
  18. [userAnswerArr removeObject:@"预选Option"];
  19. exerciseModel.userAnswer = userAnswerArr.copy;
  20. NSString *userAnswerIndexStr = [[[userAnswerArr.rac_sequence.signal map:^id _Nullable(NSString *optStr) {
  21. return @([allOptionsArr indexOfObject:optStr] + 1);
  22. }].toArray arraySortASC] componentsJoinedByString:@""];
  23. // [RQ_YDT_USER_Question_Module doQuestionWithID:exerciseModel.ydtQuestionModel.ID myAnswer:userAnswerIndexStr.integerValue trueAnswer:exerciseModel.ydtQuestionModel.AnswerTrue.integerValue carType:RQ_YDTQuestion_Module.carType subject:RQ_YDTQuestion_Module.subject exerciseType:RQExerciseType_Sequential];
  24. // if (userAnswerIndexStr.integerValue == exerciseModel.ydtQuestionModel.AnswerTrue.integerValue) {
  25. // [RQNotificationCenter postNotificationName:RQAutoJumpNextNotification object:nil];
  26. // [RQNotificationCenter postNotificationName:RQCancelWrongNotification object:nil];
  27. // }
  28. [NYTools saveExerciseModel:exerciseModel userKey:RQ_USER_MANAGER.currentUser.outId carType:RQ_YDTQuestion_Module.carType subject:RQ_YDTQuestion_Module.subject exerciseType:RQ_Exercise_Module.currentExerciseType];//记录用户做的题目
  29. if (userAnswerIndexStr.integerValue == exerciseModel.ydtQuestionModel.AnswerTrue.integerValue) {
  30. // [RQ_YDTQuestion_Module saveHistoryQuestionNumWithQuestionId:exerciseModel.ydtQuestionModel.num];
  31. [RQNotificationCenter postNotificationName:RQAutoJumpNextNotification object:nil];
  32. if (RQ_Exercise_Module.isRightAutoRemoveError) {
  33. [[[RQ_HTTP_Service deleteFavQuestionWithQuestionId:exerciseModel.ydtQuestionModel.ID type:RQSaveFavQuestionType_Wrong] deliverOnMainThread] subscribeNext:^(id _Nullable x) {
  34. [RQ_YDT_USER_Question_Module doQuestionWithID:exerciseModel.ydtQuestionModel.ID myAnswer:userAnswerIndexStr.integerValue trueAnswer:exerciseModel.ydtQuestionModel.AnswerTrue.integerValue carType:RQ_YDTQuestion_Module.carType subject:RQ_YDTQuestion_Module.subject exerciseType:RQExerciseType_Sequential];
  35. [RQNotificationCenter postNotificationName:RQCancelWrongNotification object:nil];
  36. } error:^(NSError * _Nullable error) {
  37. }];
  38. }
  39. } else {
  40. [[[RQ_HTTP_Service saveFavQuestionWithQuestionId:exerciseModel.ydtQuestionModel.ID type:RQSaveFavQuestionType_Wrong] deliverOnMainThread] subscribeNext:^(id _Nullable x) {
  41. [RQ_YDT_USER_Question_Module doQuestionWithID:exerciseModel.ydtQuestionModel.ID myAnswer:userAnswerIndexStr.integerValue trueAnswer:exerciseModel.ydtQuestionModel.AnswerTrue.integerValue carType:RQ_YDTQuestion_Module.carType subject:RQ_YDTQuestion_Module.subject exerciseType:RQExerciseType_Sequential];
  42. } error:^(NSError * _Nullable error) {
  43. }];
  44. }
  45. }
  46. };
  47. }
  48. return self;
  49. }
  50. - (NSString *)itemClassName {
  51. return @"RQExerciseOptionSureBtnCell";
  52. }
  53. @end