全项目扫描修复: Docker数据卷修复+安全requireAdmin+12页SEO+API白名单+脚本超时+常量提取+假数据删除

This commit is contained in:
ZhuiGuangAI Dev
2026-06-12 17:27:47 +08:00
parent 464924aea0
commit 4c325c8699
454 changed files with 33647 additions and 980 deletions
@@ -0,0 +1,53 @@
-- 论坛第三阶段增强:通知/收藏/举报/嵌套回复
-- 2026-06-04
-- AlterTable: forum_topics 加 is_hidden 字段
ALTER TABLE `forum_topics` ADD COLUMN `is_hidden` BOOLEAN NOT NULL DEFAULT false;
ALTER TABLE `forum_topics` ADD INDEX `forum_topics_is_hidden_idx`(`is_hidden`);
-- AlterTable: forum_posts 加 reply_to_id / reply_to_snapshot
ALTER TABLE `forum_posts` ADD COLUMN `reply_to_id` INTEGER NULL;
ALTER TABLE `forum_posts` ADD COLUMN `reply_to_snapshot` VARCHAR(300) NULL;
ALTER TABLE `forum_posts` ADD CONSTRAINT `forum_posts_reply_to_id_fkey` FOREIGN KEY (`reply_to_id`) REFERENCES `forum_posts`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
ALTER TABLE `forum_posts` ADD INDEX `forum_posts_reply_to_id_idx`(`reply_to_id`);
-- AlterTable: forum_topics 加联合全文索引
ALTER TABLE `forum_topics` ADD FULLTEXT INDEX `forum_topics_title_content_idx`(`title`, `content`);
-- CreateTable: 收藏
CREATE TABLE `forum_topic_bookmarks` (
`id` INTEGER NOT NULL AUTO_INCREMENT,
`topic_id` INTEGER NOT NULL,
`user_id` INTEGER NOT NULL,
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
PRIMARY KEY (`id`),
UNIQUE INDEX `forum_topic_bookmarks_topic_id_user_id_key`(`topic_id`, `user_id`),
INDEX `forum_topic_bookmarks_user_id_created_at_idx`(`user_id`, `created_at`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE `forum_topic_bookmarks` ADD CONSTRAINT `forum_topic_bookmarks_topic_id_fkey` FOREIGN KEY (`topic_id`) REFERENCES `forum_topics`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE `forum_topic_bookmarks` ADD CONSTRAINT `forum_topic_bookmarks_user_id_fkey` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
-- CreateTable: 举报
CREATE TABLE `forum_reports` (
`id` INTEGER NOT NULL AUTO_INCREMENT,
`reporter_id` INTEGER NOT NULL,
`topic_id` INTEGER NULL,
`post_id` INTEGER NULL,
`reason` VARCHAR(50) NOT NULL,
`detail` VARCHAR(500) NULL,
`status` VARCHAR(20) NOT NULL DEFAULT 'pending',
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`resolved_at` DATETIME(3) NULL,
PRIMARY KEY (`id`),
INDEX `forum_reports_status_created_at_idx`(`status`, `created_at`),
INDEX `forum_reports_reporter_id_idx`(`reporter_id`),
INDEX `forum_reports_topic_id_idx`(`topic_id`),
INDEX `forum_reports_post_id_idx`(`post_id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE `forum_reports` ADD CONSTRAINT `forum_reports_reporter_id_fkey` FOREIGN KEY (`reporter_id`) REFERENCES `users`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE `forum_reports` ADD CONSTRAINT `forum_reports_topic_id_fkey` FOREIGN KEY (`topic_id`) REFERENCES `forum_topics`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
-- AlterTable: notifications 增加新枚举值
ALTER TABLE `notifications` MODIFY COLUMN `type` ENUM('COMMENT_REPLY','COMMENT_LIKE','TOPIC_REPLY','MENTION','BEST_ANSWER','POST_LIKE','TOPIC_LIKE','SYSTEM') NOT NULL;