瀏覽代碼

feat(self-check): 新增 self_check_ignores 表和 question_ids_json 列(迁移269/270)

iwt 2 周之前
父節點
當前提交
ab38470fae

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

@@ -9500,6 +9500,23 @@ public class DatabaseInitializer implements CommandLineRunner {
         migratePlanCenterMenu();
         // 迁移268: coupon 表添加 status 列(优惠券停用/启用)
         migrateCouponStatus();
+
+        // 迁移269: five_dimension_self_checks 表添加 question_ids_json 列(自检轮换用)
+        ensureColumn("five_dimension_self_checks", "question_ids_json", "VARCHAR(255) COMMENT '本次自检使用的题号JSON: [1,5,9,...]'");
+
+        // 迁移270: 创建 self_check_ignores 表(记录用户忽略自检提醒的动作,作为 15 天周期重置依据)
+        try {
+            jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS self_check_ignores (" +
+                    "id BIGINT AUTO_INCREMENT PRIMARY KEY, " +
+                    "user_id BIGINT NOT NULL COMMENT '用户ID', " +
+                    "check_id BIGINT COMMENT '忽略的自检记录ID(可空)', " +
+                    "created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '忽略时间', " +
+                    "INDEX idx_user_id (user_id)" +
+                    ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='五维自检忽略提醒记录'");
+            log.info("已创建 self_check_ignores 表");
+        } catch (Exception e) {
+            log.warn("创建 self_check_ignores 表失败: {}", e.getMessage());
+        }
     }
 
     /**

+ 23 - 0
cfc-backend/src/main/java/com/etotem/cfc/entity/SelfCheckIgnore.java

@@ -0,0 +1,23 @@
+package com.etotem.cfc.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@TableName("self_check_ignores")
+public class SelfCheckIgnore implements Serializable {
+
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    private Long userId;
+
+    private Long checkId;
+
+    private Date createdAt;
+}

+ 9 - 0
cfc-backend/src/main/java/com/etotem/cfc/mapper/SelfCheckIgnoreMapper.java

@@ -0,0 +1,9 @@
+package com.etotem.cfc.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.etotem.cfc.entity.SelfCheckIgnore;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface SelfCheckIgnoreMapper extends BaseMapper<SelfCheckIgnore> {
+}

+ 12 - 0
cfc-backend/src/main/resources/schema.sql

@@ -4291,6 +4291,7 @@ CREATE TABLE IF NOT EXISTS five_dimension_self_checks (
     total_score INT COMMENT '五维总分(满分45)',
     advice_json TEXT COMMENT '五行相生寻源建议JSON',
     created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
+    question_ids_json VARCHAR(255) DEFAULT NULL COMMENT '本次自检使用的题号JSON: [1,5,9,...]',
     INDEX idx_user_id (user_id)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='五维家庭自检记录';
 
@@ -5259,3 +5260,14 @@ CREATE TABLE IF NOT EXISTS numsoul_detail_config (
     created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
     UNIQUE KEY uk_type_num (number_type, number_value)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='数字能量详细配置';
+
+-- ============================================================
+-- 五维自检忽略提醒记录表(迁移270)
+-- ============================================================
+CREATE TABLE IF NOT EXISTS self_check_ignores (
+    id BIGINT AUTO_INCREMENT PRIMARY KEY,
+    user_id BIGINT NOT NULL COMMENT '用户ID',
+    check_id BIGINT COMMENT '忽略的自检记录ID(可空)',
+    created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '忽略时间',
+    INDEX idx_user_id (user_id)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='五维自检忽略提醒记录';