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

fix(backend): 修复家庭共餐食材持久化编译错误(selectCount 返回 Long、去除重复迁移方法、迁移354→356)

E2E Test Bot 3 дней назад
Родитель
Сommit
db285d3596

+ 6 - 35
cfc-backend/src/main/java/com/etotem/cfc/config/DatabaseInitializer.java

@@ -11859,33 +11859,6 @@ log.info("迁移298: 已为无 openid 的 child 账号补齐 family_members 记
         }
     }
 
-    // 迁移354: 家庭共餐选中食材表(持久化共餐场景食材选择)
-    private void createDietFamilySelectedIngredientsTable() {
-        try {
-            jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS diet_family_selected_ingredients (" +
-                    "id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID'," +
-                    "family_id BIGINT NOT NULL COMMENT '家庭ID'," +
-                    "food_id BIGINT NOT NULL COMMENT '食材ID'," +
-                    "food_name VARCHAR(100) COMMENT '食材名称'," +
-                    "score INT COMMENT '推荐分'," +
-                    "reason VARCHAR(255) COMMENT '推荐理由'," +
-                    "category VARCHAR(50) COMMENT '分类'," +
-                    "calories_per_100g INT COMMENT '每100克卡路里'," +
-                    "cooking_level TINYINT COMMENT '烹饪难度(1=快手,2=中等,3=耗时)'," +
-                    "nutrition_score INT COMMENT '营养密度分(0-100)'," +
-                    "balance_reason VARCHAR(255) COMMENT '均衡化推荐理由'," +
-                    "sort_order INT DEFAULT 0 COMMENT '排序'," +
-                    "created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间'," +
-                    "updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'," +
-                    "UNIQUE KEY uk_family_food (family_id, food_id)," +
-                    "INDEX idx_family (family_id)" +
-                    ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='家庭共餐选中食材'");
-            log.info("迁移354: 已创建 diet_family_selected_ingredients 表");
-        } catch (Exception e) {
-            log.warn("迁移354: 创建 diet_family_selected_ingredients 表失败: {}", e.getMessage());
-        }
-    }
-
     // 迁移355: product_recommendation_log 补齐缺失列
     // 旧库该表由更早版本的建表语句创建(CREATE TABLE IF NOT EXISTS 不会补列),
     // 缺 family_id/was_clicked/was_purchased/clicked_at/purchased_at/updated_at,
@@ -12055,8 +12028,7 @@ log.info("迁移298: 已为无 openid 的 child 账号补齐 family_members 记
         return sb.append(']').toString();
     }
 
-
-    // 迁移354: 家庭共餐选中食材表(持久化共餐场景食材选择)
+    // 迁移359: 家庭共餐选中食材表(持久化共餐场景食材选择)
     private void createDietFamilySelectedIngredientsTable() {
         try {
             jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS diet_family_selected_ingredients (" +
@@ -12077,11 +12049,13 @@ log.info("迁移298: 已为无 openid 的 child 账号补齐 family_members 记
                     "UNIQUE KEY uk_family_food (family_id, food_id)," +
                     "INDEX idx_family (family_id)" +
                     ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='家庭共餐选中食材'");
-            log.info("迁移354: 已创建 diet_family_selected_ingredients 表");
+            log.info("迁移359: 已创建 diet_family_selected_ingredients 表");
         } catch (Exception e) {
-            log.warn("迁移354: 创建 diet_family_selected_ingredients 表失败: {}", e.getMessage());
+            log.warn("迁移359: 创建 diet_family_selected_ingredients 表失败: {}", e.getMessage());
         }
-    }    // 迁移355: 创建减脂专题体重记录表
+    }
+
+    // 迁移355: 创建减脂专题体重记录表
     private void createFatWeightRecordTable() {
         try {
             jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS fat_weight_record (" +
@@ -12167,7 +12141,4 @@ log.info("迁移298: 已为无 openid 的 child 账号补齐 family_members 记
             log.warn("迁移358: 创建fat_goal表失败: {}", e.getMessage());
         }
     }
-
-
- (docs: add fatloss mini-program implementation plan)
 }

+ 1 - 1
cfc-backend/src/main/java/com/etotem/cfc/service/DietIngredientService.java

@@ -80,7 +80,7 @@ public class DietIngredientService {
 
     public Map<String, Object> addIngredient(Long familyId, Long foodId, String name) {
         // 幂等插入
-        Integer count = selectedIngredientMapper.selectCount(
+        Long count = selectedIngredientMapper.selectCount(
                 new LambdaQueryWrapper<DietFamilySelectedIngredient>()
                         .eq(DietFamilySelectedIngredient::getFamilyId, familyId)
                         .eq(DietFamilySelectedIngredient::getFoodId, foodId));