RQExerciseOptionSureBtnItemViewModel.m 3.8 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. if (userAnswerIndexStr.integerValue == exerciseModel.ydtQuestionModel.AnswerTrue.integerValue) {
  29. // [RQ_YDTQuestion_Module saveHistoryQuestionNumWithQuestionId:exerciseModel.ydtQuestionModel.num];
  30. [RQNotificationCenter postNotificationName:RQAutoJumpNextNotification object:nil];
  31. if (RQ_Exercise_Module.isRightAutoRemoveError) {
  32. [[[RQ_HTTP_Service deleteFavQuestionWithQuestionId:exerciseModel.ydtQuestionModel.ID type:RQSaveFavQuestionType_Wrong] deliverOnMainThread] subscribeNext:^(id _Nullable x) {
  33. [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];
  34. [RQNotificationCenter postNotificationName:RQCancelWrongNotification object:nil];
  35. } error:^(NSError * _Nullable error) {
  36. }];
  37. }
  38. } else {
  39. [[[RQ_HTTP_Service saveFavQuestionWithQuestionId:exerciseModel.ydtQuestionModel.ID type:RQSaveFavQuestionType_Wrong] deliverOnMainThread] subscribeNext:^(id _Nullable x) {
  40. [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];
  41. } error:^(NSError * _Nullable error) {
  42. }];
  43. }
  44. }
  45. };
  46. }
  47. return self;
  48. }
  49. - (NSString *)itemClassName {
  50. return @"RQExerciseOptionSureBtnCell";
  51. }
  52. @end