From 16a57a8fc6868cea9171a1119698572407a2fc03 Mon Sep 17 00:00:00 2001 From: hejianhao <15708179461@qq.com> Date: 星期五, 28 八月 2026 15:21:46 +0800 Subject: [PATCH] fix0806: APP端去掉全部的市辖区选择 --- tcm-training-admin-backend/sql/init.sql | 128 +++++++++++++++++++++++++++++++++--------- 1 files changed, 100 insertions(+), 28 deletions(-) diff --git a/tcm-training-admin-backend/sql/init.sql b/tcm-training-admin-backend/sql/init.sql index 5cb762c..81d8cd8 100644 --- a/tcm-training-admin-backend/sql/init.sql +++ b/tcm-training-admin-backend/sql/init.sql @@ -300,6 +300,9 @@ `wechat_nickname` VARCHAR(64) DEFAULT NULL COMMENT '微信昵称', `wechat_avatar` VARCHAR(255) DEFAULT NULL COMMENT '微信头像URL', `wechat_bound_at` DATETIME DEFAULT NULL COMMENT '微信绑定时间', + `apple_user_identifier` VARCHAR(128) DEFAULT NULL COMMENT '苹果用户标识', + `apple_identity_subject` VARCHAR(128) DEFAULT NULL COMMENT '苹果身份主题标识', + `apple_bound_at` DATETIME DEFAULT NULL COMMENT '苹果绑定时间', `type` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '用户类型:0个人 1诊所', `gender` TINYINT(1) DEFAULT NULL COMMENT '性别:0女 1男', `age` TINYINT UNSIGNED DEFAULT NULL COMMENT '年龄', @@ -319,8 +322,8 @@ KEY `idx_app_user_status` (`status`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='APP用户表(C端用户)'; -INSERT IGNORE INTO `tcm_app_user` (`id`, `nickname`, `phone`, `password`, `avatar`, `wechat_openid`, `wechat_nickname`, `wechat_avatar`, `wechat_bound_at`, `type`, `gender`, `age`, `intro`, `status`, `clinic_id`, `superior_clinic_user_id`, `member_expire_at`, `deleted`) -VALUES (200, '张三', '13800008888', NULL, 'https://example.com/avatar/app-user-200.png', 'wx_openid_200', '小张', 'https://example.com/avatar/wechat-200.png', CURRENT_TIMESTAMP, 1, 1, 19, 'If you find an element of your interface requires instructions, then you need to redesign it.', 1, 1, NULL, NULL, 0); +INSERT IGNORE INTO `tcm_app_user` (`id`, `nickname`, `phone`, `password`, `avatar`, `wechat_openid`, `wechat_nickname`, `wechat_avatar`, `wechat_bound_at`, `apple_user_identifier`, `apple_identity_subject`, `apple_bound_at`, `type`, `gender`, `age`, `intro`, `status`, `clinic_id`, `superior_clinic_user_id`, `member_expire_at`, `deleted`) +VALUES (200, '张三', '13800008888', NULL, 'https://example.com/avatar/app-user-200.png', 'wx_openid_200', '小张', 'https://example.com/avatar/wechat-200.png', CURRENT_TIMESTAMP, NULL, NULL, NULL, 1, 1, 19, 'If you find an element of your interface requires instructions, then you need to redesign it.', 1, 1, NULL, NULL, 0); -- ---------------------------- -- 会员价格配置 @@ -646,6 +649,7 @@ `play_end` DATETIME DEFAULT NULL COMMENT '结束播放时间', `duration_seconds` INT NOT NULL DEFAULT 0 COMMENT '累计播放时长(秒)', `is_completed` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否完播:1是 0否', + `last_play_position_seconds` INT NOT NULL DEFAULT 0 COMMENT '本次结束时播放位置(秒)', PRIMARY KEY (`id`), KEY `idx_health_course_play_course` (`course_id`), KEY `idx_health_course_play_video` (`video_id`), @@ -667,6 +671,48 @@ KEY `idx_health_course_favorite_user` (`app_user_id`), KEY `idx_health_course_favorite_time` (`action_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='养生课程收藏记录表'; + +-- ---------------------------- +-- 养生课程:下载记录 +-- ---------------------------- +CREATE TABLE IF NOT EXISTS `tcm_health_course_download_record` ( + `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, + `app_user_id` BIGINT UNSIGNED NOT NULL COMMENT '用户ID', + `course_id` BIGINT UNSIGNED NOT NULL COMMENT '养生课程ID', + `course_video_id` BIGINT UNSIGNED NOT NULL COMMENT '视频小节ID', + `course_title_snapshot` VARCHAR(128) NOT NULL DEFAULT '' COMMENT '课程标题快照', + `chapter_name_snapshot` VARCHAR(128) NOT NULL DEFAULT '' COMMENT '章节标题快照', + `cover_img_snapshot` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '封面图快照', + `video_url_snapshot` VARCHAR(512) NOT NULL DEFAULT '' COMMENT '视频地址快照', + `duration_seconds_snapshot` INT NOT NULL DEFAULT 0 COMMENT '视频时长快照(秒)', + `deleted` TINYINT(1) NOT NULL DEFAULT 0, + `created_by` VARCHAR(64) NOT NULL DEFAULT '系统初始化' COMMENT '创建人', + `updated_by` VARCHAR(64) NOT NULL DEFAULT '系统初始化' COMMENT '更新人', + `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `idx_health_course_download_user_deleted_created` (`app_user_id`, `deleted`, `created_at`), + KEY `idx_health_course_download_user_video_deleted` (`app_user_id`, `course_video_id`, `deleted`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='养生课程下载记录表'; + +-- ---------------------------- +-- 养生课程:会员加课记录 +-- ---------------------------- +CREATE TABLE IF NOT EXISTS `tcm_health_course_member_join_record` ( + `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, + `course_id` BIGINT UNSIGNED NOT NULL COMMENT '养生课程ID', + `app_user_id` BIGINT UNSIGNED NOT NULL COMMENT '用户ID', + `joined_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '加入时间', + `deleted` TINYINT(1) NOT NULL DEFAULT 0, + `created_by` VARCHAR(64) NOT NULL DEFAULT '系统初始化' COMMENT '创建人', + `updated_by` VARCHAR(64) NOT NULL DEFAULT '系统初始化' COMMENT '更新人', + `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_health_course_member_join` (`course_id`, `app_user_id`, `deleted`), + KEY `idx_health_course_member_join_user` (`app_user_id`), + KEY `idx_health_course_member_join_time` (`joined_at`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='养生课程会员加课记录表'; -- ---------------------------- -- 内容:咨询点击记录 @@ -891,8 +937,8 @@ (103, 1, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 4 DAY), '19:30:00'), 'https://example.com/live/recent-session-103.mp4', 3000, 10, 16, 4, 4, 40.00, 75.00, 75.00, 1, 12, 2, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 4 DAY), '19:30:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 4 DAY), '20:20:00'), 0), (104, 2, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 3 DAY), '19:30:00'), 'https://example.com/live/recent-session-104.mp4', 3000, 12, 18, 5, 5, 41.67, 80.00, 80.00, 1, 14, 2, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 3 DAY), '19:30:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 3 DAY), '20:20:00'), 0), (105, 1, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 2 DAY), '19:30:00'), 'https://example.com/live/recent-session-105.mp4', 3000, 12, 20, 5, 5, 41.67, 80.00, 80.00, 1, 16, 2, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 2 DAY), '19:30:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 2 DAY), '20:20:00'), 0), -(106, 2, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 DAY), '19:30:00'), 'https://example.com/live/recent-session-106.mp4', 14, 24, 6, 6, 42.86, 83.33, 83.33, 1, 18, 2, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 DAY), '19:30:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 DAY), '20:20:00'), 0), -(107, 1, TIMESTAMP(CURDATE(), '19:30:00'), 'https://example.com/live/recent-session-107.mp4', 16, 28, 7, 7, 43.75, 85.71, 85.71, 1, 20, 2, TIMESTAMP(CURDATE(), '19:30:00'), TIMESTAMP(CURDATE(), '20:20:00'), 0); +(106, 2, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 DAY), '19:30:00'), 'https://example.com/live/recent-session-106.mp4', 3000, 14, 24, 6, 6, 42.86, 83.33, 83.33, 1, 18, 2, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 DAY), '19:30:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 DAY), '20:20:00'), 0), +(107, 1, TIMESTAMP(CURDATE(), '19:30:00'), 'https://example.com/live/recent-session-107.mp4', 3000, 16, 28, 7, 7, 43.75, 85.71, 85.71, 1, 20, 2, TIMESTAMP(CURDATE(), '19:30:00'), TIMESTAMP(CURDATE(), '20:20:00'), 0); INSERT IGNORE INTO `tcm_live_session_question` (`id`, `session_id`, `sort`, `stem`, `option_a`, `option_b`, `option_c`, `correct_option`, `deleted`) @@ -944,31 +990,31 @@ (5034, 1, 107, 200, TIMESTAMP(CURDATE(), '20:40:00'), TIMESTAMP(CURDATE(), '20:46:00'), 360, 0, 1); INSERT IGNORE INTO `tcm_health_course_play_record` -(`id`, `course_id`, `video_id`, `app_user_id`, `play_start`, `play_end`, `duration_seconds`, `is_completed`) +(`id`, `course_id`, `video_id`, `app_user_id`, `play_start`, `play_end`, `duration_seconds`, `is_completed`, `last_play_position_seconds`) VALUES -(5101, 1, 1, 200, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 6 DAY), '10:00:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 6 DAY), '10:18:00'), 1080, 1), -(5102, 1, 2, 200, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 6 DAY), '15:10:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 6 DAY), '15:18:00'), 480, 0), -(5103, 1, 1, 200, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 5 DAY), '10:02:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 5 DAY), '10:20:00'), 1080, 1), -(5104, 1, 3, 200, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 5 DAY), '14:30:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 5 DAY), '14:38:00'), 480, 0), -(5105, 1, 1, 200, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 4 DAY), '09:55:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 4 DAY), '10:13:00'), 1080, 1), -(5106, 1, 2, 200, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 4 DAY), '13:20:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 4 DAY), '13:28:00'), 480, 0), -(5107, 1, 3, 200, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 4 DAY), '19:10:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 4 DAY), '19:18:00'), 480, 0), -(5108, 1, 1, 200, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 3 DAY), '10:05:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 3 DAY), '10:23:00'), 1080, 1), -(5109, 1, 2, 200, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 3 DAY), '12:40:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 3 DAY), '12:48:00'), 480, 0), -(5110, 1, 3, 200, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 3 DAY), '18:25:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 3 DAY), '18:33:00'), 480, 0), -(5111, 1, 1, 200, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 2 DAY), '10:08:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 2 DAY), '10:26:00'), 1080, 1), -(5112, 1, 2, 200, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 2 DAY), '13:10:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 2 DAY), '13:18:00'), 480, 0), -(5113, 1, 3, 200, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 2 DAY), '18:00:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 2 DAY), '18:08:00'), 480, 0), -(5114, 1, 1, 200, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 2 DAY), '20:10:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 2 DAY), '20:18:00'), 480, 0), -(5115, 1, 1, 200, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 DAY), '09:58:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 DAY), '10:16:00'), 1080, 1), -(5116, 1, 2, 200, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 DAY), '12:20:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 DAY), '12:28:00'), 480, 0), -(5117, 1, 3, 200, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 DAY), '17:42:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 DAY), '17:50:00'), 480, 0), -(5118, 1, 2, 200, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 DAY), '21:00:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 DAY), '21:08:00'), 480, 0), -(5119, 1, 1, 200, TIMESTAMP(CURDATE(), '09:50:00'), TIMESTAMP(CURDATE(), '10:08:00'), 1080, 1), -(5120, 1, 2, 200, TIMESTAMP(CURDATE(), '12:15:00'), TIMESTAMP(CURDATE(), '12:23:00'), 480, 0), -(5121, 1, 3, 200, TIMESTAMP(CURDATE(), '15:30:00'), TIMESTAMP(CURDATE(), '15:38:00'), 480, 0), -(5122, 1, 1, 200, TIMESTAMP(CURDATE(), '18:20:00'), TIMESTAMP(CURDATE(), '18:28:00'), 480, 0), -(5123, 1, 2, 200, TIMESTAMP(CURDATE(), '21:10:00'), TIMESTAMP(CURDATE(), '21:18:00'), 480, 0); +(5101, 1, 1, 200, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 6 DAY), '10:00:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 6 DAY), '10:18:00'), 1080, 1, 0), +(5102, 1, 2, 200, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 6 DAY), '15:10:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 6 DAY), '15:18:00'), 480, 0, 480), +(5103, 1, 1, 200, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 5 DAY), '10:02:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 5 DAY), '10:20:00'), 1080, 1, 0), +(5104, 1, 3, 200, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 5 DAY), '14:30:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 5 DAY), '14:38:00'), 480, 0, 480), +(5105, 1, 1, 200, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 4 DAY), '09:55:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 4 DAY), '10:13:00'), 1080, 1, 0), +(5106, 1, 2, 200, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 4 DAY), '13:20:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 4 DAY), '13:28:00'), 480, 0, 480), +(5107, 1, 3, 200, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 4 DAY), '19:10:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 4 DAY), '19:18:00'), 480, 0, 480), +(5108, 1, 1, 200, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 3 DAY), '10:05:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 3 DAY), '10:23:00'), 1080, 1, 0), +(5109, 1, 2, 200, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 3 DAY), '12:40:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 3 DAY), '12:48:00'), 480, 0, 480), +(5110, 1, 3, 200, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 3 DAY), '18:25:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 3 DAY), '18:33:00'), 480, 0, 480), +(5111, 1, 1, 200, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 2 DAY), '10:08:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 2 DAY), '10:26:00'), 1080, 1, 0), +(5112, 1, 2, 200, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 2 DAY), '13:10:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 2 DAY), '13:18:00'), 480, 0, 480), +(5113, 1, 3, 200, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 2 DAY), '18:00:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 2 DAY), '18:08:00'), 480, 0, 480), +(5114, 1, 1, 200, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 2 DAY), '20:10:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 2 DAY), '20:18:00'), 480, 0, 480), +(5115, 1, 1, 200, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 DAY), '09:58:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 DAY), '10:16:00'), 1080, 1, 0), +(5116, 1, 2, 200, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 DAY), '12:20:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 DAY), '12:28:00'), 480, 0, 480), +(5117, 1, 3, 200, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 DAY), '17:42:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 DAY), '17:50:00'), 480, 0, 480), +(5118, 1, 2, 200, TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 DAY), '21:00:00'), TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 DAY), '21:08:00'), 480, 0, 480), +(5119, 1, 1, 200, TIMESTAMP(CURDATE(), '09:50:00'), TIMESTAMP(CURDATE(), '10:08:00'), 1080, 1, 0), +(5120, 1, 2, 200, TIMESTAMP(CURDATE(), '12:15:00'), TIMESTAMP(CURDATE(), '12:23:00'), 480, 0, 480), +(5121, 1, 3, 200, TIMESTAMP(CURDATE(), '15:30:00'), TIMESTAMP(CURDATE(), '15:38:00'), 480, 0, 480), +(5122, 1, 1, 200, TIMESTAMP(CURDATE(), '18:20:00'), TIMESTAMP(CURDATE(), '18:28:00'), 480, 0, 480), +(5123, 1, 2, 200, TIMESTAMP(CURDATE(), '21:10:00'), TIMESTAMP(CURDATE(), '21:18:00'), 480, 0, 480); INSERT IGNORE INTO `tcm_health_course_favorite_record` (`id`, `course_id`, `app_user_id`, `action_type`, `action_time`) @@ -1093,6 +1139,32 @@ UNIQUE KEY `uk_message_push_notice_type_code` (`notice_type_code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='消息推送配置表'; +-- ---------------------------- +-- 项目介绍表 +-- ---------------------------- +CREATE TABLE IF NOT EXISTS `tcm_project_introduction` ( + `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, + `title` VARCHAR(128) NOT NULL COMMENT '标题', + `cover_img` VARCHAR(512) DEFAULT NULL COMMENT '封面图', + `category` VARCHAR(32) NOT NULL COMMENT '类别:平台介绍、营销模式、营销动作', + `content_type` TINYINT NOT NULL COMMENT '类型:1图文 2视频', + `content` MEDIUMTEXT COMMENT '图文内容(富文本HTML)', + `video_url` VARCHAR(512) DEFAULT NULL COMMENT '视频地址', + `video_file_name` VARCHAR(255) DEFAULT NULL COMMENT '视频文件名', + `click_count` INT NOT NULL DEFAULT 0 COMMENT '点击量', + `status` TINYINT NOT NULL DEFAULT 1 COMMENT '状态:1启用 0禁用', + `deleted` TINYINT(1) NOT NULL DEFAULT 0, + `created_by` VARCHAR(64) NOT NULL DEFAULT '系统' COMMENT '创建人', + `updated_by` VARCHAR(64) NOT NULL DEFAULT '系统' COMMENT '更新人', + `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `idx_category` (`category`), + KEY `idx_content_type` (`content_type`), + KEY `idx_status` (`status`), + KEY `idx_created_at` (`created_at`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='项目介绍表'; + INSERT IGNORE INTO `tcm_message_push_config` (`id`, `notice_type_code`, `notice_type_name`, `push_enabled`, `sms_enabled`, `deleted`) VALUES -- Gitblit v1.7.1