Просмотр исходного кода

feat(family-member): 迁移300为family_members添加status列支持回收箱

Sisyphus 2 недель назад
Родитель
Сommit
788a2417e1

+ 4 - 1
cfc-backend/src/main/java/com/etotem/cfc/config/DatabaseInitializer.java

@@ -10391,7 +10391,7 @@ public class DatabaseInitializer implements CommandLineRunner {
             log.warn("迁移297执行失败(training_plan_tasks 表可能不存在): {}", e.getMessage());
         }
 
-        // 迁移298: 存量 role='child' 账号强制迁移为成员模型
+// 迁移298: 存量 role='child' 账号强制迁移为成员模型
         // 1) 有 openid 的 child → role 改 parent(可登录成员,登录后进成员端界面,不能被切换)
         // 2) 无 openid 的 child → 保持不可登录,确保有 family_members 记录(仅可被切换)
         try {
@@ -10417,6 +10417,9 @@ public class DatabaseInitializer implements CommandLineRunner {
         // 迁移299: promotion_tier 表添加 rate_percent 列(实体新模型返佣比例;修复 PromotionTierCheckScheduledTask 每天01:00 Unknown column 崩溃,2026-09-06)
         ensureColumn("promotion_tier", "rate_percent", "INT DEFAULT 0 COMMENT '当前返佣比例(%)'");
 
+        // 迁移300: family_members 添加 status 列(成员状态: active/recycled,非微信用户被移出进回收箱)
+        ensureColumn("family_members", "status", "VARCHAR(16) DEFAULT 'active' COMMENT '成员状态: active=正常, recycled=回收箱'");
+
         // ===== 生产库对账候选风险记录(已核对生产库,2026-09,按用户决定不迁移/暂不动,仅记录)=====
         // 注:以下为 entity 期望但生产库未对齐.项目,用户已决定保持现状或记为候选,勿重复迁移。
         // 1. children 表缺 phone、id_card(Child 实体+ChildMapper 仍活跃,AccountCleanupService

+ 3 - 0
cfc-backend/src/main/java/com/etotem/cfc/entity/FamilyMember.java

@@ -135,6 +135,9 @@ public class FamilyMember implements Serializable {
     /** 是否家庭管理员: 1=管理员, 0=普通成员 */
     private Integer isAdmin;
 
+    /** 成员状态: active=正常, recycled=回收箱(非微信用户被移出后进入) */
+    private String status;
+
     /**
      * 是否男性
      */

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

@@ -2100,6 +2100,7 @@ CREATE TABLE IF NOT EXISTS family_members (
     birth_weight INT DEFAULT NULL COMMENT '出生体重(g)',
     birth_place VARCHAR(255) DEFAULT NULL COMMENT '出生地',
     is_cesarean TINYINT(1) DEFAULT 0 COMMENT '是否剖腹产: 0否 1是',
+    status VARCHAR(16) DEFAULT 'active' COMMENT '成员状态: active=正常, recycled=回收箱',
     created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
     updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
     INDEX idx_family_id (family_id),