From 6e1a8dc343b7ef345acd3eb28914240248c24002 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Tue, 5 May 2026 00:57:49 +0800 Subject: [PATCH] ✨ feat(im):删好友「同时清空聊天记录」选项(DTO 加 persistent 单边 TIP + clear 跨端透传 + clear=true 跳 TIP 避免复活会话;silent re-add 补单边 TIP) --- yudao-module-im/src/main/java/cn/iocoder/yudao/module/im/service/friend/ImFriendServiceImpl.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/yudao-module-im/src/main/java/cn/iocoder/yudao/module/im/service/friend/ImFriendServiceImpl.java b/yudao-module-im/src/main/java/cn/iocoder/yudao/module/im/service/friend/ImFriendServiceImpl.java index 69d2bdf..f6edef8 100644 --- a/yudao-module-im/src/main/java/cn/iocoder/yudao/module/im/service/friend/ImFriendServiceImpl.java +++ b/yudao-module-im/src/main/java/cn/iocoder/yudao/module/im/service/friend/ImFriendServiceImpl.java @@ -178,9 +178,11 @@ public class ImFriendServiceImpl implements ImFriendService { // 1. 单边软删:仅 userId 视角的关系置 DISABLE;friendUserId 视角不动 deleteFriend0(userId, friendUserId); - // 2. 推 TIP「你已删除好友」走单边语义(persistent=false): - // 不入库 + 仅推 userId 多端,对方完全不感知;clear=true 时前端会清对话连带这条 TIP 一起清 - privateMessageService.sendTipPrivateMessage(userId, friendUserId, FRIEND_DELETE_TIP_MESSAGE, false); + // 2. 仅 clear=false 时推 TIP「你已删除好友」(单边 persistent=false); + // clear=true / null 时跳过 —— 避免 TIP 晚于 FRIEND_DELETE 到达把刚清的会话复活 + if (Boolean.FALSE.equals(clear)) { + privateMessageService.sendTipPrivateMessage(userId, friendUserId, FRIEND_DELETE_TIP_MESSAGE, false); + } // 3. 推 FRIEND_DELETE 给 userId 多端做同步(friendUserId 不感知);clear 透传让多端清理动作一致 FriendDeleteNotification payload = ((FriendDeleteNotification) new FriendDeleteNotification() -- libgit2 0.21.4