Commit 6e1a8dc343b7ef345acd3eb28914240248c24002
1 parent
9d11741a
✨ feat(im):删好友「同时清空聊天记录」选项(DTO 加 persistent 单边 TIP + clear 跨端透传 + clear=true 跳 T…
…IP 避免复活会话;silent re-add 补单边 TIP)
Showing
1 changed file
with
5 additions
and
3 deletions
yudao-module-im/src/main/java/cn/iocoder/yudao/module/im/service/friend/ImFriendServiceImpl.java
| ... | ... | @@ -178,9 +178,11 @@ public class ImFriendServiceImpl implements ImFriendService { |
| 178 | 178 | // 1. 单边软删:仅 userId 视角的关系置 DISABLE;friendUserId 视角不动 |
| 179 | 179 | deleteFriend0(userId, friendUserId); |
| 180 | 180 | |
| 181 | - // 2. 推 TIP「你已删除好友」走单边语义(persistent=false): | |
| 182 | - // 不入库 + 仅推 userId 多端,对方完全不感知;clear=true 时前端会清对话连带这条 TIP 一起清 | |
| 183 | - privateMessageService.sendTipPrivateMessage(userId, friendUserId, FRIEND_DELETE_TIP_MESSAGE, false); | |
| 181 | + // 2. 仅 clear=false 时推 TIP「你已删除好友」(单边 persistent=false); | |
| 182 | + // clear=true / null 时跳过 —— 避免 TIP 晚于 FRIEND_DELETE 到达把刚清的会话复活 | |
| 183 | + if (Boolean.FALSE.equals(clear)) { | |
| 184 | + privateMessageService.sendTipPrivateMessage(userId, friendUserId, FRIEND_DELETE_TIP_MESSAGE, false); | |
| 185 | + } | |
| 184 | 186 | |
| 185 | 187 | // 3. 推 FRIEND_DELETE 给 userId 多端做同步(friendUserId 不感知);clear 透传让多端清理动作一致 |
| 186 | 188 | FriendDeleteNotification payload = ((FriendDeleteNotification) new FriendDeleteNotification() | ... | ... |