fix: 修复消息设为已读错误

This commit is contained in:
2025-06-08 22:18:38 +08:00
parent af1f540d6c
commit 222339b54b
3 changed files with 5 additions and 26 deletions

View File

@@ -27,14 +27,6 @@ import java.util.List;
*/
public interface MessageLogService {
/**
* 新增
*
* @param userIds 用户 ID 列表
* @param messageId 消息 ID
*/
void addWithMessageId(List<Long> userIds, Long messageId);
/**
* 新增
*

View File

@@ -39,24 +39,13 @@ public class MessageLogServiceImpl implements MessageLogService {
private final MessageLogMapper baseMapper;
@Override
public void addWithMessageId(List<Long> userIdList, Long messageId) {
if (CollUtil.isEmpty(userIdList)) {
return;
}
List<MessageLogDO> list = userIdList.stream()
.map(userId -> new MessageLogDO(userId, messageId, LocalDateTime.now()))
.toList();
baseMapper.insert(list);
}
@Override
public void addWithUserId(List<Long> messageIds, Long userId) {
if (CollUtil.isEmpty(messageIds)) {
return;
}
List<MessageLogDO> list = messageIds.stream()
.map(messageId -> new MessageLogDO(userId, messageId, LocalDateTime.now()))
.map(messageId -> new MessageLogDO(messageId, userId, LocalDateTime.now()))
.toList();
baseMapper.insert(list);
}

View File

@@ -67,12 +67,10 @@ public class MessageServiceImpl implements MessageService {
@Override
public void readMessage(List<Long> ids, Long userId) {
if (CollUtil.isEmpty(ids)) {
// 查询当前用户的未读消息
List<MessageDO> list = baseMapper.selectUnreadListByUserId(userId);
ids = list.stream().map(MessageDO::getId).toList();
}
messageLogService.addWithMessageId(ids, userId);
// 查询当前用户的未读消息
List<MessageDO> list = baseMapper.selectUnreadListByUserId(userId);
List<Long> unreadIds = list.stream().map(MessageDO::getId).toList();
messageLogService.addWithUserId(CollUtil.intersection(unreadIds, ids).stream().toList(), userId);
}
@Override