diff --git a/hula-im-service/src/main/java/com/hula/core/chat/domain/vo/response/ChatMessageResp.java b/hula-im-service/src/main/java/com/hula/core/chat/domain/vo/response/ChatMessageResp.java index bc2f7265..faf90ab0 100644 --- a/hula-im-service/src/main/java/com/hula/core/chat/domain/vo/response/ChatMessageResp.java +++ b/hula-im-service/src/main/java/com/hula/core/chat/domain/vo/response/ChatMessageResp.java @@ -43,22 +43,16 @@ public class ChatMessageResp extends BaseEntity { private Integer type; @Schema(description ="消息内容不同的消息类型,内容体不同") private Object body; - @Schema(description ="消息标记") - private MessageMark messageMark; - } - - @Data - public static class MessageMark { @Schema(description = "扩展标记统计(type为MessageMarkTypeEnum的type字段)") - private Map markStats; - - @Data - @AllArgsConstructor - public static class MarkItem { - @Schema(description = "标记数量") - private Integer count; - @Schema(description = "当前用户是否标记") - private Boolean userMarked; - } + private Map messageMarks; } + + @Data + @AllArgsConstructor + public static class MarkItem { + @Schema(description = "标记数量") + private Integer count; + @Schema(description = "当前用户是否标记") + private Boolean userMarked; + } } diff --git a/hula-im-service/src/main/java/com/hula/core/chat/service/adapter/MessageAdapter.java b/hula-im-service/src/main/java/com/hula/core/chat/service/adapter/MessageAdapter.java index fc62e70d..aac414c0 100644 --- a/hula-im-service/src/main/java/com/hula/core/chat/service/adapter/MessageAdapter.java +++ b/hula-im-service/src/main/java/com/hula/core/chat/service/adapter/MessageAdapter.java @@ -60,29 +60,27 @@ public class MessageAdapter { messageVO.setBody(msgHandler.showMsg(message)); } //消息标记 - messageVO.setMessageMark(buildMsgMark(marks, receiveUid)); + messageVO.setMessageMarks(buildMsgMark(marks, receiveUid)); return messageVO; } - private static ChatMessageResp.MessageMark buildMsgMark(List marks, Long receiveUid) { + private static Map buildMsgMark(List marks, Long receiveUid) { Map> typeMap = marks.stream().collect(Collectors.groupingBy(MessageMark::getType)); - ChatMessageResp.MessageMark mark = new ChatMessageResp.MessageMark(); - Map stats = new HashMap<>(); + // 构造动态统计为主数据源 + Map stats = new HashMap<>(); // 批量映射操作数量 Arrays.stream(MessageMarkTypeEnum.values()).forEach(typeEnum -> { List list = typeMap.getOrDefault(typeEnum.getType(), Collections.emptyList()); - stats.put(typeEnum.getType(), new ChatMessageResp.MessageMark.MarkItem(list.size(), Optional.ofNullable(receiveUid) + stats.put(typeEnum.getType(), new ChatMessageResp.MarkItem(list.size(), Optional.ofNullable(receiveUid) .filter(uid -> list.stream().anyMatch(m -> m != null && Objects.equals(m.getUid(), uid))) .map(uid -> YesOrNoEnum.YES.getBool()) .orElse(YesOrNoEnum.NO.getBool()))); }); - // 设置动态统计为主数据源 - mark.setMarkStats(stats); - return mark; + return stats; } private static ChatMessageResp.UserInfo buildFromUser(Long fromUid) {