// // TMCustomMessage.m // Timi // // Created by 翟玉磊 on 2021/5/11. // #import "TMCustomMessage.h" #import "NSString+YYAdd.h" #import "NSData+YYAdd.h" #import "Macro.h" static NSString * const RTC_CONVENE_GIFT_NOTICE = @"private:chat:gift:settle"; @implementation TMCustomMessage ///消息是否存储,是否计入未读数 + (RCMessagePersistent)persistentFlag { return MessagePersistent_NONE; } /// NSCoding - (instancetype)initWithCoder:(NSCoder *)aDecoder { self = [super init]; if (self) { self.data = [aDecoder decodeObjectForKey:@"data"]; } return self; } /// NSCoding - (void)encodeWithCoder:(NSCoder *)aCoder { [aCoder encodeObject:self.data forKey:@"data"]; } ///将消息内容编码成json - (NSData *)encode { NSMutableDictionary *dataDict = [NSMutableDictionary dictionary]; [dataDict setObject:self.data forKey:@"data"]; if (self.senderUserInfo) { [dataDict setObject:[self encodeUserInfo:self.senderUserInfo] forKey:@"user"]; } NSData *data = [NSJSONSerialization dataWithJSONObject:dataDict options:kNilOptions error:nil]; return data; } ///将json解码生成消息内容 - (void)decodeWithData:(NSData *)data { if (data) { __autoreleasing NSError *error = nil; NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error]; if (dictionary) { self.data = dictionary[@"data"]; NSDictionary *userinfoDic = dictionary[@"user"]; [self decodeUserInfo:userinfoDic]; } } } /// 会话列表中显示的摘要 - (NSString *)conversationDigest { NSString *str = @""; NSDictionary *param = [self.data jsonValueDecoded]; if (param != nil) { //自定义TIMCustomElem首页默认显示 NSString *type = [@"12" toString:param[@"type"]]; if ([type isEqualToString:RTC_CONVENE_GIFT_NOTICE]) { NSString *senderUserName = [@"12" toString:param[@"senderUserName"]]; NSString *targetUserName = [@"12" toString:param[@"targetUserName"]]; NSString *giftName = [@"12" toString:param[@"giftName"]]; NSInteger quantity= [param[@"quantity"] integerValue]; str = [NSString stringWithFormat:@"%@ 送给 %@ %@ x%ld", senderUserName, targetUserName, giftName, quantity]; }else{ NSString *msg = [@"12" toString:param[@"msg"]]; NSString *msgContent = [@"12" toString:param[@"msgContent"]]; if (StringIsEmpty(msg)) { str = msgContent; }else { str = msg; } } } if (StringIsNotEmpty(str)) { return str; } return @""; } ///消息的类型名 + (NSString *)getObjectName { return TMCustomMessageIdentifier; } @end