YMHomePageListCellViewModel.m 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. //
  2. // YMHomePageListCellViewModel.m
  3. // MSYOUPAI
  4. //
  5. // Created by YoMi on 2024/2/12.
  6. // Copyright © 2024 MS. All rights reserved.
  7. //
  8. #import "YMHomePageListCellViewModel.h"
  9. #import "YMHomeListModel.h"
  10. #import "YOUPAILCIMSessionVC.h"
  11. @interface YMHomePageListCellViewModel ()
  12. /// 用户Id
  13. @property (nonatomic, assign, readwrite) NSInteger userId;
  14. /// 用户头像
  15. @property (nonatomic, copy, readwrite) NSString * userAvatar;
  16. /// 用户在线状态颜色
  17. @property (nonatomic, strong, readwrite) UIColor *userOnlineStatusColor;
  18. /// 用户在线状态文本
  19. @property (nonatomic, strong, readwrite) NSString *userOnlineStatusText;
  20. @property (nonatomic, strong, readwrite) UIColor *userOnlineTextColor;
  21. /// 用户昵称
  22. @property (nonatomic, copy, readwrite) NSString * userNickname;
  23. /// 用户昵称颜色
  24. @property (nonatomic, copy, readwrite) UIColor * userNicknameColor;
  25. /// 用户是否在线
  26. @property (nonatomic, assign, readwrite) NSInteger is_online;
  27. /// 用户是否在线颜色
  28. @property (nonatomic, copy, readwrite) UIColor * is_onlineColor;
  29. /// 用户视频费用金额
  30. @property (nonatomic, copy, readwrite) NSString * userVideoFeesAmount;
  31. /// 是否隐藏用户收费金额
  32. @property (nonatomic, assign, readwrite) BOOL isHideUserFeesAmount;
  33. /// 是否可私聊
  34. @property (nonatomic, assign, readwrite) BOOL isCanPrivateChat;
  35. /// 心动或搭讪按钮标题 “心动”字样是给女用户的 “搭讪”字样是给男用户
  36. @property (nonatomic, strong, readwrite) NSString *heartbeatOrAccostButtonTitle;
  37. /// 心动或搭讪按钮图片
  38. @property (nonatomic, strong, readwrite) NSString *heartbeatOrAccostButtonImage;
  39. /// 心动或搭讪按钮标题颜色
  40. @property (nonatomic, strong, readwrite) UIColor *heartbeatOrAccostButtonTitleColor;
  41. /// 心动或搭讪按钮背景颜色
  42. @property (nonatomic, strong, readwrite) UIColor *heartbeatOrAccostButtonBackgroundColor;
  43. @end
  44. @implementation YMHomePageListCellViewModel
  45. - (void)ym_initialize{
  46. [super ym_initialize];
  47. if ([self.params[ParamsModel] isKindOfClass:[YMHomeListModel class]]) {
  48. YMHomeListModel *model = self.params[ParamsModel];
  49. self.userId = model.user_id;
  50. self.userAvatar = model.avatar;
  51. if (model.video_status == 0) {
  52. self.userOnlineStatusColor = DecColorFromRGBA(156, 236, 160, 0.16);
  53. self.userOnlineTextColor = kColors(@"#6ED473");
  54. self.userOnlineStatusText = @"空闲";
  55. self.is_onlineColor = HexColorFromRGB(0x22F759);
  56. } else if (model.video_status == 1) {
  57. self.userOnlineStatusColor = DecColorFromRGBA(255, 164, 164, 0.21);
  58. self.userOnlineTextColor = kColors(@"#FF5473");
  59. self.userOnlineStatusText = @"在聊";
  60. self.is_onlineColor = HexColorFromRGB(0x22F759);
  61. }else{
  62. self.userOnlineStatusColor = DecColorFromRGBA(122, 122, 122, 0.1);
  63. self.userOnlineTextColor = kColors(@"#888888");
  64. self.userOnlineStatusText = @"离线";
  65. self.is_onlineColor = UIColor.clearColor;
  66. }
  67. self.userNickname = model.nickname;
  68. if (model.is_vip != 1) {
  69. self.userNicknameColor = HexColorFromRGB(0x333333);
  70. } else {
  71. self.userNicknameColor = HexColorFromRGB(0x954403);
  72. }
  73. self.is_online = model.is_online;
  74. self.userVideoFeesAmount = stringFormat(@"%ld钻石/分钟",model.video_price);
  75. self.isHideUserFeesAmount = model.gender == 1 ? NO : YES;
  76. self.isCanPrivateChat = model.is_beckon;
  77. if (self.isCanPrivateChat) {
  78. //self.heartbeatOrAccostButtonTitle = @"私信";
  79. //self.heartbeatOrAccostButtonImage = @"ym_common_home_siliao";
  80. self.heartbeatOrAccostButtonTitle = @"";
  81. self.heartbeatOrAccostButtonImage = @"ym_common_home_siliao";
  82. self.heartbeatOrAccostButtonTitleColor = HexColorFromRGB(0xFF70C5);
  83. self.heartbeatOrAccostButtonBackgroundColor = HexColorFromRGB(0xFFFFFF);
  84. } else {
  85. //self.heartbeatOrAccostButtonTitle = [self isFemaleGender] ? @"心动" : @"搭讪";
  86. //self.heartbeatOrAccostButtonImage = [self isFemaleGender] ? @"ym_common_home_heart" : @"ym_common_home_dashan";
  87. self.heartbeatOrAccostButtonTitle = @"";
  88. self.heartbeatOrAccostButtonImage = @"ym_common_home_pink_heart";
  89. self.heartbeatOrAccostButtonTitleColor = HexColorFromRGB(0x000000);
  90. self.heartbeatOrAccostButtonBackgroundColor = HexColorFromRGB(0xFF70C5);
  91. }
  92. }
  93. }
  94. - (void)sendAccostRequest{
  95. if ([self isNeedGoddessCertified]) {
  96. return;
  97. }
  98. // YOUPAILCUserModel *userModel = [LCSaveModel getUserModel];
  99. // // 当前登录用户性别为女,直接跳转聊天
  100. // if (!self.isFemaleGender && self.jxCategoryPageIndex == 0) {
  101. // NIMSession *session = [NIMSession session:stringFormat(@"%ld",self.userId) type:NIMSessionTypeP2P];
  102. // if (session) {
  103. // [ZCHUDHelper show];
  104. // [[[NIMSDK sharedSDK] userManager] fetchUserInfos:@[session.sessionId] completion:^(NSArray<NIMUser *> * _Nullable users, NSError * _Nullable error) {
  105. //// @strongify(self)
  106. // [ZCHUDHelper dismiss];
  107. // YOUPAILCIMSessionVC *vc = [[YOUPAILCIMSessionVC alloc] initWithSession:session];
  108. // vc.type = @"1";
  109. // [[YMGlobalUtils getCurrentVC].navigationController pushViewController:vc animated:YES];
  110. // }];
  111. // }
  112. // return;
  113. // }
  114. if (self.isCanPrivateChat) {
  115. //@weakify(self)
  116. NIMSession *session = [NIMSession session:stringFormat(@"%ld",self.userId) type:NIMSessionTypeP2P];
  117. if (session) {
  118. [ZCHUDHelper show];
  119. [[[NIMSDK sharedSDK] userManager] fetchUserInfos:@[session.sessionId] completion:^(NSArray<NIMUser *> * _Nullable users, NSError * _Nullable error) {
  120. [ZCHUDHelper dismiss];
  121. YOUPAILCIMSessionVC *vc = [[YOUPAILCIMSessionVC alloc] initWithSession:session];
  122. vc.type = @"1";
  123. [[YMGlobalUtils getCurrentVC].navigationController pushViewController:vc animated:YES];
  124. }];
  125. }
  126. } else {
  127. @weakify(self)
  128. [LCHttpHelper requestWithURLString:HomeBeckonSend parameters:@{
  129. @"user_ids":stringFormat(@"[%ld]",self.userId)
  130. } needToken:YES type:(HttpRequestTypePost) success:^(id responseObject) {
  131. @strongify(self)
  132. NSDictionary* dict = (NSDictionary*)responseObject;
  133. NSInteger code = [[dict objectForKey:@"code"] integerValue];
  134. if (code == 0) {
  135. NSDictionary *data = [dict dictionaryValueForKey:@"data" defaultValue:@{}];
  136. BOOL boole = [data boolValueForKey:@"boole" defaultValue:NO];
  137. if (boole) {
  138. self.isCanPrivateChat = YES;
  139. // self.heartbeatOrAccostButtonTitle = @"私信";
  140. // self.heartbeatOrAccostButtonImage = @"ym_common_home_siliao";
  141. // self.heartbeatOrAccostButtonTitleColor = HexColorFromRGB(0xFF70C5);
  142. // self.heartbeatOrAccostButtonBackgroundColor = HexColorFromRGB(0xFFFFFF);
  143. [self updateWithPageIndex];
  144. if (self.changeAccostStatusBlock) {
  145. self.changeAccostStatusBlock();
  146. }
  147. }
  148. }else{
  149. [ZCHUDHelper showTitle:[dict stringValueForKey:@"message" defaultValue:@""]];
  150. }
  151. } failure:^(NSError *error) {
  152. [ZCHUDHelper showTitle:error.localizedDescription];
  153. }];
  154. }
  155. }
  156. - (void)updateWithPageIndex {
  157. if (self.isFemaleGender) {
  158. if (self.isCanPrivateChat) {
  159. self.heartbeatOrAccostButtonTitle = @" 私信";
  160. self.heartbeatOrAccostButtonImage = @"ym_common_home_siliao";
  161. self.heartbeatOrAccostButtonTitleColor = UIColor.clearColor;
  162. self.heartbeatOrAccostButtonBackgroundColor = UIColor.clearColor;
  163. } else {
  164. self.heartbeatOrAccostButtonTitle = @" 心动";
  165. self.heartbeatOrAccostButtonImage = @"ym_common_home_dashan";
  166. self.heartbeatOrAccostButtonTitleColor = UIColor.clearColor;
  167. self.heartbeatOrAccostButtonBackgroundColor = UIColor.clearColor;
  168. }
  169. } else {
  170. if (self.jxCategoryPageIndex == 0) {
  171. if (self.isCanPrivateChat) {
  172. self.heartbeatOrAccostButtonTitle = @"";
  173. self.heartbeatOrAccostButtonImage = @"ym_common_home_blue_heart";
  174. self.heartbeatOrAccostButtonTitleColor = UIColor.clearColor;
  175. self.heartbeatOrAccostButtonBackgroundColor = UIColor.clearColor;
  176. } else {
  177. self.heartbeatOrAccostButtonTitle = @"";
  178. self.heartbeatOrAccostButtonImage = @"ym_common_home_pink_heart";
  179. self.heartbeatOrAccostButtonTitleColor = UIColor.clearColor;
  180. self.heartbeatOrAccostButtonBackgroundColor = UIColor.clearColor;
  181. }
  182. } else {
  183. if (self.isCanPrivateChat) {
  184. self.heartbeatOrAccostButtonTitle = @" 私信";
  185. self.heartbeatOrAccostButtonImage = @"ym_common_home_siliao";
  186. self.heartbeatOrAccostButtonTitleColor = UIColor.clearColor;
  187. self.heartbeatOrAccostButtonBackgroundColor = UIColor.clearColor;
  188. } else {
  189. self.heartbeatOrAccostButtonTitle = @" 搭讪";
  190. self.heartbeatOrAccostButtonImage = @"ym_common_home_dashan";
  191. self.heartbeatOrAccostButtonTitleColor = UIColor.clearColor;
  192. self.heartbeatOrAccostButtonBackgroundColor = UIColor.clearColor;
  193. }
  194. }
  195. }
  196. }
  197. @end