部分dto、vo

This commit is contained in:
2025-12-05 11:05:27 +08:00
parent 9a3547b70b
commit 917e9a517a
42 changed files with 2803 additions and 67 deletions

View File

@@ -0,0 +1,89 @@
-- ====================================================
-- 定时任务表
-- ====================================================
DROP TABLE IF EXISTS `tb_crontab_task`;
CREATE TABLE `tb_crontab_task` (
`id` VARCHAR(64) NOT NULL COMMENT '主键ID',
`task_id` VARCHAR(64) NOT NULL COMMENT '任务ID',
`task_name` VARCHAR(100) NOT NULL COMMENT '任务名称',
`task_group` VARCHAR(50) NOT NULL DEFAULT 'DEFAULT' COMMENT '任务分组',
`meta_id` VARCHAR(64) NOT NULL COMMENT '任务元数据ID',
`default_recipient` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否使用默认接收人0:否 1:是)',
`bean_name` VARCHAR(100) NOT NULL COMMENT 'Bean名称',
`method_name` VARCHAR(100) NOT NULL COMMENT '方法名称',
`method_params` VARCHAR(500) DEFAULT NULL COMMENT '方法参数',
`cron_expression` VARCHAR(100) NOT NULL COMMENT 'Cron表达式',
`status` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '任务状态0:暂停 1:运行中)',
`description` VARCHAR(500) DEFAULT NULL COMMENT '任务描述',
`concurrent` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否允许并发执行0:否 1:是)',
`misfire_policy` TINYINT(1) NOT NULL DEFAULT 1 COMMENT '错过执行策略1:立即执行 2:执行一次 3:放弃执行)',
`creator` VARCHAR(64) DEFAULT NULL COMMENT '创建者',
`updater` VARCHAR(64) DEFAULT NULL COMMENT '更新者',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`delete_time` DATETIME DEFAULT NULL COMMENT '删除时间',
`deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除0:否 1:是)',
PRIMARY KEY (`id`),
KEY `idx_task_name` (`task_name`),
KEY `idx_bean_name` (`bean_name`),
KEY `idx_status` (`status`),
KEY `idx_deleted` (`deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='定时任务配置表';
-- ====================================================
-- 定时任务执行日志表
-- ====================================================
DROP TABLE IF EXISTS `tb_crontab_log`;
CREATE TABLE `tb_crontab_log` (
`id` VARCHAR(64) NOT NULL COMMENT '主键ID',
`task_id` VARCHAR(64) NOT NULL COMMENT '任务ID',
`task_name` VARCHAR(100) NOT NULL COMMENT '任务名称',
`task_group` VARCHAR(50) NOT NULL DEFAULT 'DEFAULT' COMMENT '任务分组',
`bean_name` VARCHAR(100) NOT NULL COMMENT 'Bean名称',
`method_name` VARCHAR(100) NOT NULL COMMENT '方法名称',
`method_params` VARCHAR(500) DEFAULT NULL COMMENT '方法参数',
`execute_status` TINYINT(1) NOT NULL COMMENT '执行状态0:失败 1:成功)',
`execute_message` TEXT DEFAULT NULL COMMENT '执行结果信息',
`exception_info` TEXT DEFAULT NULL COMMENT '异常信息',
`start_time` DATETIME NOT NULL COMMENT '开始时间',
`end_time` DATETIME DEFAULT NULL COMMENT '结束时间',
`execute_duration` INT DEFAULT NULL COMMENT '执行时长(毫秒)',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`delete_time` DATETIME DEFAULT NULL COMMENT '删除时间',
`deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除0:否 1:是)',
PRIMARY KEY (`id`),
KEY `idx_task_id` (`task_id`),
KEY `idx_task_name` (`task_name`),
KEY `idx_execute_status` (`execute_status`),
KEY `idx_start_time` (`start_time`),
KEY `idx_deleted` (`deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='定时任务执行日志表';
-- ====================================================
-- 定时任务元数据表(存储爬虫任务的元数据配置)
-- ====================================================
DROP TABLE IF EXISTS `tb_crontab_task_meta`;
CREATE TABLE `tb_crontab_task_meta` (
`id` VARCHAR(64) NOT NULL COMMENT '主键ID',
`meta_id` VARCHAR(64) NOT NULL COMMENT '元数据ID',
`name` VARCHAR(100) NOT NULL COMMENT '任务名称',
`description` VARCHAR(500) DEFAULT NULL COMMENT '任务描述',
`category` VARCHAR(50) NOT NULL COMMENT '任务分类(如:人民日报新闻爬取)',
`bean_name` VARCHAR(100) NOT NULL COMMENT 'Bean名称执行器类名',
`method_name` VARCHAR(100) NOT NULL COMMENT '执行方法名',
`script_path` VARCHAR(255) DEFAULT NULL COMMENT 'Python脚本路径相对于basePath',
`param_schema` TEXT DEFAULT NULL COMMENT '参数模板JSON格式定义参数名、类型、描述、默认值等',
`auto_publish` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否自动发布',
`sort_order` INT DEFAULT 0 COMMENT '排序号',
`creator` VARCHAR(64) DEFAULT NULL COMMENT '创建者',
`updater` VARCHAR(64) DEFAULT NULL COMMENT '更新者',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`delete_time` DATETIME DEFAULT NULL COMMENT '删除时间',
`deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除0:否 1:是)',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_meta_id` (`meta_id`),
KEY `idx_category` (`category`),
KEY `idx_deleted` (`deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='定时任务元数据表';

View File

@@ -1,12 +1,12 @@
-- =============================
-- 智能客服系统业务模块
-- 智能客服系统业务模块(工单系统)
-- 支持微信小程序客户咨询、智能问答、工单管理、CRM集成
-- =============================
CREATE SCHEMA IF NOT EXISTS customer_service;
CREATE SCHEMA IF NOT EXISTS workcase;
-- 客户信息表
DROP TABLE IF EXISTS customer_service.tb_customer CASCADE;
CREATE TABLE customer_service.tb_customer (
DROP TABLE IF EXISTS workcase.tb_customer CASCADE;
CREATE TABLE workcase.tb_customer (
optsn VARCHAR(50) NOT NULL, -- 流水号
customer_id VARCHAR(50) NOT NULL, -- 客户ID
customer_no VARCHAR(100), -- 客户编号
@@ -45,16 +45,16 @@ CREATE TABLE customer_service.tb_customer (
UNIQUE (email)
);
CREATE INDEX idx_customer_type ON customer_service.tb_customer(customer_type) WHERE deleted = false;
CREATE INDEX idx_customer_level ON customer_service.tb_customer(customer_level) WHERE deleted = false;
CREATE INDEX idx_customer_wechat ON customer_service.tb_customer(wechat_openid) WHERE deleted = false;
CREATE INDEX idx_customer_type ON workcase.tb_customer(customer_type) WHERE deleted = false;
CREATE INDEX idx_customer_level ON workcase.tb_customer(customer_level) WHERE deleted = false;
CREATE INDEX idx_customer_wechat ON workcase.tb_customer(wechat_openid) WHERE deleted = false;
COMMENT ON TABLE customer_service.tb_customer IS '客户信息表';
COMMENT ON COLUMN customer_service.tb_customer.customer_level IS '客户等级vip/important/normal/potential';
COMMENT ON TABLE workcase.tb_customer IS '客户信息表';
COMMENT ON COLUMN workcase.tb_customer.customer_level IS '客户等级vip/important/normal/potential';
-- 会话表
DROP TABLE IF EXISTS customer_service.tb_conversation CASCADE;
CREATE TABLE customer_service.tb_conversation (
DROP TABLE IF EXISTS workcase.tb_conversation CASCADE;
CREATE TABLE workcase.tb_conversation (
optsn VARCHAR(50) NOT NULL, -- 流水号
conversation_id VARCHAR(50) NOT NULL, -- 会话ID
customer_id VARCHAR(50) NOT NULL, -- 客户ID
@@ -81,19 +81,19 @@ CREATE TABLE customer_service.tb_conversation (
deleted BOOLEAN NOT NULL DEFAULT false, -- 是否删除
PRIMARY KEY (conversation_id),
UNIQUE (optsn),
FOREIGN KEY (customer_id) REFERENCES customer_service.tb_customer(customer_id)
FOREIGN KEY (customer_id) REFERENCES workcase.tb_customer(customer_id)
);
CREATE INDEX idx_conv_customer ON customer_service.tb_conversation(customer_id, session_start_time DESC) WHERE deleted = false;
CREATE INDEX idx_conv_status ON customer_service.tb_conversation(conversation_status) WHERE deleted = false;
CREATE INDEX idx_conv_agent ON customer_service.tb_conversation(agent_id) WHERE deleted = false;
CREATE INDEX idx_conv_customer ON workcase.tb_conversation(customer_id, session_start_time DESC) WHERE deleted = false;
CREATE INDEX idx_conv_status ON workcase.tb_conversation(conversation_status) WHERE deleted = false;
CREATE INDEX idx_conv_agent ON workcase.tb_conversation(agent_id) WHERE deleted = false;
COMMENT ON TABLE customer_service.tb_conversation IS '会话表';
COMMENT ON COLUMN customer_service.tb_conversation.conversation_type IS '会话类型ai/human/transfer';
COMMENT ON TABLE workcase.tb_conversation IS '会话表';
COMMENT ON COLUMN workcase.tb_conversation.conversation_type IS '会话类型ai/human/transfer';
-- 会话消息表
DROP TABLE IF EXISTS customer_service.tb_conversation_message CASCADE;
CREATE TABLE customer_service.tb_conversation_message (
DROP TABLE IF EXISTS workcase.tb_conversation_message CASCADE;
CREATE TABLE workcase.tb_conversation_message (
optsn VARCHAR(50) NOT NULL, -- 流水号
message_id VARCHAR(50) NOT NULL, -- 消息ID
conversation_id VARCHAR(50) NOT NULL, -- 所属会话ID
@@ -117,18 +117,18 @@ CREATE TABLE customer_service.tb_conversation_message (
deleted BOOLEAN NOT NULL DEFAULT false, -- 是否删除
PRIMARY KEY (message_id),
UNIQUE (optsn),
FOREIGN KEY (conversation_id) REFERENCES customer_service.tb_conversation(conversation_id)
FOREIGN KEY (conversation_id) REFERENCES workcase.tb_conversation(conversation_id)
);
CREATE INDEX idx_msg_conversation ON customer_service.tb_conversation_message(conversation_id, create_time) WHERE deleted = false;
CREATE INDEX idx_msg_sender ON customer_service.tb_conversation_message(sender_id) WHERE deleted = false;
CREATE INDEX idx_msg_conversation ON workcase.tb_conversation_message(conversation_id, create_time) WHERE deleted = false;
CREATE INDEX idx_msg_sender ON workcase.tb_conversation_message(sender_id) WHERE deleted = false;
COMMENT ON TABLE customer_service.tb_conversation_message IS '会话消息表';
COMMENT ON COLUMN customer_service.tb_conversation_message.sentiment IS '情感分析positive/neutral/negative';
COMMENT ON TABLE workcase.tb_conversation_message IS '会话消息表';
COMMENT ON COLUMN workcase.tb_conversation_message.sentiment IS '情感分析positive/neutral/negative';
-- 工单表
DROP TABLE IF EXISTS customer_service.tb_ticket CASCADE;
CREATE TABLE customer_service.tb_ticket (
DROP TABLE IF EXISTS workcase.tb_ticket CASCADE;
CREATE TABLE workcase.tb_ticket (
optsn VARCHAR(50) NOT NULL, -- 流水号
ticket_id VARCHAR(50) NOT NULL, -- 工单ID
ticket_no VARCHAR(100) NOT NULL, -- 工单编号
@@ -166,21 +166,21 @@ CREATE TABLE customer_service.tb_ticket (
PRIMARY KEY (ticket_id),
UNIQUE (optsn),
UNIQUE (ticket_no),
FOREIGN KEY (customer_id) REFERENCES customer_service.tb_customer(customer_id)
FOREIGN KEY (customer_id) REFERENCES workcase.tb_customer(customer_id)
);
CREATE INDEX idx_ticket_customer ON customer_service.tb_ticket(customer_id) WHERE deleted = false;
CREATE INDEX idx_ticket_status ON customer_service.tb_ticket(ticket_status) WHERE deleted = false;
CREATE INDEX idx_ticket_assigned ON customer_service.tb_ticket(assigned_to) WHERE deleted = false;
CREATE INDEX idx_ticket_priority ON customer_service.tb_ticket(priority) WHERE deleted = false;
CREATE INDEX idx_ticket_sla ON customer_service.tb_ticket(sla_deadline) WHERE deleted = false AND is_overdue = false;
CREATE INDEX idx_ticket_customer ON workcase.tb_ticket(customer_id) WHERE deleted = false;
CREATE INDEX idx_ticket_status ON workcase.tb_ticket(ticket_status) WHERE deleted = false;
CREATE INDEX idx_ticket_assigned ON workcase.tb_ticket(assigned_to) WHERE deleted = false;
CREATE INDEX idx_ticket_priority ON workcase.tb_ticket(priority) WHERE deleted = false;
CREATE INDEX idx_ticket_sla ON workcase.tb_ticket(sla_deadline) WHERE deleted = false AND is_overdue = false;
COMMENT ON TABLE customer_service.tb_ticket IS '工单表';
COMMENT ON COLUMN customer_service.tb_ticket.ticket_type IS '工单类型consultation/complaint/suggestion/repair/installation/other';
COMMENT ON TABLE workcase.tb_ticket IS '工单表';
COMMENT ON COLUMN workcase.tb_ticket.ticket_type IS '工单类型consultation/complaint/suggestion/repair/installation/other';
-- 工单处理记录表
DROP TABLE IF EXISTS customer_service.tb_ticket_log CASCADE;
CREATE TABLE customer_service.tb_ticket_log (
DROP TABLE IF EXISTS workcase.tb_ticket_log CASCADE;
CREATE TABLE workcase.tb_ticket_log (
optsn VARCHAR(50) NOT NULL, -- 流水号
log_id VARCHAR(50) NOT NULL, -- 日志ID
ticket_id VARCHAR(50) NOT NULL, -- 工单ID
@@ -195,16 +195,16 @@ CREATE TABLE customer_service.tb_ticket_log (
create_time TIMESTAMPTZ NOT NULL DEFAULT now(), -- 创建时间
PRIMARY KEY (log_id),
UNIQUE (optsn),
FOREIGN KEY (ticket_id) REFERENCES customer_service.tb_ticket(ticket_id)
FOREIGN KEY (ticket_id) REFERENCES workcase.tb_ticket(ticket_id)
);
CREATE INDEX idx_ticket_log_ticket ON customer_service.tb_ticket_log(ticket_id, create_time DESC);
CREATE INDEX idx_ticket_log_ticket ON workcase.tb_ticket_log(ticket_id, create_time DESC);
COMMENT ON TABLE customer_service.tb_ticket_log IS '工单处理记录表';
COMMENT ON TABLE workcase.tb_ticket_log IS '工单处理记录表';
-- FAQ表常见问题
DROP TABLE IF EXISTS customer_service.tb_faq CASCADE;
CREATE TABLE customer_service.tb_faq (
DROP TABLE IF EXISTS workcase.tb_faq CASCADE;
CREATE TABLE workcase.tb_faq (
optsn VARCHAR(50) NOT NULL, -- 流水号
faq_id VARCHAR(50) NOT NULL, -- FAQ ID
knowledge_id VARCHAR(50), -- 关联知识库ID
@@ -229,14 +229,14 @@ CREATE TABLE customer_service.tb_faq (
UNIQUE (optsn)
);
CREATE INDEX idx_faq_category ON customer_service.tb_faq(category) WHERE deleted = false;
CREATE INDEX idx_faq_published ON customer_service.tb_faq(is_published) WHERE deleted = false AND is_published = true;
CREATE INDEX idx_faq_category ON workcase.tb_faq(category) WHERE deleted = false;
CREATE INDEX idx_faq_published ON workcase.tb_faq(is_published) WHERE deleted = false AND is_published = true;
COMMENT ON TABLE customer_service.tb_faq IS 'FAQ常见问题表';
COMMENT ON TABLE workcase.tb_faq IS 'FAQ常见问题表';
-- 客服评价表
DROP TABLE IF EXISTS customer_service.tb_service_evaluation CASCADE;
CREATE TABLE customer_service.tb_service_evaluation (
DROP TABLE IF EXISTS workcase.tb_service_evaluation CASCADE;
CREATE TABLE workcase.tb_service_evaluation (
optsn VARCHAR(50) NOT NULL, -- 流水号
evaluation_id VARCHAR(50) NOT NULL, -- 评价ID
customer_id VARCHAR(50) NOT NULL, -- 客户ID
@@ -253,17 +253,17 @@ CREATE TABLE customer_service.tb_service_evaluation (
deleted BOOLEAN NOT NULL DEFAULT false, -- 是否删除
PRIMARY KEY (evaluation_id),
UNIQUE (optsn),
FOREIGN KEY (customer_id) REFERENCES customer_service.tb_customer(customer_id)
FOREIGN KEY (customer_id) REFERENCES workcase.tb_customer(customer_id)
);
CREATE INDEX idx_eval_customer ON customer_service.tb_service_evaluation(customer_id) WHERE deleted = false;
CREATE INDEX idx_eval_rating ON customer_service.tb_service_evaluation(rating) WHERE deleted = false;
CREATE INDEX idx_eval_customer ON workcase.tb_service_evaluation(customer_id) WHERE deleted = false;
CREATE INDEX idx_eval_rating ON workcase.tb_service_evaluation(rating) WHERE deleted = false;
COMMENT ON TABLE customer_service.tb_service_evaluation IS '客服评价表';
COMMENT ON TABLE workcase.tb_service_evaluation IS '客服评价表';
-- CRM集成配置表
DROP TABLE IF EXISTS customer_service.tb_crm_config CASCADE;
CREATE TABLE customer_service.tb_crm_config (
DROP TABLE IF EXISTS workcase.tb_crm_config CASCADE;
CREATE TABLE workcase.tb_crm_config (
optsn VARCHAR(50) NOT NULL, -- 流水号
config_id VARCHAR(50) NOT NULL, -- 配置ID
crm_system VARCHAR(50) NOT NULL, -- CRM系统名称
@@ -286,4 +286,4 @@ CREATE TABLE customer_service.tb_crm_config (
UNIQUE (optsn)
);
COMMENT ON TABLE customer_service.tb_crm_config IS 'CRM集成配置表';
COMMENT ON TABLE workcase.tb_crm_config IS 'CRM集成配置表';