RQExerciseOptionSureBtnItemViewModel.m 5.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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. if(userAnswerArr.count==0){
  20. //提示
  21. ShowMsg(@"请先选择答案!");
  22. return;
  23. }
  24. exerciseModel.userAnswer = userAnswerArr.copy;
  25. NSString *userAnswerIndexStr = [[[userAnswerArr.rac_sequence.signal map:^id _Nullable(NSString *optStr) {
  26. return @([allOptionsArr indexOfObject:optStr] + 1);
  27. }].toArray arraySortASC] componentsJoinedByString:@""];
  28. // [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];
  29. // if (userAnswerIndexStr.integerValue == exerciseModel.ydtQuestionModel.AnswerTrue.integerValue) {
  30. // [RQNotificationCenter postNotificationName:RQAutoJumpNextNotification object:nil];
  31. // [RQNotificationCenter postNotificationName:RQCancelWrongNotification object:nil];
  32. // }
  33. [NYTools saveExerciseModel:exerciseModel userKey:RQ_USER_MANAGER.currentUser.outId carType:RQ_YDTQuestion_Module.carType subject:RQ_YDTQuestion_Module.subject exerciseType:RQ_Exercise_Module.currentExerciseType];//记录用户做的题目
  34. if (userAnswerIndexStr.integerValue == exerciseModel.ydtQuestionModel.AnswerTrue.integerValue) {
  35. // [RQ_YDTQuestion_Module saveHistoryQuestionNumWithQuestionId:exerciseModel.ydtQuestionModel.num];
  36. [RQNotificationCenter postNotificationName:RQAutoJumpNextNotification object:nil];
  37. if (RQ_Exercise_Module.isRightAutoRemoveError) {
  38. [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];
  39. [RQNotificationCenter postNotificationName:RQCancelWrongNotification object:nil];
  40. NSString *ydt_id = [NSString stringWithFormat:@"%ld",(long)exerciseModel.ydtQuestionModel.ID];
  41. [RQ_YDTQuestion_Module.errorRemoveArr addObject:ydt_id];
  42. // [[[RQ_HTTP_Service deleteFavQuestionWithQuestionId:exerciseModel.ydtQuestionModel.ID type:RQSaveFavQuestionType_Wrong] deliverOnMainThread] subscribeNext:^(id _Nullable x) {
  43. // [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];
  44. // [RQNotificationCenter postNotificationName:RQCancelWrongNotification object:nil];
  45. // } error:^(NSError * _Nullable error) {
  46. //
  47. // }];
  48. }
  49. } else {
  50. [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];
  51. // [[[RQ_HTTP_Service saveFavQuestionWithQuestionId:exerciseModel.ydtQuestionModel.ID type:RQSaveFavQuestionType_Wrong] deliverOnMainThread] subscribeNext:^(id _Nullable x) {
  52. // [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];
  53. // } error:^(NSError * _Nullable error) {
  54. // }];
  55. }
  56. }
  57. };
  58. }
  59. return self;
  60. }
  61. - (NSString *)itemClassName {
  62. return @"RQExerciseOptionSureBtnCell";
  63. }
  64. @end