RQSynchronizationViewController.m 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. //
  2. // RQSynchronizationViewController.m
  3. // jiaPei
  4. //
  5. // Created by 张嵘 on 2022/9/1.
  6. // Copyright © 2022 JCZ. All rights reserved.
  7. //
  8. #import "RQSynchronizationViewController.h"
  9. @interface RQSynchronizationViewController ()
  10. /// viewModel
  11. @property (nonatomic, readonly, strong) RQSynchronizationViewModel *viewModel;
  12. @property (weak, nonatomic) IBOutlet UILabel *lastTimeLabel;
  13. @property (weak, nonatomic) IBOutlet UILabel *collectOneLabel;
  14. @property (weak, nonatomic) IBOutlet UILabel *collectFourLabel;
  15. @property (weak, nonatomic) IBOutlet UILabel *errorOneLabel;
  16. @property (weak, nonatomic) IBOutlet UILabel *errorFourLabel;
  17. @property (weak, nonatomic) IBOutlet UILabel *examOneLabel;
  18. @property (weak, nonatomic) IBOutlet UILabel *examFourLabel;
  19. @end
  20. @implementation RQSynchronizationViewController
  21. @dynamic viewModel;
  22. #pragma mark - SystemMethod
  23. - (void)viewDidLoad {
  24. [super viewDidLoad];
  25. /// 初始化
  26. [self rq_setup];
  27. }
  28. - (void)viewDidLayoutSubviews {
  29. [super viewDidLayoutSubviews];
  30. }
  31. - (void)dealloc {
  32. }
  33. #pragma mark - PrivateMethods
  34. /// 初始化
  35. - (void)rq_setup {
  36. @weakify(self)
  37. RAC(_lastTimeLabel, text) = [RACObserve(RQ_COMMON_MANAGER, updateTimeStr) takeUntil:self.rac_willDeallocSignal];
  38. RAC(_examOneLabel, attributedText) = [[RACObserve(RQ_COMMON_MANAGER, myExamOneCount) takeUntil:self.rac_willDeallocSignal] map:^id _Nullable(id _Nullable value) {
  39. @strongify(self)
  40. return [self getAttributedTextWithAllNumStr:[NSString stringWithFormat:@"%ld次",RQ_COMMON_MANAGER.myExamOneCount]];
  41. }];
  42. RAC(_examFourLabel, attributedText) = [[RACObserve(RQ_COMMON_MANAGER, myExamFourCount) takeUntil:self.rac_willDeallocSignal] map:^id _Nullable(id _Nullable value) {
  43. @strongify(self)
  44. return [self getAttributedTextWithAllNumStr:[NSString stringWithFormat:@"%ld次",RQ_COMMON_MANAGER.myExamFourCount]];
  45. }];
  46. RAC(_errorOneLabel, attributedText) = [[RACObserve(RQ_COMMON_MANAGER, myErrorOneCount) takeUntil:self.rac_willDeallocSignal] map:^id _Nullable(id _Nullable value) {
  47. @strongify(self)
  48. return [self getAttributedTextWithAllNumStr:[NSString stringWithFormat:@"%ld题",RQ_COMMON_MANAGER.myErrorOneCount]];
  49. }];
  50. RAC(_errorFourLabel, attributedText) = [[RACObserve(RQ_COMMON_MANAGER, myErrorFourCount) takeUntil:self.rac_willDeallocSignal] map:^id _Nullable(id _Nullable value) {
  51. @strongify(self)
  52. return [self getAttributedTextWithAllNumStr:[NSString stringWithFormat:@"%ld题",RQ_COMMON_MANAGER.myErrorFourCount]];
  53. }];
  54. RAC(_collectOneLabel, attributedText) = [[RACObserve(RQ_COMMON_MANAGER, myCollectOneCount) takeUntil:self.rac_willDeallocSignal] map:^id _Nullable(id _Nullable value) {
  55. @strongify(self)
  56. return [self getAttributedTextWithAllNumStr:[NSString stringWithFormat:@"%ld题",RQ_COMMON_MANAGER.myCollectOneCount]];
  57. }];
  58. RAC(_collectFourLabel, attributedText) = [[RACObserve(RQ_COMMON_MANAGER, myCollectFourCount) takeUntil:self.rac_willDeallocSignal] map:^id _Nullable(id _Nullable value) {
  59. @strongify(self)
  60. return [self getAttributedTextWithAllNumStr:[NSString stringWithFormat:@"%ld题",RQ_COMMON_MANAGER.myCollectFourCount]];
  61. }];
  62. [self updateNumData];
  63. }
  64. - (IBAction)synchronizationAction:(id)sender {
  65. @weakify(self)
  66. [MBProgressHUD rq_showProgressHUD:@"同步中..."];
  67. [[RQ_HTTP_Service getMyQuestionFavs] subscribeNext:^(NSArray *_Nullable arr) {
  68. if ([arr isKindOfClass:[NSArray class]]) {
  69. [RQ_YDT_USER_Question_Module deleteAllRemoveRecord];
  70. [RQ_YDT_USER_Question_Module deleteAllCollectRecordWithCarType:RQ_YDTQuestion_Module.carType subject:RQ_YDTQuestion_Module.subject];
  71. [RQ_YDT_USER_Question_Module deleteWrongRecordithCarType:RQ_YDTQuestion_Module.carType subject:RQ_YDTQuestion_Module.subject];
  72. [[arr.rac_sequence.signal deliverOnMainThread] subscribeNext:^(RQMyQuestionFavsModel *myQuestionFavsModel) {
  73. if ([myQuestionFavsModel.TYPE isEqualToString:@"1"]) {
  74. /// 收藏
  75. [RQ_YDT_USER_Question_Module collectQuestionWithID:[myQuestionFavsModel.QID integerValue] carType:[RQ_YDTQuestion_Module getCarTypeWithCarTypeName:myQuestionFavsModel.CARTYPE] subject:[RQ_YDTQuestion_Module getSubjectWithSubjectName:myQuestionFavsModel.SUBJECT] isUploadFlag:YES];
  76. } else if ([myQuestionFavsModel.TYPE isEqualToString:@"2"]) {
  77. /// 错题
  78. [RQ_YDT_USER_Question_Module doQuestionWithID:[myQuestionFavsModel.QID integerValue] myAnswer:0 trueAnswer:0 carType:[RQ_YDTQuestion_Module getCarTypeWithCarTypeName:myQuestionFavsModel.CARTYPE] subject:[RQ_YDTQuestion_Module getSubjectWithSubjectName:myQuestionFavsModel.SUBJECT] exerciseType:RQExerciseType_Wrong isUploadFlag:YES];
  79. }
  80. } completed:^{
  81. @strongify(self)
  82. [self updateNumData];
  83. RQ_COMMON_MANAGER.updateTimeStr = [NSString stringWithFormat:@"上次同步时间:%@",[NSDate rq_currentTimestamp]];
  84. [MBProgressHUD rq_hideHUD];
  85. }];
  86. }
  87. } error:^(NSError * _Nullable error) {
  88. [MBProgressHUD rq_hideHUD];
  89. [MBProgressHUD rq_showErrorTips:error];
  90. }];
  91. [[RQ_HTTP_Service getMyScoreWithSubject:RQHomePageSubjectType_SubjectOne] subscribeNext:^(NSArray *examResultModelArr) {
  92. RQ_COMMON_MANAGER.myExamOneCount = examResultModelArr.count;
  93. RQ_COMMON_MANAGER.examResultOneListArr = examResultModelArr;
  94. }];
  95. [[RQ_HTTP_Service getMyScoreWithSubject:RQHomePageSubjectType_SubjectFour] subscribeNext:^(NSArray *examResultModelArr) {
  96. RQ_COMMON_MANAGER.myExamFourCount = examResultModelArr.count;
  97. RQ_COMMON_MANAGER.examResultFourListArr = examResultModelArr;
  98. }];
  99. }
  100. - (void)updateNumData {
  101. NSInteger collectNumOne = [RQ_YDT_USER_Question_Module getCollectQuestionNumWithCarType:RQ_YDTQuestion_Module.carType subject:RQHomePageSubjectType_SubjectOne];
  102. NSInteger collectNumFour = [RQ_YDT_USER_Question_Module getCollectQuestionNumWithCarType:RQ_YDTQuestion_Module.carType subject:RQHomePageSubjectType_SubjectFour];
  103. NSInteger errorNumOne = [RQ_YDT_USER_Question_Module getWrongQuestionNumWithCarType:RQ_YDTQuestion_Module.carType subject:RQHomePageSubjectType_SubjectOne];
  104. NSInteger errorNumFour = [RQ_YDT_USER_Question_Module getWrongQuestionNumWithCarType:RQ_YDTQuestion_Module.carType subject:RQHomePageSubjectType_SubjectFour];
  105. RQ_COMMON_MANAGER.myCollectOneCount = collectNumOne;
  106. RQ_COMMON_MANAGER.myCollectFourCount = collectNumFour;
  107. RQ_COMMON_MANAGER.myErrorOneCount = errorNumOne;
  108. RQ_COMMON_MANAGER.myErrorFourCount = errorNumFour;
  109. }
  110. - (NSMutableAttributedString *)getAttributedTextWithAllNumStr:(NSString *)allNumStr {
  111. NSString *questionStr = [NSString stringWithFormat:@"题"];
  112. NSMutableAttributedString *allNumStrAttrStr = [[NSMutableAttributedString alloc] initWithString:allNumStr];
  113. [allNumStrAttrStr addAttribute:NSFontAttributeName value:RQRegularFont_13 range:[allNumStr rangeOfString:questionStr]];
  114. [allNumStrAttrStr addAttribute:NSForegroundColorAttributeName value:RQ_MAIN_TEXT_COLOR_2 range:[allNumStr rangeOfString:questionStr]];
  115. return allNumStrAttrStr;
  116. }
  117. #pragma mark - Override
  118. - (void)bindViewModel {
  119. [super bindViewModel];
  120. }
  121. @end