From 27cb883b23f563436d38010e743336e102cff272 Mon Sep 17 00:00:00 2001 From: En Date: Fri, 20 Mar 2026 14:37:47 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20Flyway=20=E8=BF=81=E7=A7=BB=E8=84=9A?= =?UTF-8?q?=E6=9C=AC=E6=9B=B4=E6=96=B0=E8=AF=BE=E7=A8=8B=E5=8C=85=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit V10__update_course_package_stats.sql: - 根据 lesson 表实际数据更新 usage_count (status != 'cancelled') - 根据 lesson 表实际数据更新 teacher_count (status = 'completed' 去重教师) --- .../V10__update_course_package_stats.sql | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 reading-platform-java/src/main/resources/db/migration/V10__update_course_package_stats.sql diff --git a/reading-platform-java/src/main/resources/db/migration/V10__update_course_package_stats.sql b/reading-platform-java/src/main/resources/db/migration/V10__update_course_package_stats.sql new file mode 100644 index 0000000..54f0f3e --- /dev/null +++ b/reading-platform-java/src/main/resources/db/migration/V10__update_course_package_stats.sql @@ -0,0 +1,37 @@ +-- ----------------------------------------------------- +-- V10: 更新课程包统计数据 +-- 说明:根据 lesson 表实际数据更新 course_package 的 usage_count 和 teacher_count +-- 时间:2026-03-20 +-- ----------------------------------------------------- + +-- 1. 更新 usage_count:统计 status != 'cancelled' 的课程数 +UPDATE course_package cp +SET usage_count = ( + SELECT COUNT(*) + FROM lesson l + WHERE l.course_id = cp.id + AND l.status != 'cancelled' + AND l.deleted = 0 +) +WHERE cp.deleted = 0; + +-- 2. 更新 teacher_count:统计 status = 'completed' 的课程中去重教师数 +UPDATE course_package cp +SET teacher_count = ( + SELECT COUNT(DISTINCT l.teacher_id) + FROM lesson l + WHERE l.course_id = cp.id + AND l.status = 'completed' + AND l.teacher_id IS NOT NULL + AND l.deleted = 0 +) +WHERE cp.deleted = 0; + +-- 3. 处理 NULL 值,确保字段为 0 而不是 NULL +UPDATE course_package cp +SET usage_count = 0 +WHERE usage_count IS NULL AND deleted = 0; + +UPDATE course_package cp +SET teacher_count = 0 +WHERE teacher_count IS NULL AND deleted = 0;