Parcourir la source

feat: 新增五维基础分表及迁移305

iwt il y a 1 semaine
Parent
commit
bac7e9a4ab

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

@@ -10511,5 +10511,23 @@ public class DatabaseInitializer implements CommandLineRunner {
         // 迁移304: report_type_registry表添加script_status字段(自学习生成采集脚本的状态追踪)
         ensureColumn("report_type_registry", "script_status",
                 "VARCHAR(20) DEFAULT NULL COMMENT '采集脚本生成状态: generating/ready/failed'");
+
+        // 迁移305: 创建 family_member_dimension_base_scores 表(五维基础能量分,支持重算)
+        try {
+            jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS family_member_dimension_base_scores (" +
+                    "id BIGINT AUTO_INCREMENT PRIMARY KEY, " +
+                    "member_id BIGINT NOT NULL COMMENT '家庭成员ID', " +
+                    "member_type VARCHAR(20) NOT NULL COMMENT '成员类型: child/parent', " +
+                    "dimension_code VARCHAR(20) NOT NULL COMMENT '维度: body/mind/wisdom/action/wealth', " +
+                    "base_score INT NOT NULL COMMENT '基础能量分(0-100)', " +
+                    "last_calculated_at DATETIME NOT NULL COMMENT '最后计算时间', " +
+                    "calculated_by VARCHAR(50) DEFAULT 'system' COMMENT '计算来源(system/manual)', " +
+                    "UNIQUE KEY uk_member_dimension (member_id, dimension_code), " +
+                    "INDEX idx_member (member_id)" +
+                    ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='五维基础能量分(落库,支持重算)'");
+            log.info("已创建 family_member_dimension_base_scores 表");
+        } catch (Exception e) {
+            // 表已存在,忽略错误
+        }
     }
 }

+ 38 - 0
cfc-backend/src/main/java/com/etotem/cfc/entity/FamilyMemberDimensionBaseScore.java

@@ -0,0 +1,38 @@
+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("family_member_dimension_base_scores")
+public class FamilyMemberDimensionBaseScore implements Serializable {
+
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 家庭成员ID */
+    private Long memberId;
+
+    /** 成员类型: child/parent */
+    private String memberType;
+
+    /** 维度: body/mind/wisdom/action/wealth */
+    private String dimensionCode;
+
+    /** 基础能量分(0-100) */
+    private Integer baseScore;
+
+    /** 最后计算时间 */
+    private Date lastCalculatedAt;
+
+    /** 计算来源(system/manual/admin) */
+    private String calculatedBy;
+}

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

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

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

@@ -5448,3 +5448,16 @@ CREATE TABLE IF NOT EXISTS cf_transfer_record (
     INDEX idx_family (family_id),
     UNIQUE KEY uk_ref_type_id (ref_type, ref_id)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CF值流转记录';
+
+-- 五维基础能量分表(迁移305)
+CREATE TABLE IF NOT EXISTS family_member_dimension_base_scores (
+    id BIGINT AUTO_INCREMENT PRIMARY KEY,
+    member_id BIGINT NOT NULL COMMENT '家庭成员ID',
+    member_type VARCHAR(20) NOT NULL COMMENT '成员类型: child/parent',
+    dimension_code VARCHAR(20) NOT NULL COMMENT '维度: body/mind/wisdom/action/wealth',
+    base_score INT NOT NULL COMMENT '基础能量分(0-100)',
+    last_calculated_at DATETIME NOT NULL COMMENT '最后计算时间',
+    calculated_by VARCHAR(50) DEFAULT 'system' COMMENT '计算来源(system/manual)',
+    UNIQUE KEY uk_member_dimension (member_id, dimension_code),
+    INDEX idx_member (member_id)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='五维基础能量分(落库,支持重算)';