From 773d0941441fcdcb93aaeb97097f152515649c7e Mon Sep 17 00:00:00 2001 From: YunaiV Date: Thu, 18 Jun 2026 08:59:05 -0700 Subject: [PATCH] fix(im): 修复群备注首屏展示和聊天列表名称覆盖 --- yudao-module-im/src/main/java/cn/iocoder/yudao/module/im/controller/admin/group/ImGroupController.java | 9 +++++++-- yudao-module-im/src/main/java/cn/iocoder/yudao/module/im/controller/admin/group/vo/ImGroupRespVO.java | 8 +++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/yudao-module-im/src/main/java/cn/iocoder/yudao/module/im/controller/admin/group/ImGroupController.java b/yudao-module-im/src/main/java/cn/iocoder/yudao/module/im/controller/admin/group/ImGroupController.java index 370fdab..587b216 100644 --- a/yudao-module-im/src/main/java/cn/iocoder/yudao/module/im/controller/admin/group/ImGroupController.java +++ b/yudao-module-im/src/main/java/cn/iocoder/yudao/module/im/controller/admin/group/ImGroupController.java @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.im.controller.admin.group; import cn.hutool.core.collection.CollUtil; import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.collection.MapUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.im.controller.admin.group.vo.*; import cn.iocoder.yudao.module.im.controller.admin.group.vo.member.ImGroupMemberInviteReqVO; @@ -187,8 +188,10 @@ public class ImGroupController { return Collections.emptyList(); } // 仅当前用户是有效成员的群才允许回填置顶消息 - Set activeGroupIds = convertSet( - groupMemberService.getActiveGroupMemberListByUserId(loginUserId), ImGroupMemberDO::getGroupId); + Map memberMap = convertMap( + groupMemberService.getGroupMemberListByUserId(loginUserId), ImGroupMemberDO::getGroupId); + Set activeGroupIds = convertSet(memberMap.values(), ImGroupMemberDO::getGroupId, + member -> CommonStatusEnum.ENABLE.getStatus().equals(member.getStatus())); Set allMessageIds = convertSetByFlatMap(groups, group -> activeGroupIds.contains(group.getId()) ? CollUtil.emptyIfNull(group.getPinnedMessageIds()).stream() : Stream.empty()); Map messageMap = groupMessageService.getGroupMessageMap(allMessageIds); @@ -198,6 +201,8 @@ public class ImGroupController { // 标记登录用户在该群的成员状态,供前端区分当前群与历史退群 boolean joined = activeGroupIds.contains(group.getId()); groupVO.setJoinStatus(joined ? CommonStatusEnum.ENABLE.getStatus() : CommonStatusEnum.DISABLE.getStatus()); + MapUtils.findAndThen(memberMap, group.getId(), member -> + groupVO.setGroupRemark(member.getGroupRemark()).setSilent(Boolean.TRUE.equals(member.getSilent()))); if (!joined || CollUtil.isEmpty(group.getPinnedMessageIds())) { return groupVO; } diff --git a/yudao-module-im/src/main/java/cn/iocoder/yudao/module/im/controller/admin/group/vo/ImGroupRespVO.java b/yudao-module-im/src/main/java/cn/iocoder/yudao/module/im/controller/admin/group/vo/ImGroupRespVO.java index 84fc7c4..f15d766 100644 --- a/yudao-module-im/src/main/java/cn/iocoder/yudao/module/im/controller/admin/group/vo/ImGroupRespVO.java +++ b/yudao-module-im/src/main/java/cn/iocoder/yudao/module/im/controller/admin/group/vo/ImGroupRespVO.java @@ -50,7 +50,13 @@ public class ImGroupRespVO { @Schema(description = "当前登录用户在该群的成员状态:在群 / 已退群(历史退群群仍返回,供前端展示离线消息的群名 / 头像)") private Integer joinStatus; // 参见 CommonStatusEnum 枚举 + @Schema(description = "当前登录用户对该群的备注") + private String groupRemark; + + @Schema(description = "当前登录用户是否免打扰") + private Boolean silent; + @Schema(description = "群置顶消息列表,按 pin 顺序(最先置顶的在前);非该群有效成员时为空") private List pinnedMessages; -} \ No newline at end of file +} -- libgit2 0.21.4