Browse Source

feat: 用户实体添加服务商/家庭管理员字段并新增DB迁移

User 3 tháng trước cách đây
mục cha
commit
c9dd1dd5a7

+ 31 - 0
zxyj-backend/src/main/java/com/zxyj/config/DatabaseInitializer.java

@@ -1199,6 +1199,37 @@ log.info("已添加template_id列到tasks表");
             log.warn("检查/添加个人信息补充字段失败: {}", e.getMessage());
         }
 
+        // Phase 0: 溪福俱乐部 — 服务商字段
+        try {
+            Integer exists = jdbcTemplate.queryForObject(
+                "SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'users' AND COLUMN_NAME = 'vendor_type'",
+                Integer.class);
+            if (exists == null || exists == 0) {
+                jdbcTemplate.execute("ALTER TABLE users ADD COLUMN vendor_type VARCHAR(32) DEFAULT NULL COMMENT '服务商类型: planner/activity_provider/product_supplier'");
+                jdbcTemplate.execute("ALTER TABLE users ADD COLUMN vendor_status VARCHAR(16) DEFAULT NULL COMMENT '服务商审核状态: pending/approved/rejected'");
+                jdbcTemplate.execute("ALTER TABLE users ADD COLUMN vendor_reject_reason VARCHAR(500) DEFAULT NULL COMMENT '审核拒绝原因'");
+                jdbcTemplate.execute("ALTER TABLE users ADD COLUMN is_family_admin TINYINT DEFAULT 0 COMMENT '是否家庭管理员'");
+                jdbcTemplate.execute("ALTER TABLE users ADD COLUMN vendor_info VARCHAR(2000) DEFAULT NULL COMMENT '服务商资质信息(JSON)'");
+                log.info("已添加溪福俱乐部服务商字段到users表");
+            } else {
+                log.info("溪福俱乐部服务商字段已存在,跳过");
+            }
+        } catch (Exception e) {
+            log.warn("检查/添加服务商字段失败: {}", e.getMessage());
+        }
+
+        // Phase 0: 迁移已有规划师到服务商体系
+        try {
+            int updated = jdbcTemplate.update(
+                "UPDATE users SET vendor_type = 'planner', vendor_status = 'approved' WHERE teacher_status = 'approved' AND vendor_type IS NULL"
+            );
+            if (updated > 0) {
+                log.info("已迁移 {} 名规划师到服务商体系", updated);
+            }
+        } catch (Exception e) {
+            log.warn("迁移规划师到服务商体系失败: {}", e.getMessage());
+        }
+
         log.info("数据库迁移完成");
     }
 

+ 15 - 0
zxyj-backend/src/main/java/com/zxyj/entity/User.java

@@ -76,6 +76,21 @@ public class User implements Serializable {
     // 家长身份: 爸爸/妈妈/爷爷/奶奶/姥爷/姥姥/其他
     private String familyRole;
 
+    // 服务商类型: null=普通用户 / planner / activity_provider / product_supplier
+    private String vendorType;
+
+    // 服务商审核状态: null=未申请 / pending / approved / rejected
+    private String vendorStatus;
+
+    // 服务商审核拒绝原因
+    private String vendorRejectReason;
+
+    // 家庭管理员标记
+    private Boolean isFamilyAdmin;
+
+    // 服务商资质信息 (JSON)
+    private String vendorInfo;
+
     private Date createdAt;
 
     private Date updatedAt;