Bladeren bron

fix: add remaining child-specific column migrations for family_members table

Xiaogang Liao 2 maanden geleden
bovenliggende
commit
9bdfd65f06
1 gewijzigde bestanden met toevoegingen van 25 en 0 verwijderingen
  1. 25 0
      cfc-backend/src/main/java/com/etotem/cfc/config/DatabaseInitializer.java

+ 25 - 0
cfc-backend/src/main/java/com/etotem/cfc/config/DatabaseInitializer.java

@@ -2061,6 +2061,31 @@ log.info("已添加template_id列到tasks表");
             log.warn("检查/添加 family_members 表 id_card 列失败: {}", e.getMessage());
         }
 
+        // 迁移: family_members 表添加孩子专属字段(原children表合并)
+        String[][] childColumns = {
+            {"penalty_enabled", "TINYINT DEFAULT 1 COMMENT '是否扣减积分(0否1是)'"},
+            {"theme",           "VARCHAR(32) DEFAULT 'default' COMMENT '主题'"},
+            {"system_points",   "INT DEFAULT 0 COMMENT '系统积分(干预/平台奖励)'"},
+            {"streak_days",     "INT DEFAULT 0 COMMENT '连续打卡天数'"},
+            {"last_task_date",  "DATE COMMENT '上次任务日期'"},
+            {"focus_max_daily", "TINYINT DEFAULT 3 COMMENT '每日专注上限'"},
+            {"focus_remaining","TINYINT DEFAULT 3 COMMENT '今日剩余专注次数'"},
+            {"focus_reset_date","DATE COMMENT '专注次数重置日期'"}
+        };
+        for (String[] col : childColumns) {
+            try {
+                Integer colExists = jdbcTemplate.queryForObject(
+                    "SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'family_members' AND COLUMN_NAME = ?",
+                    Integer.class, col[0]);
+                if (colExists == null || colExists == 0) {
+                    jdbcTemplate.execute("ALTER TABLE family_members ADD COLUMN " + col[0] + " " + col[1]);
+                    log.info("已为 family_members 表添加 {} 列", col[0]);
+                }
+            } catch (Exception e) {
+                log.warn("检查/添加 family_members 表 {} 列失败: {}", col[0], e.getMessage());
+            }
+        }
+
         // ==================== DanShop 电商模块建表 ====================
         // 1. danshop_categories (商品分类表)
         try {