NYBlockExerciseItemModel.m 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. //
  2. // NYBlockExerciseItemModel.m
  3. // jiaPei
  4. //
  5. // Created by Ning.ge on 2024/12/6.
  6. // Copyright © 2024 JCZ. All rights reserved.
  7. //
  8. #import "NYBlockExerciseItemModel.h"
  9. @implementation NYBlockExerciseItemModel
  10. - (instancetype)init {
  11. if (self = [super init]) {
  12. self.itemSize = CGSizeMake(RQ_SCREEN_WIDTH*0.5-20.f, RQ_FIT_HORIZONTAL(74.f) + 8.f);
  13. }
  14. return self;
  15. }
  16. - (NSString *)itemClassName {
  17. return @"NYBlockExerciseCell";
  18. }
  19. - (void)updateData{
  20. int code = 0;
  21. NSString *leftStr = self.leftStr;
  22. if(self.group==0){
  23. if([@"试题一" isEqualToString:leftStr]){
  24. code = 201;
  25. }else if([@"试题二" isEqualToString:leftStr]){
  26. code = 202;
  27. }
  28. else if([@"试题三" isEqualToString:leftStr]){
  29. code = 203;
  30. }
  31. else if([@"试题四" isEqualToString:leftStr]){
  32. code = 204;
  33. }
  34. else if([@"试题五" isEqualToString:leftStr]){
  35. code = 205;
  36. }
  37. else if([@"试题六" isEqualToString:leftStr]){
  38. code = 206;
  39. }
  40. }else if(self.group==1){
  41. if([@"试题一" isEqualToString:leftStr]){
  42. code = 301;
  43. }else if([@"试题二" isEqualToString:leftStr]){
  44. code = 302;
  45. }
  46. else if([@"试题三" isEqualToString:leftStr]){
  47. code = 303;
  48. }
  49. else if([@"试题四" isEqualToString:leftStr]){
  50. code = 304;
  51. }
  52. }else if(self.group==2){
  53. if([@"试题一" isEqualToString:leftStr]){
  54. code = 401;
  55. }else if([@"试题二" isEqualToString:leftStr]){
  56. code = 402;
  57. }
  58. }
  59. NSArray *arr = [[RQ_YDTQuestion_Module getQuestionWithExerciseType:RQExerciseType_Block_List code:code].rac_sequence.signal map:^id _Nullable(RQYDTQuestionModel *ydtQuestionModel) {
  60. return [RQExerciseModel exerciseModelWithRQYDTQuestionModel:ydtQuestionModel];
  61. }].toArray;
  62. NSArray *readList = [NYTools readExerciseListUserKey:RQ_USER_MANAGER.currentUser.outId carType:RQ_YDTQuestion_Module.carType subject:RQ_YDTQuestion_Module.subject exerciseType:RQ_Exercise_Module.currentExerciseType];
  63. NSLog(@"readList=%@",readList);
  64. int inId_count = 0;
  65. if(readList.count>0){ //遍历用户做的题目
  66. for (NSDictionary *item in readList) {
  67. NSInteger ID = [item[@"ID"] unsignedIntValue];//题目id
  68. //查找对应题目
  69. NSArray *filteredArray = [arr filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"ydtQuestionModel.ID == %d", ID]];
  70. if (filteredArray.count > 0) {
  71. inId_count++;
  72. }
  73. }
  74. }
  75. double progress = (double)inId_count/arr.count;
  76. self.progress = progress;
  77. self.isfinish = progress >=1.0 ? YES:NO;
  78. self.progressStr = [NSString stringWithFormat:@"%.0f%%",progress*100];
  79. }
  80. - (instancetype)initWithLeftStr:(NSString *)leftStr group:(NSInteger)group{
  81. if (self = [self init]) {
  82. self.leftStr = leftStr;
  83. self.group = group;
  84. int code = 0;
  85. if(group==0){
  86. if([@"试题一" isEqualToString:leftStr]){
  87. code = 201;
  88. }else if([@"试题二" isEqualToString:leftStr]){
  89. code = 202;
  90. }
  91. else if([@"试题三" isEqualToString:leftStr]){
  92. code = 203;
  93. }
  94. else if([@"试题四" isEqualToString:leftStr]){
  95. code = 204;
  96. }
  97. else if([@"试题五" isEqualToString:leftStr]){
  98. code = 205;
  99. }
  100. else if([@"试题六" isEqualToString:leftStr]){
  101. code = 206;
  102. }
  103. }else if(group==1){
  104. if([@"试题一" isEqualToString:leftStr]){
  105. code = 301;
  106. }else if([@"试题二" isEqualToString:leftStr]){
  107. code = 302;
  108. }
  109. else if([@"试题三" isEqualToString:leftStr]){
  110. code = 303;
  111. }
  112. else if([@"试题四" isEqualToString:leftStr]){
  113. code = 304;
  114. }
  115. }else if(group==2){
  116. if([@"试题一" isEqualToString:leftStr]){
  117. code = 401;
  118. }else if([@"试题二" isEqualToString:leftStr]){
  119. code = 402;
  120. }
  121. }
  122. NSArray *arr = [[RQ_YDTQuestion_Module getQuestionWithExerciseType:RQExerciseType_Block_List code:code].rac_sequence.signal map:^id _Nullable(RQYDTQuestionModel *ydtQuestionModel) {
  123. return [RQExerciseModel exerciseModelWithRQYDTQuestionModel:ydtQuestionModel];
  124. }].toArray;
  125. NSArray *readList = [NYTools readExerciseListUserKey:RQ_USER_MANAGER.currentUser.outId carType:RQ_YDTQuestion_Module.carType subject:RQ_YDTQuestion_Module.subject exerciseType:RQ_Exercise_Module.currentExerciseType];
  126. NSLog(@"readList=%@",readList);
  127. int inId_count = 0;
  128. if(readList.count>0){ //遍历用户做的题目
  129. for (NSDictionary *item in readList) {
  130. NSInteger ID = [item[@"ID"] unsignedIntValue];//题目id
  131. //查找对应题目
  132. NSArray *filteredArray = [arr filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"ydtQuestionModel.ID == %d", ID]];
  133. if (filteredArray.count > 0) {
  134. inId_count++;
  135. }
  136. }
  137. }
  138. double progress = (double)inId_count/arr.count;
  139. self.progress = progress;
  140. self.isfinish = progress >=1.0 ? YES:NO;
  141. self.progressStr = [NSString stringWithFormat:@"%.0f%%",progress*100];
  142. self.operation = ^{
  143. RQ_Exercise_Module.codeStr = [NSString stringWithFormat:@"%d",code];
  144. NSLog(@"%@点击了",leftStr);
  145. RQExerciseViewModel *exerciseViewModel = [[RQExerciseViewModel alloc] initWithServices:RQ_APPDELEGATE.services params:@{
  146. RQHomePageCarTypeKey : @(RQ_YDTQuestion_Module.carType),
  147. RQHomePageSubjectTypeKey : @(RQ_YDTQuestion_Module.subject),
  148. RQHomeSubPageTypeKey : @(RQHomeSubPageType_SequentialPractice),
  149. RQViewModelIDKey : leftStr,
  150. RQExerciseTypeKey : @(RQExerciseType_Block_List),
  151. RQViewModelUtilKey : arr,
  152. }];
  153. [RQ_APPDELEGATE.services pushViewModel:exerciseViewModel animated:YES];
  154. };
  155. }
  156. return self;
  157. }
  158. @end