|
|
@@ -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("数据库迁移完成");
|
|
|
}
|
|
|
|