Commit 8d1089bac58712eaca40c8b3b8a595cd874dd75c

Authored by YunaiV
1 parent 3ca5db95

🐛 fix(im): 撤回信号错用 TIP_TEXT,应为 RECALL

yudao-module-im/src/main/java/cn/iocoder/yudao/module/im/service/message/ImGroupMessageServiceImpl.java
@@ -303,16 +303,16 @@ public class ImGroupMessageServiceImpl implements ImGroupMessageService { @@ -303,16 +303,16 @@ public class ImGroupMessageServiceImpl implements ImGroupMessageService {
303 groupMessageMapper.updateById(new ImGroupMessageDO().setId(messageId) 303 groupMessageMapper.updateById(new ImGroupMessageDO().setId(messageId)
304 .setStatus(ImMessageStatusEnum.RECALL.getStatus())); 304 .setStatus(ImMessageStatusEnum.RECALL.getStatus()));
305 305
306 - // 3. 插入一条 TIP_TEXT 消息作为撤回提示 306 + // 3. 插入一条 RECALL 消息作为撤回信号(content 为 RecallMessage 序列化,前端据此找到原消息更新状态)
307 RecallMessage recallContent = new RecallMessage().setMessageId(messageId); 307 RecallMessage recallContent = new RecallMessage().setMessageId(messageId);
308 ImGroupMessageDO recallMessage = new ImGroupMessageDO().setClientMessageId(IdUtil.fastSimpleUUID()) 308 ImGroupMessageDO recallMessage = new ImGroupMessageDO().setClientMessageId(IdUtil.fastSimpleUUID())
309 .setSenderId(userId).setGroupId(message.getGroupId()) 309 .setSenderId(userId).setGroupId(message.getGroupId())
310 - .setType(ImMessageTypeEnum.TIP_TEXT.getType()).setContent(JsonUtils.toJsonString(recallContent)) 310 + .setType(ImMessageTypeEnum.RECALL.getType()).setContent(JsonUtils.toJsonString(recallContent))
311 .setStatus(ImMessageStatusEnum.UNREAD.getStatus()).setSendTime(LocalDateTime.now()) 311 .setStatus(ImMessageStatusEnum.UNREAD.getStatus()).setSendTime(LocalDateTime.now())
312 .setReceiptStatus(ImGroupMessageReceiptStatusEnum.NO_RECEIPT.getStatus()); 312 .setReceiptStatus(ImGroupMessageReceiptStatusEnum.NO_RECEIPT.getStatus());
313 groupMessageMapper.insert(recallMessage); 313 groupMessageMapper.insert(recallMessage);
314 314
315 - // 4. 异步推送撤回提示消息(前端据此更新原消息状态 + 插入撤回提示) 315 + // 4. 异步推送撤回信号(前端据此更新原消息状态 + 插入撤回提示)
316 sendGroupMessageEvent(recallMessage); 316 sendGroupMessageEvent(recallMessage);
317 return recallMessage; 317 return recallMessage;
318 } 318 }
yudao-module-im/src/main/java/cn/iocoder/yudao/module/im/service/message/ImPrivateMessageServiceImpl.java
@@ -144,19 +144,19 @@ public class ImPrivateMessageServiceImpl implements ImPrivateMessageService { @@ -144,19 +144,19 @@ public class ImPrivateMessageServiceImpl implements ImPrivateMessageService {
144 privateMessageMapper.updateById(new ImPrivateMessageDO().setId(messageId) 144 privateMessageMapper.updateById(new ImPrivateMessageDO().setId(messageId)
145 .setStatus(ImMessageStatusEnum.RECALL.getStatus())); 145 .setStatus(ImMessageStatusEnum.RECALL.getStatus()));
146 146
147 - // 3. 插入一条 TIP_TEXT 消息作为撤回提示 147 + // 3. 插入一条 RECALL 消息作为撤回信号(content 为 RecallMessage 序列化,前端据此找到原消息更新状态)
148 RecallMessage recallContent = new RecallMessage().setMessageId(messageId); 148 RecallMessage recallContent = new RecallMessage().setMessageId(messageId);
149 - ImPrivateMessageDO tipMessage = new ImPrivateMessageDO().setClientMessageId(IdUtil.fastSimpleUUID()) 149 + ImPrivateMessageDO recallMessage = new ImPrivateMessageDO().setClientMessageId(IdUtil.fastSimpleUUID())
150 .setSenderId(userId).setReceiverId(message.getReceiverId()) 150 .setSenderId(userId).setReceiverId(message.getReceiverId())
151 - .setType(ImMessageTypeEnum.TIP_TEXT.getType()).setContent(JsonUtils.toJsonString(recallContent)) 151 + .setType(ImMessageTypeEnum.RECALL.getType()).setContent(JsonUtils.toJsonString(recallContent))
152 .setStatus(ImMessageStatusEnum.UNREAD.getStatus()).setSendTime(LocalDateTime.now()); 152 .setStatus(ImMessageStatusEnum.UNREAD.getStatus()).setSendTime(LocalDateTime.now());
153 - privateMessageMapper.insert(tipMessage); 153 + privateMessageMapper.insert(recallMessage);
154 154
155 - // 4. 异步推送撤回提示消息(前端据此更新原消息状态 + 插入撤回提示)  
156 - ImPrivateMessageDTO websocketMessage = ImPrivateMessageDTO.ofSend(tipMessage);  
157 - imWebSocketService.sendPrivateMessageAsync(tipMessage.getReceiverId(), websocketMessage);  
158 - imWebSocketService.sendPrivateMessageAsync(tipMessage.getSenderId(), websocketMessage);  
159 - return tipMessage; 155 + // 4. 异步推送撤回信号(前端据此更新原消息状态 + 插入撤回提示)
  156 + ImPrivateMessageDTO websocketMessage = ImPrivateMessageDTO.ofSend(recallMessage);
  157 + imWebSocketService.sendPrivateMessageAsync(recallMessage.getReceiverId(), websocketMessage);
  158 + imWebSocketService.sendPrivateMessageAsync(recallMessage.getSenderId(), websocketMessage);
  159 + return recallMessage;
160 } 160 }
161 161
162 @Override 162 @Override