|
|
@@ -3398,7 +3398,10 @@ insertSysConfigSeed("gift_membership_pay_price", "198000", "送会员商品达
|
|
|
// 迁移433: 家庭指标聚合方式配置表(五维能量汇总/珍珠图/章鱼图汇集配置)
|
|
|
createFamilyMetricAggConfigTable();
|
|
|
|
|
|
- // 迁移435: products 表添加营养数据字段(热量/蛋白质/脂肪/碳水/膳食纤维/营养标签)
|
|
|
+ // 迁移434: SKU商品组合明细表 + 订单记录下单SKU(组合SKU识别)
|
|
|
+ migrateSkuCombo();
|
|
|
+
|
|
|
+ // 迁移436: products 表添加营养数据字段(热量/蛋白质/脂肪/碳水/膳食纤维/营养标签)
|
|
|
migrateProductNutritionFields();
|
|
|
}
|
|
|
|
|
|
@@ -3512,14 +3515,14 @@ insertSysConfigSeed("gift_membership_pay_price", "198000", "送会员商品达
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 迁移435:products 表添加营养数据字段。
|
|
|
+ * 迁移436:products 表添加营养数据字段。
|
|
|
* <p>商品营养数据用于管理端录入、小程序详情页展示与推荐按营养标签筛选。
|
|
|
* 全部字段允许为 NULL(NULL = 未配置),迁移幂等可重复执行。
|
|
|
- * <p>编号说明:原分支为迁移417,合入主线时 417 已被「旧 CF 账本存量迁移」占用,顺延至主线最新 434 + 1 = 435。
|
|
|
+ * <p>编号说明:原分支为迁移417,合入主线时 417 已被「旧 CF 账本存量迁移」占用,顺延至主线最新 435 (product_bundle_items放开可空) + 1 = 436。
|
|
|
*/
|
|
|
private void migrateProductNutritionFields() {
|
|
|
if (!tableExists("products")) {
|
|
|
- log.warn("迁移435: products 表不存在,跳过营养数据字段迁移");
|
|
|
+ log.warn("迁移436: products 表不存在,跳过营养数据字段迁移");
|
|
|
return;
|
|
|
}
|
|
|
try {
|
|
|
@@ -3529,9 +3532,9 @@ insertSysConfigSeed("gift_membership_pay_price", "198000", "送会员商品达
|
|
|
ensureColumn("products", "carb_g", "DECIMAL(10,2) DEFAULT NULL COMMENT '碳水化合物(g/100g),NULL=未配置'");
|
|
|
ensureColumn("products", "fiber_g", "DECIMAL(10,2) DEFAULT NULL COMMENT '膳食纤维(g/100g),NULL=未配置'");
|
|
|
ensureColumn("products", "nutrition_tags", "VARCHAR(255) DEFAULT NULL COMMENT '营养标签,逗号分隔(如\"低糖,高蛋白\"),NULL=无标签'");
|
|
|
- log.info("迁移435: products 表营养数据字段已就绪");
|
|
|
+ log.info("迁移436: products 表营养数据字段已就绪");
|
|
|
} catch (Exception e) {
|
|
|
- log.warn("迁移435: products 表营养数据字段迁移失败: {}", e.getMessage());
|
|
|
+ log.warn("迁移436: products 表营养数据字段迁移失败: {}", e.getMessage());
|
|
|
}
|
|
|
}
|
|
|
|