-
后端 - createInviteRequestList N+1 → 3 SQL:批量 select IN + update IN + insertBatch;20 人邀请从 40 RTT 降到 3 RTT - service 不再出现 mybatis:复用记录的 update(null, wrapper) 下沉到 Im{Group,Friend}RequestMapper.update*Reset helper - inviteGroupMember 入参去重切 hutool:CollUtil.subtractToList(CollUtil.distinct(...), activeMemberUserIds) - 删除 dead 字段 inviterUserId(GroupRequestApprovedNotification / GroupRequestRejectedNotification):前端不再消费 前端 - 1505 / 1506 通知改静默:同意走群事件 1509 / 1510 渲染系统提示,拒绝不再打扰 - 修竞态:addByRequestId 校验 handleResult === UNHANDLED,避免 1503 在途时被 1505 / 1506 抢先后又把已处理记录塞回未处理列表 - 修复 dialog 复用记录刷新:watch key 含 inviterUserId / applyContent,同 id 不同内容也触发 refetch;actingId 期间跳过避免本端动作多余 RTT - 修复 willGoApproval 误报:group.ownerUserId 兜底群主;members 未到位时保守按非审批处理 - unhandledCountMap memoized getter:O(N) 扫一次缓存到 Map,ConversationItem 直读 Map 消除 O(N×M) 重复 filter -
- 邀请路径写 addSource=INVITE;群主 / 管理员邀请绕过审批;inviteGroupMember 入参去重 - getGroupRequest 越权校验加成员有效状态判断;新增 list-by-group 接口 - 申请列表按 update_time 倒序,update(null, wrapper) 路径手动刷 updateTime - addByRequestId 不再 skip 同 id,复用记录刷新并置顶 - GroupRequestListDialog 单群模式订阅 store 增量同步;GroupMemberAddDialog 审批分支文案区分 - ConversationItem 增加 [X 条进群申请] 红字前缀;MessagePanel 顶部胶囊横幅 - 1505 / 1506 通知改静默:同意走群事件渲染系统提示,拒绝不再打扰;清掉 dead inviterUserId 字段
-
- ImPrivateMessageServiceImplTest 用 getFriendState 替换已删除的 isFriend mock;返回 ImFriendStateEnum.FRIEND / NONE - ImFriendServiceImplTest 删 stale 测试(isFriend / addFriend / deleteFriend 二参版本均已不存在);addFriend0 测试参数补齐 null displayName / addSource 凑齐 4 参签名 - 修复后 mvn -pl yudao-module-im test-compile 通过 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
-
1. ImMessageTypeEnum 新增 GROUP_BANNED(1533) 枚举 2. 新增 GroupBannedNotification 通知 DTO 3. ImGroupMessageSendDTO 新增 ofGroupBanned 工厂方法 4. banGroup / unbanGroup 添加 operatorUserId 参数, 封禁/解封后广播 GROUP_BANNED 通知到全群成员 5. ImGroupManagerController 传递 getLoginUserId()
-
1. im_group 新增 muted_all 字段,支持全群禁言 / 取消 2. im_group_member 新增 mute_end_time 字段,支持单成员定时禁言 3. 新增 3 个 API:mute-all、mute-member、cancel-mute-member 4. sendGroupMessage 新增 validateMuteStatus 拦截:全群禁言(群主/管理员豁免)+ 成员禁言 5. 三档分层权限校验:群主可禁言管理员和普通成员,管理员仅可禁言普通成员 6. 新增 4 个 WebSocket 通知类(1512-1515)及对应 DTO 工厂方法 7. Mapper 新增 updateMuteEndTimeNull 方法,解决 MyBatis-Plus 默认跳过 null 字段的问题 8. 新增 5 个错误码(GROUP_MUTED_CANNOT_SEND 等)
-
…ore/组件/管理后台),为后续 mute 禁言功能腾出词族
-
…IP 避免复活会话;silent re-add 补单边 TIP)
-
实现好友关系的单边重新启用,推送隐私友好的通知,确保对方不感知好友状态的变化。此变更提升了用户在好友管理中的体验,保持了社交互动的自然性。
-
…通知、Consumer 过滤下推 SQL、申请表索引带 id 后缀覆盖游标排序、limit 加 @Max(200) 上限
-
…名展开 + Consumer 补日志 + silent re-add 注释补充
-
…_APPLICATION 重命名 FRIEND_REQUEST_RECEIVED
-
…,IM Consumer 监听后批量推好友多端)
-
…k 开 setTransactionAware 让 @CacheEvict 自动事务感知
-
更新好友申请功能,使用 computed 包裹当前用户 ID,避免在 keep-alive 实例中持有旧 ID。增加自我添加好友的校验逻辑,防止用户添加自己为好友。同时,增强自动通过好友申请的异常处理,确保在事务提交后能正确处理失败情况。
-
顺带修复 Bug-Y(删除最后一条消息后孤立时间分隔条)