|
|
@@ -2,14 +2,21 @@ package org.dromara.main.controller;
|
|
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.dromara.common.satoken.utils.LoginHelper;
|
|
|
+import org.dromara.main.domain.CsSeatWaiter;
|
|
|
import org.dromara.main.domain.bo.CsMessageBo;
|
|
|
import org.dromara.main.domain.vo.CsMessageVo;
|
|
|
+import org.dromara.main.mapper.CsSeatWaiterMapper;
|
|
|
import org.dromara.main.service.ICsMessageService;
|
|
|
import org.springframework.messaging.handler.annotation.MessageMapping;
|
|
|
import org.springframework.messaging.handler.annotation.Payload;
|
|
|
import org.springframework.messaging.simp.SimpMessagingTemplate;
|
|
|
import org.springframework.stereotype.Controller;
|
|
|
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+
|
|
|
@Slf4j
|
|
|
@RequiredArgsConstructor
|
|
|
@Controller
|
|
|
@@ -17,6 +24,7 @@ public class ChatWebSocketController {
|
|
|
|
|
|
private final ICsMessageService messageService;
|
|
|
private final SimpMessagingTemplate messagingTemplate;
|
|
|
+ private final CsSeatWaiterMapper seatWaiterMapper;
|
|
|
|
|
|
/**
|
|
|
* 处理客户端发送的文本消息
|
|
|
@@ -30,6 +38,18 @@ public class ChatWebSocketController {
|
|
|
log.info("收到WebSocket消息: sessionId={}, content={}",
|
|
|
message.getSessionId(), message.getContent());
|
|
|
|
|
|
+ Long currentUserId = LoginHelper.getUserId();
|
|
|
+ if (currentUserId != null) {
|
|
|
+ message.setSenderId(currentUserId);
|
|
|
+ if (message.getSenderType() == null) {
|
|
|
+ List<CsSeatWaiter> waiters = seatWaiterMapper.selectList(
|
|
|
+ Wrappers.lambdaQuery(CsSeatWaiter.class)
|
|
|
+ .eq(CsSeatWaiter::getUserId, currentUserId)
|
|
|
+ .last("LIMIT 1"));
|
|
|
+ message.setSenderType(!waiters.isEmpty() ? 2 : 1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
// 保存消息到数据库
|
|
|
CsMessageVo savedMessage = messageService.sendTextMessage(message);
|
|
|
|