www:新增问题反馈功能;dashboard:适配问题反馈功能,可以在后台系统和用户沟通

This commit is contained in:
eafonyang
2026-08-20 16:42:01 +08:00
parent 5ae979f7e1
commit 3702ad4163
31 changed files with 1956 additions and 11 deletions
+35
View File
@@ -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 '关联产品 IDwww_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`);
+11
View File
@@ -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`);
+23
View File
@@ -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='官网问题反馈对话消息';