// // RQSynchronizationViewController.m // jiaPei // // Created by 张嵘 on 2022/9/1. // Copyright © 2022 JCZ. All rights reserved. // #import "RQSynchronizationViewController.h" @interface RQSynchronizationViewController () /// viewModel @property (nonatomic, readonly, strong) RQSynchronizationViewModel *viewModel; @property (weak, nonatomic) IBOutlet UILabel *lastTimeLabel; @property (weak, nonatomic) IBOutlet UILabel *collectOneLabel; @property (weak, nonatomic) IBOutlet UILabel *collectFourLabel; @property (weak, nonatomic) IBOutlet UILabel *errorOneLabel; @property (weak, nonatomic) IBOutlet UILabel *errorFourLabel; @property (weak, nonatomic) IBOutlet UILabel *examOneLabel; @property (weak, nonatomic) IBOutlet UILabel *examFourLabel; @end @implementation RQSynchronizationViewController @dynamic viewModel; #pragma mark - SystemMethod - (void)viewDidLoad { [super viewDidLoad]; /// 初始化 [self rq_setup]; } - (void)viewDidLayoutSubviews { [super viewDidLayoutSubviews]; } - (void)dealloc { } #pragma mark - PrivateMethods /// 初始化 - (void)rq_setup { @weakify(self) RAC(_lastTimeLabel, text) = [RACObserve(RQ_COMMON_MANAGER, updateTimeStr) takeUntil:self.rac_willDeallocSignal]; RAC(_examOneLabel, attributedText) = [[RACObserve(RQ_COMMON_MANAGER, myExamOneCount) takeUntil:self.rac_willDeallocSignal] map:^id _Nullable(id _Nullable value) { @strongify(self) return [self getAttributedTextWithAllNumStr:[NSString stringWithFormat:@"%ld次",RQ_COMMON_MANAGER.myExamOneCount]]; }]; RAC(_examFourLabel, attributedText) = [[RACObserve(RQ_COMMON_MANAGER, myExamFourCount) takeUntil:self.rac_willDeallocSignal] map:^id _Nullable(id _Nullable value) { @strongify(self) return [self getAttributedTextWithAllNumStr:[NSString stringWithFormat:@"%ld次",RQ_COMMON_MANAGER.myExamFourCount]]; }]; RAC(_errorOneLabel, attributedText) = [[RACObserve(RQ_COMMON_MANAGER, myErrorOneCount) takeUntil:self.rac_willDeallocSignal] map:^id _Nullable(id _Nullable value) { @strongify(self) return [self getAttributedTextWithAllNumStr:[NSString stringWithFormat:@"%ld题",RQ_COMMON_MANAGER.myErrorOneCount]]; }]; RAC(_errorFourLabel, attributedText) = [[RACObserve(RQ_COMMON_MANAGER, myErrorFourCount) takeUntil:self.rac_willDeallocSignal] map:^id _Nullable(id _Nullable value) { @strongify(self) return [self getAttributedTextWithAllNumStr:[NSString stringWithFormat:@"%ld题",RQ_COMMON_MANAGER.myErrorFourCount]]; }]; RAC(_collectOneLabel, attributedText) = [[RACObserve(RQ_COMMON_MANAGER, myCollectOneCount) takeUntil:self.rac_willDeallocSignal] map:^id _Nullable(id _Nullable value) { @strongify(self) return [self getAttributedTextWithAllNumStr:[NSString stringWithFormat:@"%ld题",RQ_COMMON_MANAGER.myCollectOneCount]]; }]; RAC(_collectFourLabel, attributedText) = [[RACObserve(RQ_COMMON_MANAGER, myCollectFourCount) takeUntil:self.rac_willDeallocSignal] map:^id _Nullable(id _Nullable value) { @strongify(self) return [self getAttributedTextWithAllNumStr:[NSString stringWithFormat:@"%ld题",RQ_COMMON_MANAGER.myCollectFourCount]]; }]; [self updateNumData]; } - (IBAction)synchronizationAction:(id)sender { @weakify(self) [MBProgressHUD rq_showProgressHUD:@"同步中..."]; [[RQ_HTTP_Service getMyQuestionFavs] subscribeNext:^(NSArray *_Nullable arr) { if ([arr isKindOfClass:[NSArray class]]) { [RQ_YDT_USER_Question_Module deleteAllRemoveRecord]; [RQ_YDT_USER_Question_Module deleteAllCollectRecordWithCarType:RQ_YDTQuestion_Module.carType subject:RQ_YDTQuestion_Module.subject]; [RQ_YDT_USER_Question_Module deleteWrongRecordithCarType:RQ_YDTQuestion_Module.carType subject:RQ_YDTQuestion_Module.subject]; [[arr.rac_sequence.signal deliverOnMainThread] subscribeNext:^(RQMyQuestionFavsModel *myQuestionFavsModel) { if ([myQuestionFavsModel.TYPE isEqualToString:@"1"]) { /// 收藏 [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]; } else if ([myQuestionFavsModel.TYPE isEqualToString:@"2"]) { /// 错题 [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]; } } completed:^{ @strongify(self) [self updateNumData]; RQ_COMMON_MANAGER.updateTimeStr = [NSString stringWithFormat:@"上次同步时间:%@",[NSDate rq_currentTimestamp]]; [MBProgressHUD rq_hideHUD]; }]; } } error:^(NSError * _Nullable error) { [MBProgressHUD rq_hideHUD]; [MBProgressHUD rq_showErrorTips:error]; }]; [[RQ_HTTP_Service getMyScoreWithSubject:RQHomePageSubjectType_SubjectOne] subscribeNext:^(NSArray *examResultModelArr) { RQ_COMMON_MANAGER.myExamOneCount = examResultModelArr.count; RQ_COMMON_MANAGER.examResultOneListArr = examResultModelArr; }]; [[RQ_HTTP_Service getMyScoreWithSubject:RQHomePageSubjectType_SubjectFour] subscribeNext:^(NSArray *examResultModelArr) { RQ_COMMON_MANAGER.myExamFourCount = examResultModelArr.count; RQ_COMMON_MANAGER.examResultFourListArr = examResultModelArr; }]; } - (void)updateNumData { NSInteger collectNumOne = [RQ_YDT_USER_Question_Module getCollectQuestionNumWithCarType:RQ_YDTQuestion_Module.carType subject:RQHomePageSubjectType_SubjectOne]; NSInteger collectNumFour = [RQ_YDT_USER_Question_Module getCollectQuestionNumWithCarType:RQ_YDTQuestion_Module.carType subject:RQHomePageSubjectType_SubjectFour]; NSInteger errorNumOne = [RQ_YDT_USER_Question_Module getWrongQuestionNumWithCarType:RQ_YDTQuestion_Module.carType subject:RQHomePageSubjectType_SubjectOne]; NSInteger errorNumFour = [RQ_YDT_USER_Question_Module getWrongQuestionNumWithCarType:RQ_YDTQuestion_Module.carType subject:RQHomePageSubjectType_SubjectFour]; RQ_COMMON_MANAGER.myCollectOneCount = collectNumOne; RQ_COMMON_MANAGER.myCollectFourCount = collectNumFour; RQ_COMMON_MANAGER.myErrorOneCount = errorNumOne; RQ_COMMON_MANAGER.myErrorFourCount = errorNumFour; } - (NSMutableAttributedString *)getAttributedTextWithAllNumStr:(NSString *)allNumStr { NSString *questionStr = [NSString stringWithFormat:@"题"]; NSMutableAttributedString *allNumStrAttrStr = [[NSMutableAttributedString alloc] initWithString:allNumStr]; [allNumStrAttrStr addAttribute:NSFontAttributeName value:RQRegularFont_13 range:[allNumStr rangeOfString:questionStr]]; [allNumStrAttrStr addAttribute:NSForegroundColorAttributeName value:RQ_MAIN_TEXT_COLOR_2 range:[allNumStr rangeOfString:questionStr]]; return allNumStrAttrStr; } #pragma mark - Override - (void)bindViewModel { [super bindViewModel]; } @end