feat: 新增 WebSocket 消息通知 (#67)

This commit is contained in:
Claudio Lecher
2024-05-22 10:50:57 +08:00
committed by GitHub
parent af22df8adb
commit 9970c461cc
10 changed files with 665 additions and 0 deletions

View File

@@ -24,6 +24,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import top.continew.admin.common.util.helper.LoginHelper;
import top.continew.admin.system.mapper.MessageMapper;
import top.continew.admin.system.model.entity.MessageDO;
import top.continew.admin.system.model.query.MessageQuery;
@@ -66,6 +67,7 @@ public class MessageServiceImpl implements MessageService {
public void add(MessageReq req, List<Long> userIdList) {
CheckUtils.throwIf(() -> CollUtil.isEmpty(userIdList), "消息接收人不能为空");
MessageDO message = BeanUtil.copyProperties(req, MessageDO.class);
message.setCreateUser(LoginHelper.getUserId());
baseMapper.insert(message);
messageUserService.add(message.getId(), userIdList);
}

View File

@@ -20,6 +20,7 @@ import cn.hutool.core.collection.CollUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import top.continew.admin.common.enums.MessageTypeEnum;
import top.continew.admin.common.util.helper.LoginHelper;
import top.continew.admin.system.mapper.MessageUserMapper;
import top.continew.admin.system.model.entity.MessageUserDO;
import top.continew.admin.system.model.resp.MessageTypeUnreadResp;
@@ -84,6 +85,7 @@ public class MessageUserServiceImpl implements MessageUserService {
.set(MessageUserDO::getIsRead, true)
.set(MessageUserDO::getReadTime, LocalDateTime.now())
.eq(MessageUserDO::getIsRead, false)
.eq(MessageUserDO::getUserId, LoginHelper.getUserId())
.in(CollUtil.isNotEmpty(ids), MessageUserDO::getMessageId, ids)
.update();
}