YMSearchUserCellViewModel.m 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. //
  2. // YMSearchUserCellViewModel.m
  3. // MSYOUPAI
  4. //
  5. // Created by YoMi on 2024/3/17.
  6. // Copyright © 2024 MS. All rights reserved.
  7. //
  8. #import "YMSearchUserCellViewModel.h"
  9. #import "YMSearchUserModel.h"
  10. #import "YOUPAILCIMSessionVC.h"
  11. @interface YMSearchUserCellViewModel ()
  12. /// 用户Id
  13. @property (nonatomic, assign, readwrite) NSInteger userId;
  14. /// 用户头像
  15. @property (nonatomic, copy, readwrite) NSString *userAvatar;
  16. /// 用户名称
  17. @property (nonatomic, copy, readwrite) NSString *userNickname;
  18. /// 用户描述
  19. @property (nonatomic, copy, readwrite) NSString *userDesc;
  20. /// 是否搭讪
  21. @property (nonatomic, assign, readwrite) BOOL isCanPrivateChat;
  22. /// 心动或搭讪按钮标题 “心动”字样是给女用户的 “搭讪”字样是给男用户
  23. @property (nonatomic, strong, readwrite) NSString *heartbeatOrAccostButtonTitle;
  24. /// 心动或搭讪按钮图片
  25. @property (nonatomic, strong, readwrite) NSString *heartbeatOrAccostButtonImage;
  26. /// 心动或搭讪按钮标题颜色
  27. @property (nonatomic, strong, readwrite) UIColor *heartbeatOrAccostButtonTitleColor;
  28. /// 心动或搭讪按钮背景颜色
  29. @property (nonatomic, strong, readwrite) UIColor *heartbeatOrAccostButtonBackgroundColor;
  30. @end
  31. @implementation YMSearchUserCellViewModel
  32. - (void)ym_initialize{
  33. [super ym_initialize];
  34. if ([self.params[ParamsModel] isKindOfClass:[YMSearchUserModel class]]) {
  35. YMSearchUserModel *model = self.params[ParamsModel];
  36. self.userId = model.user_id;
  37. self.userAvatar = model.avatar;
  38. self.userNickname = model.nickname;
  39. NSMutableString *desc = [NSMutableString string];
  40. if (model.gender == 1) {
  41. [desc appendFormat:@"女 | "];
  42. }else{
  43. [desc appendFormat:@"男 | "];
  44. }
  45. if (model.age != 0) {
  46. [desc appendFormat:@"%ld岁 | ",model.age];
  47. }
  48. self.userDesc = [desc substringToIndex:desc.length - 2];
  49. self.isCanPrivateChat = model.is_beckon;
  50. if (self.isCanPrivateChat) {
  51. self.heartbeatOrAccostButtonTitle = @"私信";
  52. self.heartbeatOrAccostButtonImage = @"ym_common_home_siliao";
  53. self.heartbeatOrAccostButtonTitleColor = HexColorFromRGB(0xFF70C5);
  54. self.heartbeatOrAccostButtonBackgroundColor = HexColorFromRGB(0xFFFFFF);
  55. } else {
  56. self.heartbeatOrAccostButtonTitle = [self isFemaleGender] ? @"心动" : @"搭讪";
  57. self.heartbeatOrAccostButtonImage = [self isFemaleGender] ? @"ym_common_home_heart" : @"ym_common_home_dashan";
  58. self.heartbeatOrAccostButtonTitleColor = HexColorFromRGB(0xFFFFFF);
  59. self.heartbeatOrAccostButtonBackgroundColor = HexColorFromRGB(0xFF70C5);
  60. }
  61. }
  62. }
  63. - (void)sendAccostRequest{
  64. if ([self isNeedGoddessCertified]) {
  65. return;
  66. }
  67. YOUPAILCUserModel *userModel = [LCSaveModel getUserModel];
  68. // 当前登录用户性别为女,直接跳转聊天
  69. if (userModel.youpaipuserinfo.youpaipgender == 1) {
  70. NIMSession *session = [NIMSession session:stringFormat(@"%ld",self.userId) type:NIMSessionTypeP2P];
  71. if (session) {
  72. [ZCHUDHelper show];
  73. [[[NIMSDK sharedSDK] userManager] fetchUserInfos:@[session.sessionId] completion:^(NSArray<NIMUser *> * _Nullable users, NSError * _Nullable error) {
  74. // @strongify(self)
  75. [ZCHUDHelper dismiss];
  76. YOUPAILCIMSessionVC *vc = [[YOUPAILCIMSessionVC alloc] initWithSession:session];
  77. vc.type = @"1";
  78. [[YMGlobalUtils getCurrentVC].navigationController pushViewController:vc animated:YES];
  79. }];
  80. }
  81. return;
  82. }
  83. if(self.isCanPrivateChat){
  84. // @weakify(self)
  85. NIMSession *session = [NIMSession session:stringFormat(@"%ld",self.userId) type:NIMSessionTypeP2P];
  86. if (session) {
  87. [ZCHUDHelper show];
  88. [[[NIMSDK sharedSDK] userManager] fetchUserInfos:@[session.sessionId] completion:^(NSArray<NIMUser *> * _Nullable users, NSError * _Nullable error) {
  89. // @strongify(self)
  90. [ZCHUDHelper dismiss];
  91. YOUPAILCIMSessionVC *vc = [[YOUPAILCIMSessionVC alloc] initWithSession:session];
  92. vc.type = @"1";
  93. [[YMGlobalUtils getCurrentVC].navigationController pushViewController:vc animated:YES];
  94. }];
  95. }
  96. }else{
  97. @weakify(self)
  98. [LCHttpHelper requestWithURLString:HomeBeckonSend parameters:@{
  99. @"user_ids":stringFormat(@"[%ld]",self.userId)
  100. } needToken:YES type:(HttpRequestTypePost) success:^(id responseObject) {
  101. @strongify(self)
  102. NSDictionary* dict = (NSDictionary*)responseObject;
  103. NSInteger code = [[dict objectForKey:@"code"] integerValue];
  104. if (code == 0) {
  105. NSDictionary *data = [dict dictionaryValueForKey:@"data" defaultValue:@{}];
  106. BOOL boole = [data boolValueForKey:@"boole" defaultValue:NO];
  107. if (boole) {
  108. self.isCanPrivateChat = YES;
  109. self.heartbeatOrAccostButtonTitle = @"私信";
  110. self.heartbeatOrAccostButtonImage = @"ym_common_home_siliao";
  111. self.heartbeatOrAccostButtonTitleColor = HexColorFromRGB(0xFF70C5);
  112. self.heartbeatOrAccostButtonBackgroundColor = HexColorFromRGB(0xFFFFFF);
  113. if (self.changeAccostStatusBlock) {
  114. self.changeAccostStatusBlock();
  115. }
  116. }
  117. }else{
  118. [ZCHUDHelper showTitle:[dict stringValueForKey:@"message" defaultValue:@""]];
  119. }
  120. } failure:^(NSError *error) {
  121. [ZCHUDHelper showTitle:error.localizedDescription];
  122. }];
  123. }
  124. }
  125. @end