From 2753063e707d7056650b713b014ba959360f09cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=AF=E8=88=AA?= <280645618@qq.com> Date: Tue, 10 Mar 2026 16:28:43 +0800 Subject: [PATCH] up --- .../erp/controller/SseController.java | 22 +++++++++++++++++++ docs/up_26_0310.sql | 14 ++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 docs/up_26_0310.sql diff --git a/api/ai-agent/src/main/java/cn/qihangerp/erp/controller/SseController.java b/api/ai-agent/src/main/java/cn/qihangerp/erp/controller/SseController.java index 3c303dd4..79682f39 100644 --- a/api/ai-agent/src/main/java/cn/qihangerp/erp/controller/SseController.java +++ b/api/ai-agent/src/main/java/cn/qihangerp/erp/controller/SseController.java @@ -82,6 +82,28 @@ public class SseController { clientUserIdMap.remove(clientId); } + // 为新用户添加默认欢迎消息 + Long userId = clientUserIdMap.get(clientId); + if (userId != null) { + String sessionId = sessionManager.getOrCreateSessionId(userId); + // 检查是否有对话历史 + int messageCount = conversationHistoryManager.getMessageCount(sessionId); + if (messageCount == 0) { + // 添加欢迎消息到对话历史 + String welcomeMessage = "您好,我是您的智能助手,我能帮你打开页面、查询订单、查询商品、查询库存等等。欢迎提问!"; + conversationHistoryManager.addMessage(userId, sessionId, "assistant", welcomeMessage); + + // 发送欢迎消息给客户端 + try { + emitter.send(SseEmitter.event() + .name("message") + .data(welcomeMessage)); + } catch (IOException e) { + log.error("发送欢迎消息失败: {}", e.getMessage()); + } + } + } + // 定期发送心跳 executorService.scheduleAtFixedRate(() -> { try { diff --git a/docs/up_26_0310.sql b/docs/up_26_0310.sql new file mode 100644 index 00000000..ca370e39 --- /dev/null +++ b/docs/up_26_0310.sql @@ -0,0 +1,14 @@ +CREATE TABLE `ai_conversation_history` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id,自增', + `user_id` bigint(20) NOT NULL COMMENT '用户id', + `session_id` varchar(36) NOT NULL COMMENT '会话id', + `role` varchar(20) NOT NULL COMMENT '角色:user或assistant', + `content` text NOT NULL COMMENT '消息内容', + `timestamp` bigint(20) NOT NULL COMMENT '消息时间戳', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + KEY `idx_session_id` (`session_id`), + KEY `idx_user_id` (`user_id`), + KEY `idx_timestamp` (`timestamp`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='AI聊天历史表'; \ No newline at end of file