RQVipCenterSubListViewModel.m 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. //
  2. // RQVipCenterSubListViewModel.m
  3. // jiaPei
  4. //
  5. // Created by 张嵘 on 2022/9/22.
  6. // Copyright © 2022 JCZ. All rights reserved.
  7. //
  8. #import "RQVipCenterSubListViewModel.h"
  9. @interface RQVipCenterSubListViewModel ()
  10. @property (nonatomic, readwrite, assign) RQHomePageSubjectType homePageSubjectType;
  11. @end
  12. @implementation RQVipCenterSubListViewModel
  13. #pragma mark - Public Method
  14. - (instancetype)initWithServices:(id<RQViewModelServices>)services params:(NSDictionary *)params {
  15. if (self = [super initWithServices:services params:params]) {
  16. self.homePageSubjectType = [params[RQHomePageSubjectTypeKey] integerValue];
  17. }
  18. return self;
  19. }
  20. - (void)initialize {
  21. [super initialize];
  22. self.title = @"会员中心";
  23. [[RQ_HTTP_Service getVideoVipWithUserId:RQ_USER_MANAGER.currentUser._id] subscribeNext:^(RQVideoVipModel *videoVipModel) {
  24. // videoVipModel.subject1 = @"1";
  25. // videoVipModel.subject2 = @"";
  26. // videoVipModel.subject3 = @"";
  27. // videoVipModel.subject4 = @"1";
  28. RQ_VIP_Module.videoVipModel = videoVipModel;
  29. }];
  30. [RQ_VIP_Module isVipWithSubject:0 complete:^(BOOL isVip) {
  31. }];
  32. [RQ_VIP_Module isActiveWithCcomplete:^(RQActivationModel * _Nullable activationModel, BOOL isSuccess) {}];
  33. ///配置数据
  34. [self rq_configureData];
  35. }
  36. #pragma mark - PrivateMethod
  37. - (void)rq_configureData {
  38. @weakify(self)
  39. /// 数据源
  40. RAC(self,dataSource) = [RACSignal
  41. combineLatest:@[RACObserve(RQ_VIP_Module, videoVipModel),RACObserve(RQ_VIP_Module, chooseTypeModel)]
  42. reduce:^(RQVideoVipModel *videoVipModel, RQTypeModel *chooseTypeModel) {
  43. @strongify(self)
  44. /// 第零组 会员期限与购买
  45. RQCommonGroupViewModel *group0 = [RQCommonGroupViewModel groupViewModel];
  46. RQVipTimeItemViewModel *vipTimeItemViewModel = [[RQVipTimeItemViewModel alloc] initVideoVipModel:videoVipModel homePageSubjectType:self.homePageSubjectType];
  47. group0.itemViewModels = @[vipTimeItemViewModel];
  48. /// 第一组 怎么学
  49. RQCommonGroupViewModel *group1 = [RQCommonGroupViewModel groupViewModel];
  50. RQVipContentItemViewModel *vipContentItemViewModel = [[RQVipContentItemViewModel alloc] initWithRQTypeModel:chooseTypeModel];
  51. vipContentItemViewModel.isCenter = YES;
  52. vipContentItemViewModel.homePageSubjectType = self.homePageSubjectType;
  53. group1.itemViewModels = @[vipContentItemViewModel];
  54. /// 第二组 尊享4大权益
  55. RQCommonGroupViewModel *group2 = [RQCommonGroupViewModel groupViewModel];
  56. RQVipAuthorityItemViewModel *vipAuthorityItemViewModel = [[RQVipAuthorityItemViewModel alloc] initWithRQTypeModel:chooseTypeModel];
  57. vipAuthorityItemViewModel.isCenter = YES;
  58. vipAuthorityItemViewModel.homePageSubjectType = self.homePageSubjectType;
  59. group2.itemViewModels = @[vipAuthorityItemViewModel];
  60. return (self.homePageSubjectType == RQHomePageSubjectType_SubjectOne || self.homePageSubjectType == RQHomePageSubjectType_SubjectFour)? @[group0, group1, group2] : @[group0, group2];
  61. }];
  62. }
  63. @end