fix: switch匹配MessageTypeEnum类型

This commit is contained in:
乾乾
2025-09-20 19:43:13 +08:00
parent 376d3b36dc
commit 8524cd27ae

View File

@@ -24,34 +24,34 @@ import static com.luohuo.flex.im.domain.enums.MessageTypeEnum.*;
@Component
@AllArgsConstructor
public class MergeMsgHandler extends AbstractMsgHandler<MergeMsgDTO> {
private MsgCache msgCache;
private MsgCache msgCache;
private UserCache userCache;
private MessageDao messageDao;
@Override
MessageTypeEnum getMsgTypeEnum() {
return MERGE;
}
MessageTypeEnum getMsgTypeEnum() {
return MERGE;
}
@Override
protected void saveMsg(Message message, MergeMsgDTO body) {
List<Message> messages = new ArrayList<>(msgCache.getBatch(body.getBody().stream()
.limit(3)
.map(item -> Long.parseLong(item.getMessageId()))
.collect(Collectors.toList())).values());
.limit(3)
.map(item -> Long.parseLong(item.getMessageId()))
.collect(Collectors.toList())).values());
List<String> content = messages.stream().map(msg ->
userCache.get(msg.getFromUid()).getName() + ": " + switch (msg.getType()) {
case MERGE -> "[聊天记录]";
case SOUND -> "[语音]";
case VIDEO -> "[视频]";
case FILE -> "[文件]";
case IMG -> "[图片]";
case RECALL -> "[消息已撤回]";
case EMOJI -> "[表情]";
case NOTICE -> "[公告消息]";
default -> msg.getContent();
}).collect(Collectors.toList());
userCache.get(msg.getFromUid()).getName() + ": " + switch (MessageTypeEnum.of(msg.getType())) {
case MERGE -> "[聊天记录]";
case SOUND -> "[语音]";
case VIDEO -> "[视频]";
case FILE -> "[文件]";
case IMG -> "[图片]";
case RECALL -> "[消息已撤回]";
case EMOJI -> "[表情]";
case NOTICE -> "[公告消息]";
default -> msg.getContent();
}).collect(Collectors.toList());
body.setContent(content);
MessageExtra extra = Optional.ofNullable(message.getExtra()).orElse(new MessageExtra());
@@ -64,19 +64,19 @@ public class MergeMsgHandler extends AbstractMsgHandler<MergeMsgDTO> {
}
@Override
public Object showMsg(Message msg) {
public Object showMsg(Message msg) {
MergeMsgDTO resp = msg.getExtra().getMergeMsgDTO();
resp.setReply(replyMsg(msg));
return resp;
}
}
@Override
public Object showReplyMsg(Message msg) {
@Override
public Object showReplyMsg(Message msg) {
return "合并消息";
}
}
@Override
public String showContactMsg(Message msg) {
@Override
public String showContactMsg(Message msg) {
return "[合并消息]";
}
}
}