www:新增问题反馈功能;dashboard:适配问题反馈功能,可以在后台系统和用户沟通
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
-- ============================================================
|
||||
-- 09_support_feedback.sql
|
||||
-- 官网问题反馈(support 页面用户提交)
|
||||
-- ============================================================
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `www_support_feedbacks` (
|
||||
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`feedback_no` VARCHAR(20) NOT NULL DEFAULT '' COMMENT '反馈编号(对外展示,如 FB20260818A3F2B1)',
|
||||
`product_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '关联产品 ID(www_products.id)',
|
||||
`product_name_zh` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '提交时产品中文名快照',
|
||||
`product_name_en` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '提交时产品英文名快照',
|
||||
`description` TEXT NOT NULL COMMENT '问题描述',
|
||||
`email` VARCHAR(100) NOT NULL COMMENT '联系邮箱',
|
||||
`log_file_path` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '日志文件相对路径(/uploads/support-logs/...,空表示未上传)',
|
||||
`log_file_name` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '日志原始文件名',
|
||||
`log_file_size` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '日志文件大小(字节)',
|
||||
`status` VARCHAR(20) NOT NULL DEFAULT 'pending' COMMENT '处理状态: pending / processing / resolved',
|
||||
`visitor_ip` VARCHAR(45) NOT NULL DEFAULT '' COMMENT '访客 IP',
|
||||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_feedback_no` (`feedback_no`),
|
||||
KEY `idx_email` (`email`),
|
||||
KEY `idx_created` (`created_at`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
|
||||
COMMENT='官网问题反馈';
|
||||
|
||||
-- 若表已存在(无 feedback_no 列),按顺序执行以下迁移:
|
||||
-- ALTER TABLE `www_support_feedbacks`
|
||||
-- ADD COLUMN `feedback_no` VARCHAR(20) NOT NULL DEFAULT '' COMMENT '反馈编号(对外展示)' AFTER `id`;
|
||||
-- UPDATE `www_support_feedbacks`
|
||||
-- SET `feedback_no` = CONCAT('FB', DATE_FORMAT(`created_at`, '%Y%m%d'), UPPER(SUBSTRING(MD5(CONCAT(`id`, `created_at`)), 1, 6)))
|
||||
-- WHERE `feedback_no` = '';
|
||||
-- ALTER TABLE `www_support_feedbacks`
|
||||
-- ADD UNIQUE KEY `uk_feedback_no` (`feedback_no`);
|
||||
@@ -0,0 +1,11 @@
|
||||
-- 为已存在的 www_support_feedbacks 表添加 feedback_no 列(分步执行,避免空值 UNIQUE 冲突)
|
||||
|
||||
ALTER TABLE `www_support_feedbacks`
|
||||
ADD COLUMN `feedback_no` VARCHAR(20) NOT NULL DEFAULT '' COMMENT '反馈编号(对外展示)' AFTER `id`;
|
||||
|
||||
UPDATE `www_support_feedbacks`
|
||||
SET `feedback_no` = CONCAT('FB', DATE_FORMAT(`created_at`, '%Y%m%d'), UPPER(SUBSTRING(MD5(CONCAT(`id`, `created_at`)), 1, 6)))
|
||||
WHERE `feedback_no` = '';
|
||||
|
||||
ALTER TABLE `www_support_feedbacks`
|
||||
ADD UNIQUE KEY `uk_feedback_no` (`feedback_no`);
|
||||
@@ -0,0 +1,23 @@
|
||||
-- ============================================================
|
||||
-- 10_support_feedback_messages.sql
|
||||
-- 问题反馈对话消息 + feedbacks.updated_at
|
||||
-- ============================================================
|
||||
|
||||
-- 工单表增加最后更新时间(列表排序、对话活跃时间)
|
||||
ALTER TABLE `www_support_feedbacks`
|
||||
ADD COLUMN `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP AFTER `created_at`;
|
||||
|
||||
-- 对话消息表
|
||||
CREATE TABLE IF NOT EXISTS `www_support_feedback_messages` (
|
||||
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`feedback_id` BIGINT UNSIGNED NOT NULL COMMENT '关联 www_support_feedbacks.id',
|
||||
`sender_type` VARCHAR(10) NOT NULL COMMENT 'user / staff',
|
||||
`sender_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'staff 时为 dashboard_user.id',
|
||||
`sender_name` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '显示名快照',
|
||||
`content` TEXT NOT NULL COMMENT '消息内容',
|
||||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_feedback_created` (`feedback_id`, `created_at`),
|
||||
KEY `idx_feedback_id` (`feedback_id`, `id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
|
||||
COMMENT='官网问题反馈对话消息';
|
||||
Reference in New Issue
Block a user