ai-robot-channel/target/classes/db/init.sql

78 lines
4.1 KiB
MySQL
Raw Normal View History

2026-02-23 01:45:23 +00:00
-- 创建数据库
CREATE DATABASE IF NOT EXISTS wecom_robot DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE wecom_robot;
-- 会话表
CREATE TABLE IF NOT EXISTS `session` (
`session_id` VARCHAR(128) NOT NULL COMMENT '会话ID',
`customer_id` VARCHAR(64) NOT NULL COMMENT '客户ID (external_userid)',
`kf_id` VARCHAR(64) NOT NULL COMMENT '客服账号ID (open_kfid)',
`status` VARCHAR(20) NOT NULL DEFAULT 'AI' COMMENT '状态: AI/PENDING/MANUAL/CLOSED',
`wx_service_state` INT DEFAULT 0 COMMENT '微信会话状态: 0-未处理/1-智能助手/2-待接入池/3-人工接待/4-已结束',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`manual_cs_id` VARCHAR(64) DEFAULT NULL COMMENT '人工客服ID',
`metadata` TEXT DEFAULT NULL COMMENT '扩展信息JSON',
PRIMARY KEY (`session_id`),
INDEX `idx_customer_id` (`customer_id`),
INDEX `idx_kf_id` (`kf_id`),
INDEX `idx_status` (`status`),
INDEX `idx_updated_at` (`updated_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='会话表';
-- 消息表
CREATE TABLE IF NOT EXISTS `message` (
`msg_id` VARCHAR(128) NOT NULL COMMENT '消息ID',
`session_id` VARCHAR(128) NOT NULL COMMENT '会话ID',
`sender_type` VARCHAR(20) NOT NULL COMMENT '发送者类型: customer/ai/manual',
`sender_id` VARCHAR(64) NOT NULL COMMENT '发送者标识',
`content` TEXT NOT NULL COMMENT '消息内容',
`msg_type` VARCHAR(20) NOT NULL DEFAULT 'text' COMMENT '消息类型: text/image/link等',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`raw_data` TEXT DEFAULT NULL COMMENT '原始消息数据JSON',
PRIMARY KEY (`msg_id`),
INDEX `idx_session_id` (`session_id`),
INDEX `idx_created_at` (`created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='消息表';
-- 客服账号表
CREATE TABLE IF NOT EXISTS `kf_account` (
`kf_id` VARCHAR(64) NOT NULL COMMENT '客服账号ID',
`name` VARCHAR(100) DEFAULT NULL COMMENT '客服昵称',
`avatar` VARCHAR(500) DEFAULT NULL COMMENT '头像URL',
`status` VARCHAR(20) NOT NULL DEFAULT 'offline' COMMENT '状态: online/offline',
`bind_manual_id` VARCHAR(64) DEFAULT NULL COMMENT '绑定的企业微信员工ID',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`kf_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='客服账号表';
-- 转人工记录表
CREATE TABLE IF NOT EXISTS `transfer_log` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '自增ID',
`session_id` VARCHAR(128) NOT NULL COMMENT '会话ID',
`trigger_reason` VARCHAR(200) DEFAULT NULL COMMENT '触发原因',
`trigger_time` DATETIME NOT NULL COMMENT '触发时间',
`accepted_time` DATETIME DEFAULT NULL COMMENT '客服接入时间',
`accepted_cs_id` VARCHAR(64) DEFAULT NULL COMMENT '接入的客服ID',
PRIMARY KEY (`id`),
INDEX `idx_session_id` (`session_id`),
INDEX `idx_trigger_time` (`trigger_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='转人工记录表';
-- 快捷回复表 (可选)
CREATE TABLE IF NOT EXISTS `quick_reply` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '自增ID',
`cs_id` VARCHAR(64) DEFAULT NULL COMMENT '客服ID为空表示公共',
`category` VARCHAR(50) DEFAULT NULL COMMENT '分类',
`content` VARCHAR(500) NOT NULL COMMENT '回复内容',
`sort_order` INT DEFAULT 0 COMMENT '排序',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
INDEX `idx_cs_id` (`cs_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='快捷回复表';
-- 如果表已存在,添加新字段
ALTER TABLE `session` ADD COLUMN IF NOT EXISTS `wx_service_state` INT DEFAULT 0 COMMENT '微信会话状态';