YMInvitingPrizesViewModel.m 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. //
  2. // YMInvitingPrizesViewModel.m
  3. // MSYOUPAI
  4. //
  5. // Created by YoMi on 2024/3/5.
  6. // Copyright © 2024 MS. All rights reserved.
  7. //
  8. #import "YMInvitingPrizesViewModel.h"
  9. #import "YMInvitingPrizesInfoModel.h"
  10. #import "YMInvitingPrizesSharePosterModel.h"
  11. @interface YMInvitingPrizesViewModel ()
  12. /// 邀请信息字典数据
  13. @property (nonatomic, strong, readwrite) NSArray <NSDictionary *> *invitationInfoDicDataArray;
  14. /// 邀请信息模组数据
  15. @property (nonatomic, strong, readwrite) NSArray <YMInvitingPrizesInvitationInfoViewModel *> *invitationInfoGridDataArray;
  16. /// 奖励说明
  17. @property (nonatomic, strong, readwrite) NSAttributedString *incentivesNotes;
  18. /// 海报数据
  19. @property (nonatomic, strong, readwrite) NSArray <YMInvitingPrizesSharePosterCellViewModel*>*posterDataArray;
  20. @end
  21. @implementation YMInvitingPrizesViewModel
  22. - (void)ym_initialize{
  23. [super ym_initialize];
  24. self.customNavTitle = @"邀请有礼";
  25. self.invitationInfoDicDataArray = @[
  26. @{
  27. @"title":@"0",
  28. @"desc":@"累计邀请(人数)",
  29. ParamsCategoryType:@(YMInvitingPrizesInvitationInfoTypeCumulativeInvitations),
  30. },
  31. @{
  32. @"title":@"0",
  33. @"desc":@"累计奖励(金币)",
  34. ParamsCategoryType:@(YMInvitingPrizesInvitationInfoTypeCumulativeReward),
  35. },
  36. ];
  37. }
  38. - (void)getInvitingPrizesInfoData{
  39. @weakify(self)
  40. [ZCHUDHelper showWithStatus:@"加载中..."];
  41. [LCHttpHelper requestWithURLString:InvitingPrizesInfo parameters:@{} needToken:YES type:HttpRequestTypePost success:^(id responseObject) {
  42. @strongify(self)
  43. NSDictionary* dict = (NSDictionary*)responseObject;
  44. NSInteger code = [[dict objectForKey:@"code"] integerValue];
  45. if (code == 0) {
  46. [ZCHUDHelper dismiss];
  47. YMInvitingPrizesInfoModel *model = [YMInvitingPrizesInfoModel yy_modelWithJSON:[dict dictionaryValueForKey:@"data" defaultValue:@{}]];
  48. self.invitationInfoGridDataArray = [self.invitationInfoDicDataArray.rac_sequence map:^id _Nullable(NSDictionary * _Nullable invitationInfoDic) {
  49. YMInvitingPrizesInvitationInfoType type = [invitationInfoDic integerValueForKey:ParamsCategoryType defaultValue:YMInvitingPrizesInvitationInfoTypeCumulativeInvitations];
  50. YMInvitingPrizesInvitationInfoViewModel *viewModel = [[YMInvitingPrizesInvitationInfoViewModel alloc]init];
  51. viewModel.desc = [invitationInfoDic stringValueForKey:@"desc" defaultValue:@""];
  52. viewModel.infoType = type;
  53. switch (type) {
  54. case YMInvitingPrizesInvitationInfoTypeCumulativeInvitations:
  55. {
  56. viewModel.titleString = stringFormat(@"%ld",model.invite_count);
  57. }
  58. break;
  59. case YMInvitingPrizesInvitationInfoTypeCumulativeReward:
  60. {
  61. viewModel.titleString = stringFormat(@"%ld",model.reward_count);
  62. }
  63. break;
  64. default:
  65. break;
  66. }
  67. return viewModel;
  68. }].array;
  69. NSString *incentivesNotesStr = model.invite_rules;
  70. NSMutableAttributedString *incentivesNotesAttributed = [[NSMutableAttributedString alloc]initWithString:incentivesNotesStr];
  71. incentivesNotesAttributed.yy_font = LCFont(13);
  72. incentivesNotesAttributed.yy_color = HexColorFromRGB(0xB54801);
  73. incentivesNotesAttributed.yy_alignment = NSTextAlignmentJustified;
  74. incentivesNotesAttributed.yy_lineSpacing = 5;
  75. self.incentivesNotes = incentivesNotesAttributed;
  76. [self.refreshUISubject sendNext:@(YMRefreshUI)];
  77. }else{
  78. [ZCHUDHelper showTitle:[dict stringValueForKey:@"message" defaultValue:@""]];
  79. [self.refreshUISubject sendNext:@(YMRefreshError)];
  80. }
  81. } failure:^(NSError *error) {
  82. [ZCHUDHelper showTitle:error.localizedDescription];
  83. [self.refreshUISubject sendNext:@(YMRefreshError)];
  84. }];
  85. [LCHttpHelper requestWithURLString:InvitingPrizesPoster parameters:@{} needToken:YES type:HttpRequestTypePost success:^(id responseObject) {
  86. @strongify(self)
  87. NSDictionary* dict = (NSDictionary*)responseObject;
  88. NSInteger code = [[dict objectForKey:@"code"] integerValue];
  89. if (code == 0) {
  90. YMInvitingPrizesSharePosterModel *model = [YMInvitingPrizesSharePosterModel yy_modelWithJSON:[dict dictionaryValueForKey:@"data" defaultValue:@{}]];
  91. NSMutableArray *tempArr = [NSMutableArray array];
  92. for (int i = 0; i<2; i++) {
  93. YMInvitingPrizesSharePosterCellViewModel *viewModel = [[YMInvitingPrizesSharePosterCellViewModel alloc]initWithParams:@{
  94. ParamsModel:model,
  95. @"poster":stringFormat(@"ym_inviting_prizes_share_poster_%d",i+1)
  96. }];
  97. [tempArr addObject:viewModel];
  98. }
  99. self.posterDataArray = tempArr.mutableCopy;
  100. [self.refreshUISubject sendNext:@(YMRefreshUI)];
  101. }else{
  102. [ZCHUDHelper showTitle:[dict stringValueForKey:@"message" defaultValue:@""]];
  103. }
  104. } failure:^(NSError *error) {
  105. [ZCHUDHelper showTitle:error.localizedDescription];
  106. }];
  107. }
  108. - (void)gotoInvitationBreakdown{
  109. YMInvitationBreakdownViewModel *invitationBreakdownVM = [[YMInvitationBreakdownViewModel alloc]initWithParams:@{}];
  110. [YMRouter openURL:stringFormat(@"%@%@",YM_ROUTER_URL_PREFIX,YM_ROUTER_INVITING_BREAKDOWN) withUserInfo:@{
  111. RouterViewModel:invitationBreakdownVM
  112. } completion:nil];
  113. }
  114. @end