Przeglądaj źródła

chore: auto bump version and changelog [skip ci]

iwt 1 miesiąc temu
rodzic
commit
dc022b93eb

+ 34 - 80
cfc-backend/src/main/java/com/etotem/cfc/config/DatabaseInitializer.java

@@ -927,9 +927,7 @@ public class DatabaseInitializer implements CommandLineRunner {
             log.warn("迁移规划师到服务商体系失败: {}", e.getMessage());
             log.warn("迁移规划师到服务商体系失败: {}", e.getMessage());
         }
         }
 
 
-        // ==================== Phase 1: 浠艾福俱乐部商品系统 ====================
-
-        // 商品表
+        // ==================== Phase 1: 浠艾福俱乐部商品系统 ======        // 商品表
         try {
         try {
             jdbcTemplate.execute(
             jdbcTemplate.execute(
                     "CREATE TABLE IF NOT EXISTS products (" +
                     "CREATE TABLE IF NOT EXISTS products (" +
@@ -1189,9 +1187,7 @@ public class DatabaseInitializer implements CommandLineRunner {
             log.warn("补充 Product 种子数据初始化失败: {}", e.getMessage());
             log.warn("补充 Product 种子数据初始化失败: {}", e.getMessage());
         }
         }
 
 
-        // ==================== Phase 2: 内容区块可见性配置 ====================
-
-        // 内容区块配置表
+        // ==================== Phase 2: 内容区块可见性配置 ======        // 内容区块配置表
         try {
         try {
             jdbcTemplate.execute(
             jdbcTemplate.execute(
                     "CREATE TABLE IF NOT EXISTS content_sections (" +
                     "CREATE TABLE IF NOT EXISTS content_sections (" +
@@ -1229,9 +1225,7 @@ public class DatabaseInitializer implements CommandLineRunner {
             log.warn("ContentSection 种子数据初始化失败: {}", e.getMessage());
             log.warn("ContentSection 种子数据初始化失败: {}", e.getMessage());
         }
         }
 
 
-        // ==================== 文章内容系统种子数据 ====================
-
-        // 文章分类种子数据
+        // ==================== 文章内容系统种子数据 ======        // 文章分类种子数据
         try {
         try {
             Integer catCount = jdbcTemplate.queryForObject(
             Integer catCount = jdbcTemplate.queryForObject(
                     "SELECT COUNT(*) FROM article_categories WHERE id IN (1,2,3,4,5)", Integer.class);
                     "SELECT COUNT(*) FROM article_categories WHERE id IN (1,2,3,4,5)", Integer.class);
@@ -1248,9 +1242,7 @@ public class DatabaseInitializer implements CommandLineRunner {
             log.warn("文章分类种子数据初始化失败: {}", e.getMessage());
             log.warn("文章分类种子数据初始化失败: {}", e.getMessage());
         }
         }
 
 
-        // ==================== 佣金系统 ====================
-
-        // 迁移: users表添加推荐人字段
+        // ==================== 佣金系统 ======        // 迁移: users表添加推荐人字段
         try {
         try {
             Integer exists = jdbcTemplate.queryForObject(
             Integer exists = jdbcTemplate.queryForObject(
                     "SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'users' AND COLUMN_NAME = 'referrer_id'",
                     "SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'users' AND COLUMN_NAME = 'referrer_id'",
@@ -1326,9 +1318,7 @@ public class DatabaseInitializer implements CommandLineRunner {
             log.warn("创建withdrawal_requests表失败: {}", e.getMessage());
             log.warn("创建withdrawal_requests表失败: {}", e.getMessage());
         }
         }
 
 
-        // ==================== 会员体系 & 佣金扩展 ====================
-
-        // 迁移: users表添加会员字段
+        // ==================== 会员体系 & 佣金扩展 ======        // 迁移: users表添加会员字段
         try {
         try {
             Integer exists = jdbcTemplate.queryForObject(
             Integer exists = jdbcTemplate.queryForObject(
                     "SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'users' AND COLUMN_NAME = 'member_level'",
                     "SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'users' AND COLUMN_NAME = 'member_level'",
@@ -1386,9 +1376,7 @@ public class DatabaseInitializer implements CommandLineRunner {
             log.warn("创建member_upgrade_records表失败: {}", e.getMessage());
             log.warn("创建member_upgrade_records表失败: {}", e.getMessage());
         }
         }
 
 
-        // ==================== 文章内容系统 ====================
-
-        // 文章分类表
+        // ==================== 文章内容系统 ======        // 文章分类表
         try {
         try {
             jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS article_categories (" +
             jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS article_categories (" +
                     "id BIGINT AUTO_INCREMENT PRIMARY KEY, " +
                     "id BIGINT AUTO_INCREMENT PRIMARY KEY, " +
@@ -1484,9 +1472,7 @@ public class DatabaseInitializer implements CommandLineRunner {
             log.warn("创建article_tags表失败: {}", e.getMessage());
             log.warn("创建article_tags表失败: {}", e.getMessage());
         }
         }
 
 
-        // ==================== 五维能量系统(账本模式) ====================
-
-        // 维度定义表
+        // ==================== 五维能量系统(账本模式) ======        // 维度定义表
         try {
         try {
             jdbcTemplate.execute(
             jdbcTemplate.execute(
                     "CREATE TABLE IF NOT EXISTS energy_dimension (" +
                     "CREATE TABLE IF NOT EXISTS energy_dimension (" +
@@ -1789,8 +1775,7 @@ public class DatabaseInitializer implements CommandLineRunner {
             log.warn("初始化商品能量比例配置失败: {}", e.getMessage());
             log.warn("初始化商品能量比例配置失败: {}", e.getMessage());
         }
         }
 
 
-        // ==================== 精准营养 P0: health_report_survey ====================
-        try {
+        // ==================== 精准营养 P0: health_report_survey =============        try {
             jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS health_report_survey (" +
             jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS health_report_survey (" +
                     "id BIGINT AUTO_INCREMENT PRIMARY KEY, " +
                     "id BIGINT AUTO_INCREMENT PRIMARY KEY, " +
                     "report_id BIGINT NOT NULL COMMENT '关联报告ID', " +
                     "report_id BIGINT NOT NULL COMMENT '关联报告ID', " +
@@ -1807,8 +1792,7 @@ public class DatabaseInitializer implements CommandLineRunner {
             log.warn("创建 health_report_survey 表失败: {}", e.getMessage());
             log.warn("创建 health_report_survey 表失败: {}", e.getMessage());
         }
         }
 
 
-        // ==================== 精准营养 P0: health_gut_flora + health_disease_risk ====================
-        try {
+        // ==================== 精准营养 P0: health_gut_flora + health_disease_risk =============        try {
             jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS health_gut_flora (" +
             jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS health_gut_flora (" +
                     "id BIGINT AUTO_INCREMENT PRIMARY KEY, " +
                     "id BIGINT AUTO_INCREMENT PRIMARY KEY, " +
                     "report_id BIGINT NOT NULL COMMENT '关联报告ID', " +
                     "report_id BIGINT NOT NULL COMMENT '关联报告ID', " +
@@ -1841,8 +1825,7 @@ public class DatabaseInitializer implements CommandLineRunner {
             log.warn("创建 health_disease_risk 表失败: {}", e.getMessage());
             log.warn("创建 health_disease_risk 表失败: {}", e.getMessage());
         }
         }
 
 
-        // ==================== 迁移: health_reports 表添加新字段 ====================
-        try {
+        // ==================== 迁移: health_reports 表添加新字段 =============        try {
             jdbcTemplate.execute("ALTER TABLE health_reports ADD COLUMN balance_score INT DEFAULT NULL COMMENT '菌群平衡分'");
             jdbcTemplate.execute("ALTER TABLE health_reports ADD COLUMN balance_score INT DEFAULT NULL COMMENT '菌群平衡分'");
             log.info("已添加balance_score列到health_reports表");
             log.info("已添加balance_score列到health_reports表");
         } catch (Exception e) {
         } catch (Exception e) {
@@ -1892,8 +1875,7 @@ public class DatabaseInitializer implements CommandLineRunner {
             // 列已存在,忽略错误
             // 列已存在,忽略错误
         }
         }
 
 
-        // ==================== 迁移: health_gut_flora 表添加新字段 ====================
-        try {
+        // ==================== 迁移: health_gut_flora 表添加新字段 =============        try {
             jdbcTemplate.execute("ALTER TABLE health_gut_flora ADD COLUMN population_level VARCHAR(50) DEFAULT NULL COMMENT '处于人群%水平'");
             jdbcTemplate.execute("ALTER TABLE health_gut_flora ADD COLUMN population_level VARCHAR(50) DEFAULT NULL COMMENT '处于人群%水平'");
             log.info("已添加population_level列到health_gut_flora表");
             log.info("已添加population_level列到health_gut_flora表");
         } catch (Exception e) {
         } catch (Exception e) {
@@ -1921,9 +1903,7 @@ public class DatabaseInitializer implements CommandLineRunner {
             // 列已存在,忽略错误
             // 列已存在,忽略错误
         }
         }
 
 
-        // ==================== 迁移: guides 表统一 ====================
-
-        // 迁移: guides 添加 type 字段(区分服务商类型)
+        // ==================== 迁移: guides 表统一 ======        // 迁移: guides 添加 type 字段(区分服务商类型)
         try {
         try {
             jdbcTemplate.execute("ALTER TABLE guides ADD COLUMN type VARCHAR(32) DEFAULT 'teacher' COMMENT '服务商类型: teacher/planner/activity_provider/product_supplier'");
             jdbcTemplate.execute("ALTER TABLE guides ADD COLUMN type VARCHAR(32) DEFAULT 'teacher' COMMENT '服务商类型: teacher/planner/activity_provider/product_supplier'");
             log.info("已添加type列到guides表");
             log.info("已添加type列到guides表");
@@ -2262,8 +2242,7 @@ public class DatabaseInitializer implements CommandLineRunner {
             log.warn("创建 cart 表失败: {}", e.getMessage());
             log.warn("创建 cart 表失败: {}", e.getMessage());
         }
         }
 
 
-        // ==================== DanShop 电商模块建表 ====================
-        // 1. danshop_categories (商品分类表)
+        // ==================== DanShop 电商模块建表 =============        // 1. danshop_categories (商品分类表)
         try {
         try {
             jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS danshop_categories (" +
             jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS danshop_categories (" +
                     "id BIGINT AUTO_INCREMENT PRIMARY KEY, " +
                     "id BIGINT AUTO_INCREMENT PRIMARY KEY, " +
@@ -2505,8 +2484,7 @@ public class DatabaseInitializer implements CommandLineRunner {
             log.warn("创建 danshop_addresses 表失败: {}", e.getMessage());
             log.warn("创建 danshop_addresses 表失败: {}", e.getMessage());
         }
         }
 
 
-        // ==================== 迁移: activities表添加visible_scope列 ====================
-        try {
+        // ==================== 迁移: activities表添加visible_scope列 =============        try {
             Integer colExists = jdbcTemplate.queryForObject(
             Integer colExists = jdbcTemplate.queryForObject(
                     "SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'activities' AND COLUMN_NAME = 'visible_scope'",
                     "SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'activities' AND COLUMN_NAME = 'visible_scope'",
                     Integer.class);
                     Integer.class);
@@ -2520,8 +2498,7 @@ public class DatabaseInitializer implements CommandLineRunner {
             log.warn("检查/添加activities表visible_scope列失败: {}", e.getMessage());
             log.warn("检查/添加activities表visible_scope列失败: {}", e.getMessage());
         }
         }
 
 
-        // ==================== 迁移: articles表添加article_type列 ====================
-        try {
+        // ==================== 迁移: articles表添加article_type列 =============        try {
             Integer colExists = jdbcTemplate.queryForObject(
             Integer colExists = jdbcTemplate.queryForObject(
                     "SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'articles' AND COLUMN_NAME = 'article_type'",
                     "SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'articles' AND COLUMN_NAME = 'article_type'",
                     Integer.class);
                     Integer.class);
@@ -2535,8 +2512,7 @@ public class DatabaseInitializer implements CommandLineRunner {
             log.warn("检查/添加articles表article_type列失败: {}", e.getMessage());
             log.warn("检查/添加articles表article_type列失败: {}", e.getMessage());
         }
         }
 
 
-        // ==================== 迁移: articles表添加word_count列 ====================
-        try {
+        // ==================== 迁移: articles表添加word_count列 =============        try {
             Integer colExists = jdbcTemplate.queryForObject(
             Integer colExists = jdbcTemplate.queryForObject(
                     "SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'articles' AND COLUMN_NAME = 'word_count'",
                     "SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'articles' AND COLUMN_NAME = 'word_count'",
                     Integer.class);
                     Integer.class);
@@ -2550,8 +2526,7 @@ public class DatabaseInitializer implements CommandLineRunner {
             log.warn("检查/添加articles表word_count列失败: {}", e.getMessage());
             log.warn("检查/添加articles表word_count列失败: {}", e.getMessage());
         }
         }
 
 
-        // ==================== 迁移: article_reading_records表添加task_id列 ====================
-        try {
+        // ==================== 迁移: article_reading_records表添加task_id列 =============        try {
             Integer colExists = jdbcTemplate.queryForObject(
             Integer colExists = jdbcTemplate.queryForObject(
                     "SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'article_reading_records' AND COLUMN_NAME = 'task_id'",
                     "SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'article_reading_records' AND COLUMN_NAME = 'task_id'",
                     Integer.class);
                     Integer.class);
@@ -2565,8 +2540,7 @@ public class DatabaseInitializer implements CommandLineRunner {
             log.warn("检查/添加article_reading_records表task_id列失败: {}", e.getMessage());
             log.warn("检查/添加article_reading_records表task_id列失败: {}", e.getMessage());
         }
         }
 
 
-        // ==================== 迁移: tasks表添加source_type列 ====================
-        try {
+        // ==================== 迁移: tasks表添加source_type列 =============        try {
             Integer colExists = jdbcTemplate.queryForObject(
             Integer colExists = jdbcTemplate.queryForObject(
                     "SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'tasks' AND COLUMN_NAME = 'source_type'",
                     "SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'tasks' AND COLUMN_NAME = 'source_type'",
                     Integer.class);
                     Integer.class);
@@ -2580,8 +2554,7 @@ public class DatabaseInitializer implements CommandLineRunner {
             log.warn("检查/添加tasks表source_type列失败: {}", e.getMessage());
             log.warn("检查/添加tasks表source_type列失败: {}", e.getMessage());
         }
         }
 
 
-        // ==================== 迁移: tasks表添加source_id列 ====================
-        try {
+        // ==================== 迁移: tasks表添加source_id列 =============        try {
             Integer colExists = jdbcTemplate.queryForObject(
             Integer colExists = jdbcTemplate.queryForObject(
                     "SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'tasks' AND COLUMN_NAME = 'source_id'",
                     "SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'tasks' AND COLUMN_NAME = 'source_id'",
                     Integer.class);
                     Integer.class);
@@ -2595,8 +2568,7 @@ public class DatabaseInitializer implements CommandLineRunner {
             log.warn("检查/添加tasks表source_id列失败: {}", e.getMessage());
             log.warn("检查/添加tasks表source_id列失败: {}", e.getMessage());
         }
         }
 
 
-        // ==================== 迁移: activities表添加checkin_points列 ====================
-        try {
+        // ==================== 迁移: activities表添加checkin_points列 =============        try {
             Integer colExists = jdbcTemplate.queryForObject(
             Integer colExists = jdbcTemplate.queryForObject(
                     "SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'activities' AND COLUMN_NAME = 'checkin_points'",
                     "SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'activities' AND COLUMN_NAME = 'checkin_points'",
                     Integer.class);
                     Integer.class);
@@ -2630,8 +2602,7 @@ public class DatabaseInitializer implements CommandLineRunner {
             log.warn("创建family_invitations表失败: {}", e.getMessage());
             log.warn("创建family_invitations表失败: {}", e.getMessage());
         }
         }
 
 
-        // ==================== P0 营养师: nutrition_indicator_mapping ====================
-        try {
+        // ==================== P0 营养师: nutrition_indicator_mapping =============        try {
             jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS nutrition_indicator_mapping (" +
             jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS nutrition_indicator_mapping (" +
                     "id BIGINT AUTO_INCREMENT PRIMARY KEY," +
                     "id BIGINT AUTO_INCREMENT PRIMARY KEY," +
                     "indicator_name_pattern VARCHAR(200) NOT NULL COMMENT '指标名匹配模式(SQL LIKE语法,%为通配符)'," +
                     "indicator_name_pattern VARCHAR(200) NOT NULL COMMENT '指标名匹配模式(SQL LIKE语法,%为通配符)'," +
@@ -2710,8 +2681,7 @@ public class DatabaseInitializer implements CommandLineRunner {
             log.warn("nutrition_indicator_mapping 种子数据初始化失败: {}", e.getMessage());
             log.warn("nutrition_indicator_mapping 种子数据初始化失败: {}", e.getMessage());
         }
         }
 
 
-        // ==================== 心版块 Phase 1: emotion_checkin 表 ====================
-        try {
+        // ==================== 心版块 Phase 1: emotion_checkin 表 =============        try {
             jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS emotion_checkin (" +
             jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS emotion_checkin (" +
                     "id BIGINT AUTO_INCREMENT PRIMARY KEY, " +
                     "id BIGINT AUTO_INCREMENT PRIMARY KEY, " +
                     "child_id BIGINT NOT NULL COMMENT '孩子ID', " +
                     "child_id BIGINT NOT NULL COMMENT '孩子ID', " +
@@ -2737,8 +2707,7 @@ public class DatabaseInitializer implements CommandLineRunner {
             log.warn("创建 emotion_checkin 表失败: {}", e.getMessage());
             log.warn("创建 emotion_checkin 表失败: {}", e.getMessage());
         }
         }
 
 
-        // ==================== 1a-2: DAN Schema 修复 ====================
-        // v1.2 EMI 心理子维度
+        // ==================== 1a-2: DAN Schema 修复 =============        // v1.2 EMI 心理子维度
         String[] danEmiFields = {"emotion_score", "resilience_score", "stress_coping_score", "self_awareness_score"};
         String[] danEmiFields = {"emotion_score", "resilience_score", "stress_coping_score", "self_awareness_score"};
         for (String field : danEmiFields) {
         for (String field : danEmiFields) {
             try {
             try {
@@ -2784,8 +2753,7 @@ public class DatabaseInitializer implements CommandLineRunner {
             }
             }
         }
         }
 
 
-        // ==================== 1b-1: bazi_reading_template 五行命理解读表 ====================
-        try {
+        // ==================== 1b-1: bazi_reading_template 五行命理解读表 =============        try {
             jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS bazi_reading_template (" +
             jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS bazi_reading_template (" +
                     "id BIGINT AUTO_INCREMENT PRIMARY KEY, " +
                     "id BIGINT AUTO_INCREMENT PRIMARY KEY, " +
                     "element VARCHAR(20) NOT NULL COMMENT '五行: wood/fire/earth/metal/water', " +
                     "element VARCHAR(20) NOT NULL COMMENT '五行: wood/fire/earth/metal/water', " +
@@ -2801,8 +2769,7 @@ public class DatabaseInitializer implements CommandLineRunner {
             log.warn("创建 bazi_reading_template 表失败: {}", e.getMessage());
             log.warn("创建 bazi_reading_template 表失败: {}", e.getMessage());
         }
         }
 
 
-        // ==================== 1b-1: numsoul_config 生命灵数配置表 ====================
-        try {
+        // ==================== 1b-1: numsoul_config 生命灵数配置表 =============        try {
             jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS numsoul_config (" +
             jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS numsoul_config (" +
                     "number INT PRIMARY KEY COMMENT '灵数1-9', " +
                     "number INT PRIMARY KEY COMMENT '灵数1-9', " +
                     "title VARCHAR(50) NOT NULL COMMENT '称号', " +
                     "title VARCHAR(50) NOT NULL COMMENT '称号', " +
@@ -2816,8 +2783,7 @@ public class DatabaseInitializer implements CommandLineRunner {
             log.warn("创建 numsoul_config 表失败: {}", e.getMessage());
             log.warn("创建 numsoul_config 表失败: {}", e.getMessage());
         }
         }
 
 
-        // ==================== 1b-1: bazi_reading_template 种子数据 ====================
-        try {
+        // ==================== 1b-1: bazi_reading_template 种子数据 =============        try {
             Integer count = jdbcTemplate.queryForObject(
             Integer count = jdbcTemplate.queryForObject(
                     "SELECT COUNT(*) FROM bazi_reading_template", Integer.class);
                     "SELECT COUNT(*) FROM bazi_reading_template", Integer.class);
             if (count == null || count == 0) {
             if (count == null || count == 0) {
@@ -2847,8 +2813,7 @@ public class DatabaseInitializer implements CommandLineRunner {
             log.warn("bazi_reading_template 种子数据初始化失败: {}", e.getMessage());
             log.warn("bazi_reading_template 种子数据初始化失败: {}", e.getMessage());
         }
         }
 
 
-        // ==================== 1b-1: numsoul_config 种子数据 ====================
-        try {
+        // ==================== 1b-1: numsoul_config 种子数据 =============        try {
             Integer count = jdbcTemplate.queryForObject(
             Integer count = jdbcTemplate.queryForObject(
                     "SELECT COUNT(*) FROM numsoul_config", Integer.class);
                     "SELECT COUNT(*) FROM numsoul_config", Integer.class);
             if (count == null || count == 0) {
             if (count == null || count == 0) {
@@ -2893,9 +2858,7 @@ public class DatabaseInitializer implements CommandLineRunner {
             log.warn("创建 user_address 表失败: {}", e.getMessage());
             log.warn("创建 user_address 表失败: {}", e.getMessage());
         }
         }
 
 
-        // ==================== 会员价格体系 ====================
-
-        // 迁移: activities表添加member_price列
+        // ==================== 会员价格体系 ======        // 迁移: activities表添加member_price列
         try {
         try {
             Integer exists = jdbcTemplate.queryForObject(
             Integer exists = jdbcTemplate.queryForObject(
                     "SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'activities' AND COLUMN_NAME = 'member_price'",
                     "SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'activities' AND COLUMN_NAME = 'member_price'",
@@ -2931,8 +2894,7 @@ public class DatabaseInitializer implements CommandLineRunner {
             log.warn("创建member_discount_configs表失败: {}", e.getMessage());
             log.warn("创建member_discount_configs表失败: {}", e.getMessage());
         }
         }
 
 
-        // ==================== 食材推荐指数 Phase: food_recommend_idx / food_recommend_idx_log ====================
-        try {
+        // ==================== 食材推荐指数 Phase: food_recommend_idx / food_recommend_idx_log =============        try {
             jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS `food_recommend_idx` (" +
             jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS `food_recommend_idx` (" +
                     "`id` BIGINT NOT NULL AUTO_INCREMENT, " +
                     "`id` BIGINT NOT NULL AUTO_INCREMENT, " +
                     "`user_id` BIGINT NOT NULL COMMENT '用户ID', " +
                     "`user_id` BIGINT NOT NULL COMMENT '用户ID', " +
@@ -3139,8 +3101,7 @@ public class DatabaseInitializer implements CommandLineRunner {
 
 
         log.info("数据库迁移完成");
         log.info("数据库迁移完成");
 
 
-        // ==================== 健康维度 Phase 1: health_dimension_score / health_data_source_record / health_norm_reference ====================
-        migrateHealthDimensionsTable();
+        // ==================== 健康维度 Phase 1: health_dimension_score / health_data_source_record / health_norm_reference =============        migrateHealthDimensionsTable();
         seedHealthNorms();
         seedHealthNorms();
         seedMindActionWealthNorms();
         seedMindActionWealthNorms();
         runLateMigrations();
         runLateMigrations();
@@ -3157,8 +3118,7 @@ public class DatabaseInitializer implements CommandLineRunner {
             log.warn("sleep_record 时间列修改失败(可能已为 TIME): {}", e.getMessage());
             log.warn("sleep_record 时间列修改失败(可能已为 TIME): {}", e.getMessage());
         }
         }
 
 
-        // ==================== 迁移270: 先天画像来源权重配置表 ====================
-        try {
+        // ==================== 迁移270: 先天画像来源权重配置表 =============        try {
             jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS innate_portrait_config (" +
             jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS innate_portrait_config (" +
                     "id BIGINT AUTO_INCREMENT PRIMARY KEY," +
                     "id BIGINT AUTO_INCREMENT PRIMARY KEY," +
                     "source_type VARCHAR(20) NOT NULL," +
                     "source_type VARCHAR(20) NOT NULL," +
@@ -3189,8 +3149,7 @@ public class DatabaseInitializer implements CommandLineRunner {
             log.warn("迁移270失败: {}", e.getMessage());
             log.warn("迁移270失败: {}", e.getMessage());
         }
         }
 
 
-        // ==================== 迁移271: 先天画像报告缓存表 ====================
-        try {
+        // ==================== 迁移271: 先天画像报告缓存表 =============        try {
             jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS innate_portrait_report (" +
             jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS innate_portrait_report (" +
                     "id BIGINT AUTO_INCREMENT PRIMARY KEY," +
                     "id BIGINT AUTO_INCREMENT PRIMARY KEY," +
                     "member_id BIGINT NOT NULL," +
                     "member_id BIGINT NOT NULL," +
@@ -3207,8 +3166,7 @@ public class DatabaseInitializer implements CommandLineRunner {
             log.warn("迁移271失败: {}", e.getMessage());
             log.warn("迁移271失败: {}", e.getMessage());
         }
         }
 
 
-        // ==================== 迁移272: 数字能量详细配置表 ====================
-        try {
+        // ==================== 迁移272: 数字能量详细配置表 =============        try {
             jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS numsoul_detail_config (" +
             jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS numsoul_detail_config (" +
                     "id BIGINT AUTO_INCREMENT PRIMARY KEY," +
                     "id BIGINT AUTO_INCREMENT PRIMARY KEY," +
                     "number_type VARCHAR(20) NOT NULL," +
                     "number_type VARCHAR(20) NOT NULL," +
@@ -4346,8 +4304,7 @@ sqls.add("INSERT IGNORE INTO health_norm_reference (dimension, gender, age_min,
             log.warn("创建insurance_policies表失败: {}", e.getMessage());
             log.warn("创建insurance_policies表失败: {}", e.getMessage());
         }
         }
 
 
-        // ==================== 健康检测报告模块 ====================
-        // 健康报告表(体检报告/菌群检测报告)
+        // ==================== 健康检测报告模块 =============        // 健康报告表(体检报告/菌群检测报告)
         try {
         try {
             jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS health_reports (" +
             jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS health_reports (" +
                     "id BIGINT AUTO_INCREMENT PRIMARY KEY, " +
                     "id BIGINT AUTO_INCREMENT PRIMARY KEY, " +
@@ -10974,7 +10931,6 @@ sqls.add("INSERT IGNORE INTO health_norm_reference (dimension, gender, age_min,
             // 表已存在,忽略
             // 表已存在,忽略
         }
         }
 
 
-<<<<<<< Updated upstream
         // 迁移318: 创建 DOA 个人目标-周计划-周复盘三表(家庭打卡个人目标模块,2026-09-12)
         // 迁移318: 创建 DOA 个人目标-周计划-周复盘三表(家庭打卡个人目标模块,2026-09-12)
         try {
         try {
             jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS doa_stage (" +
             jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS doa_stage (" +
@@ -11036,7 +10992,6 @@ sqls.add("INSERT IGNORE INTO health_norm_reference (dimension, gender, age_min,
             log.info("迁移318: 已创建 doa_week 表");
             log.info("迁移318: 已创建 doa_week 表");
         } catch (Exception e) {
         } catch (Exception e) {
             log.warn("迁移318: 创建 doa_week 表失败: {}", e.getMessage());
             log.warn("迁移318: 创建 doa_week 表失败: {}", e.getMessage());
-=======
         // 迁移318: 基础管理分组挂载「系统提示词」菜单(cfc-web菜单树同步)
         // 迁移318: 基础管理分组挂载「系统提示词」菜单(cfc-web菜单树同步)
         migrateSystemPromptMenu();
         migrateSystemPromptMenu();
 
 
@@ -11140,7 +11095,6 @@ sqls.add("INSERT IGNORE INTO health_norm_reference (dimension, gender, age_min,
         } catch (Exception e) {
         } catch (Exception e) {
             log.warn("迁移318: 挂载菜单失败: {}", e.getMessage());
             log.warn("迁移318: 挂载菜单失败: {}", e.getMessage());
             return null;
             return null;
->>>>>>> Stashed changes
         }
         }
     }
     }
 
 

+ 1 - 1
cfc-web/.last_build_commit

@@ -1 +1 @@
-21b442771f14d8c80d44d7903b9e07541c535e6b
+de7d6a284d570cd905f05915568db6f61053985b

+ 1 - 1
cfc-web/package.json

@@ -1,6 +1,6 @@
 {
 {
   "name": "cfc-web",
   "name": "cfc-web",
-  "version": "1.0.1384",
+  "version": "1.0.1385",
   "private": true,
   "private": true,
   "scripts": {
   "scripts": {
     "dev": "vue-cli-service serve",
     "dev": "vue-cli-service serve",

+ 6 - 0
cfc-web/public/CHANGELOG-v1.0.md

@@ -4,6 +4,12 @@
 
 
 ---
 ---
 
 
+## v1.0.1385 (2026-09-13)
+
+### 新功能
+- 菜单管理图标字段改为可视化图标选择器(282个Element图标+搜索+清除)
+
+
 ## v1.0.1384 (2026-09-13)
 ## v1.0.1384 (2026-09-13)
 
 
 ### 新功能
 ### 新功能

+ 7 - 1
cfc-web/public/CHANGELOG.md

@@ -1,6 +1,6 @@
 # 更新日志
 # 更新日志
 
 
-> 当前版本: v1.0.1384
+> 当前版本: v1.0.1385
 
 
 ## 历史版本
 ## 历史版本
 
 
@@ -8,6 +8,12 @@
 
 
 ---
 ---
 
 
+## v1.0.1385 (2026-09-13)
+
+### 新功能
+- 菜单管理图标字段改为可视化图标选择器(282个Element图标+搜索+清除)
+
+
 ## v1.0.1384 (2026-09-13)
 ## v1.0.1384 (2026-09-13)
 
 
 ### 新功能
 ### 新功能