-- 风采墙栏目表,适用于 MySQL 8。 CREATE TABLE IF NOT EXISTS `spread_category` ( `id` varchar(32) NOT NULL COMMENT 'ID', `parentId` varchar(32) NOT NULL DEFAULT '0' COMMENT '父栏目ID,0表示顶级栏目', `name` varchar(100) NOT NULL COMMENT '栏目名称', `code` varchar(50) DEFAULT NULL COMMENT '栏目编码(兼容预置数据,页面无需维护)', `sortOrder` int NOT NULL DEFAULT 255 COMMENT '排序,数值越小越靠前', `visible` tinyint NOT NULL DEFAULT 1 COMMENT '是否可见:0否,1是', `slider` tinyint NOT NULL DEFAULT 0 COMMENT '是否参与轮播:0否,1是', `createdBy` varchar(32) DEFAULT NULL COMMENT '创建人', `createdAt` bigint DEFAULT NULL COMMENT '创建时间', `updatedBy` varchar(32) DEFAULT NULL COMMENT '修改人', `updatedAt` bigint DEFAULT NULL COMMENT '修改时间', `delFlag` tinyint NOT NULL DEFAULT 0 COMMENT '删除标记', PRIMARY KEY (`id`), UNIQUE KEY `uk_spread_category_code` (`code`), KEY `idx_spread_category_parent` (`parentId`), KEY `idx_spread_category_visible_sort` (`visible`, `sortOrder`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='风采墙栏目'; -- 风采墙内容表。 CREATE TABLE IF NOT EXISTS `spread_content` ( `id` varchar(32) NOT NULL COMMENT 'ID', `categoryId` varchar(32) NOT NULL COMMENT '栏目ID', `categoryName` varchar(100) NOT NULL COMMENT '栏目名称', `unionId` varchar(32) DEFAULT NULL COMMENT '所属工会ID', `unionName` varchar(100) DEFAULT NULL COMMENT '所属工会名称', `title` varchar(300) NOT NULL COMMENT '标题', `subTitle` varchar(255) DEFAULT NULL COMMENT '副标题', `summary` varchar(1000) DEFAULT NULL COMMENT '摘要', `contentBody` longtext COMMENT 'HTML正文', `thumbUrl` varchar(1000) DEFAULT NULL COMMENT '封面图', `sliderImages` longtext COMMENT '轮播图片JSON', `isTop` tinyint NOT NULL DEFAULT 0 COMMENT '是否置顶', `isRecommend` tinyint NOT NULL DEFAULT 0 COMMENT '是否推荐', `isHeadline` tinyint NOT NULL DEFAULT 0 COMMENT '是否头条', `viewCount` int NOT NULL DEFAULT 0 COMMENT '浏览量', `sortOrder` int NOT NULL DEFAULT 255 COMMENT '排序', `isPublished` tinyint NOT NULL DEFAULT 0 COMMENT '是否发布', `publishedAt` bigint DEFAULT NULL COMMENT '发布时间', `createdBy` varchar(32) DEFAULT NULL COMMENT '创建人', `createdAt` bigint DEFAULT NULL COMMENT '创建时间', `updatedBy` varchar(32) DEFAULT NULL COMMENT '修改人', `updatedAt` bigint DEFAULT NULL COMMENT '修改时间', `delFlag` tinyint NOT NULL DEFAULT 0 COMMENT '删除标记', PRIMARY KEY (`id`), KEY `idx_spread_content_category` (`categoryId`), KEY `idx_spread_content_union` (`unionId`), KEY `idx_spread_content_publish` (`isPublished`, `publishedAt`), KEY `idx_spread_content_top_sort` (`isTop`, `sortOrder`), KEY `idx_spread_content_created` (`createdAt`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='风采墙内容'; -- 初始化栏目,仅在对应编码不存在时插入,脚本可重复执行。 INSERT INTO `spread_category` (`id`, `parentId`, `name`, `code`, `sortOrder`, `visible`, `slider`, `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag`) SELECT '9f5c0100000000000000000000000001', '0', '风采展示', 'style_wall', 1, 1, 1, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0 WHERE NOT EXISTS (SELECT 1 FROM `spread_category` WHERE `code` = 'style_wall'); INSERT INTO `spread_category` (`id`, `parentId`, `name`, `code`, `sortOrder`, `visible`, `slider`, `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag`) SELECT '9f5c0100000000000000000000000002', p.id, '劳模风采', 'model_worker_style', 1, 1, 1, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0 FROM `spread_category` p WHERE p.code = 'style_wall' AND NOT EXISTS (SELECT 1 FROM `spread_category` WHERE `code` = 'model_worker_style'); INSERT INTO `spread_category` (`id`, `parentId`, `name`, `code`, `sortOrder`, `visible`, `slider`, `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag`) SELECT '9f5c0100000000000000000000000003', p.id, '巾帼风采', 'women_style', 2, 1, 1, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0 FROM `spread_category` p WHERE p.code = 'style_wall' AND NOT EXISTS (SELECT 1 FROM `spread_category` WHERE `code` = 'women_style'); INSERT INTO `spread_category` (`id`, `parentId`, `name`, `code`, `sortOrder`, `visible`, `slider`, `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag`) SELECT '9f5c0100000000000000000000000004', p.id, '教工风采', 'faculty_style', 3, 1, 1, '', UNIX_TIMESTAMP(NOW()) * 1000, '', UNIX_TIMESTAMP(NOW()) * 1000, 0 FROM `spread_category` p WHERE p.code = 'style_wall' AND NOT EXISTS (SELECT 1 FROM `spread_category` WHERE `code` = 'faculty_style');