Kaynağa Gözat

chore: fix T19 migration order - restore migrateSkuCombo(434) and renumber nutrition to 436; update build artifacts

iwt 1 hafta önce
ebeveyn
işleme
1b7ba5b2e2

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

@@ -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());
         }
     }
 

Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 820
cfc-frontend/package-lock.json


+ 1 - 1
cfc-web/.last_build_commit

@@ -1 +1 @@
-9e66465a8db18141d64d00a52fd94d5403778522
+032e2d13b7694726e9c53c73f2df13327f93b867

+ 2 - 2
cfc-web/package-lock.json

@@ -1,12 +1,12 @@
 {
   "name": "cfc-web",
-  "version": "1.0.1889",
+  "version": "1.0.1890",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "cfc-web",
-      "version": "1.0.1889",
+      "version": "1.0.1890",
       "dependencies": {
         "@wangeditor/editor": "^5.1.23",
         "@wangeditor/editor-for-vue": "^1.0.2",

+ 1 - 1
cfc-web/package.json

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

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

@@ -4,6 +4,51 @@
 
 ---
 
+## v1.0.1892 (2026-10-31)
+
+### 测试
+- 接口冒烟闭环 2026-10-31 16:35 — 通过率 45% (fix=3 reg=1); 测试用例 348/371 完成(文档化71)
+
+### 新功能
+- 商品营养数据与营养标签(合入 328443d43,迁移顺延 417→435)
+
+### 其他
+- - products 表新增 calories_kcal/protein_g/fat_g/carb_g/fiber_g/nutrition_tags(ensureColumn 幂等,schema.sql 同步)
+- - 管理端商品编辑新增「营养信息」区块:数值可空、保存归一化为 null、详情回显
+- - 小程序商品详情新增「营养成分(每100g)」区块:无数据/标签时整块隐藏
+- - 商品列表支持 nutritionTag 筛选;推荐搜索命中 nutrition_tags
+- - 商品编辑支持清空营养字段(显式置 NULL,标签空串归一化为 NULL)
+- - 新增单元测试 4 个类 11 个用例
+- 冲突解决(3 处):
+- - DatabaseInitializer:迁移 417 已被主线「旧 CF 账本存量迁移」占用,顺延为 435(主线最新 434 + 1),
+-   migrateProductNutritionFields 的调用点与日志/注释同步改号
+- - cfc-frontend product-detail.vue:保留主线字号方案 calc(30rpx * var(--font-scale, 1))(bundle-item-qty),叠加本分支营养区块样式
+- - cfc-web ProductEdit.vue:保留主线 purchasePrice(分) 字段,叠加本分支营养字段归一化
+- 验证:mvn clean compile 通过;npm run build:mp-weixin 通过;cfc-web vue-cli-service build 通过;新增单测 4 类全绿。
+- 
+
+
+## v1.0.1891 (2026-10-31)
+
+### 新功能
+- 商品营养数据与营养标签(合入 328443d43,迁移顺延 417→435)
+
+### 其他
+- - products 表新增 calories_kcal/protein_g/fat_g/carb_g/fiber_g/nutrition_tags(ensureColumn 幂等,schema.sql 同步)
+- - 管理端商品编辑新增「营养信息」区块:数值可空、保存归一化为 null、详情回显
+- - 小程序商品详情新增「营养成分(每100g)」区块:无数据/标签时整块隐藏
+- - 商品列表支持 nutritionTag 筛选;推荐搜索命中 nutrition_tags
+- - 商品编辑支持清空营养字段(显式置 NULL,标签空串归一化为 NULL)
+- - 新增单元测试 4 个类 11 个用例
+- 冲突解决(3 处):
+- - DatabaseInitializer:迁移 417 已被主线「旧 CF 账本存量迁移」占用,顺延为 435(主线最新 434 + 1),
+-   migrateProductNutritionFields 的调用点与日志/注释同步改号
+- - cfc-frontend product-detail.vue:保留主线字号方案 calc(30rpx * var(--font-scale, 1))(bundle-item-qty),叠加本分支营养区块样式
+- - cfc-web ProductEdit.vue:保留主线 purchasePrice(分) 字段,叠加本分支营养字段归一化
+- 验证:mvn clean compile 通过;npm run build:mp-weixin 通过;cfc-web vue-cli-service build 通过;新增单测 4 类全绿。
+- 
+
+
 ## v1.0.1890 (2026-10-31)
 
 ### Bug 修复

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

@@ -1,6 +1,6 @@
 # 更新日志
 
-> 当前版本: v1.0.1890
+> 当前版本: v1.0.1892
 
 ## 历史版本
 
@@ -8,6 +8,51 @@
 
 ---
 
+## v1.0.1892 (2026-10-31)
+
+### 测试
+- 接口冒烟闭环 2026-10-31 16:35 — 通过率 45% (fix=3 reg=1); 测试用例 348/371 完成(文档化71)
+
+### 新功能
+- 商品营养数据与营养标签(合入 328443d43,迁移顺延 417→435)
+
+### 其他
+- - products 表新增 calories_kcal/protein_g/fat_g/carb_g/fiber_g/nutrition_tags(ensureColumn 幂等,schema.sql 同步)
+- - 管理端商品编辑新增「营养信息」区块:数值可空、保存归一化为 null、详情回显
+- - 小程序商品详情新增「营养成分(每100g)」区块:无数据/标签时整块隐藏
+- - 商品列表支持 nutritionTag 筛选;推荐搜索命中 nutrition_tags
+- - 商品编辑支持清空营养字段(显式置 NULL,标签空串归一化为 NULL)
+- - 新增单元测试 4 个类 11 个用例
+- 冲突解决(3 处):
+- - DatabaseInitializer:迁移 417 已被主线「旧 CF 账本存量迁移」占用,顺延为 435(主线最新 434 + 1),
+-   migrateProductNutritionFields 的调用点与日志/注释同步改号
+- - cfc-frontend product-detail.vue:保留主线字号方案 calc(30rpx * var(--font-scale, 1))(bundle-item-qty),叠加本分支营养区块样式
+- - cfc-web ProductEdit.vue:保留主线 purchasePrice(分) 字段,叠加本分支营养字段归一化
+- 验证:mvn clean compile 通过;npm run build:mp-weixin 通过;cfc-web vue-cli-service build 通过;新增单测 4 类全绿。
+- 
+
+
+## v1.0.1891 (2026-10-31)
+
+### 新功能
+- 商品营养数据与营养标签(合入 328443d43,迁移顺延 417→435)
+
+### 其他
+- - products 表新增 calories_kcal/protein_g/fat_g/carb_g/fiber_g/nutrition_tags(ensureColumn 幂等,schema.sql 同步)
+- - 管理端商品编辑新增「营养信息」区块:数值可空、保存归一化为 null、详情回显
+- - 小程序商品详情新增「营养成分(每100g)」区块:无数据/标签时整块隐藏
+- - 商品列表支持 nutritionTag 筛选;推荐搜索命中 nutrition_tags
+- - 商品编辑支持清空营养字段(显式置 NULL,标签空串归一化为 NULL)
+- - 新增单元测试 4 个类 11 个用例
+- 冲突解决(3 处):
+- - DatabaseInitializer:迁移 417 已被主线「旧 CF 账本存量迁移」占用,顺延为 435(主线最新 434 + 1),
+-   migrateProductNutritionFields 的调用点与日志/注释同步改号
+- - cfc-frontend product-detail.vue:保留主线字号方案 calc(30rpx * var(--font-scale, 1))(bundle-item-qty),叠加本分支营养区块样式
+- - cfc-web ProductEdit.vue:保留主线 purchasePrice(分) 字段,叠加本分支营养字段归一化
+- 验证:mvn clean compile 通过;npm run build:mp-weixin 通过;cfc-web vue-cli-service build 通过;新增单测 4 类全绿。
+- 
+
+
 ## v1.0.1890 (2026-10-31)
 
 ### Bug 修复

Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor