|
|
|
@ -26,19 +26,23 @@ public class PrivateMessageListener implements MessageListener<PrivateMessageVO> |
|
|
|
@Lazy |
|
|
|
@Autowired |
|
|
|
private PrivateMessageService privateMessageService; |
|
|
|
|
|
|
|
@Override |
|
|
|
public void process(List<IMSendResult<PrivateMessageVO>> results) { |
|
|
|
Set<Long> messageIds = new HashSet<>(); |
|
|
|
for(IMSendResult<PrivateMessageVO> result : results){ |
|
|
|
for (IMSendResult<PrivateMessageVO> result : results) { |
|
|
|
PrivateMessageVO messageInfo = result.getData(); |
|
|
|
// 更新消息状态,这里只处理成功消息,失败的消息继续保持未读状态
|
|
|
|
if (result.getCode().equals(IMSendCode.SUCCESS.code()) && !Objects.isNull(messageInfo.getId())) { |
|
|
|
if (result.getReceiver().getId().equals(messageInfo.getRecvId())) { |
|
|
|
messageIds.add(messageInfo.getId()); |
|
|
|
log.info("消息送达,消息id:{},发送者:{},接收者:{},终端:{}", messageInfo.getId(), result.getSender().getId(), result.getReceiver().getId(), result.getReceiver().getTerminal()); |
|
|
|
log.info("消息送达,消息id:{},发送者:{},接收者:{},终端:{}", messageInfo.getId(), |
|
|
|
result.getSender().getId(), result.getReceiver().getId(), result.getReceiver().getTerminal()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
// 批量修改状态
|
|
|
|
if(CollUtil.isNotEmpty(messageIds)){ |
|
|
|
if (CollUtil.isNotEmpty(messageIds)) { |
|
|
|
UpdateWrapper<PrivateMessage> updateWrapper = new UpdateWrapper<>(); |
|
|
|
updateWrapper.lambda().in(PrivateMessage::getId, messageIds) |
|
|
|
.eq(PrivateMessage::getStatus, MessageStatus.PENDING.code()) |
|
|
|
|