# 修复:人工修改标签后 SKU 无法自动合并 + 后台频繁掉线 - 日期:2026-09-02 - 分支:`bugfix/family-auto-merge-auth-cookie-yeuimu` - 状态:已完成(2026-09-02,全量测试 187+22 通过) ## 现象与根因(数据实证) ### 问题2:人工修改标签后 SKU 无法自动合并(GBIU017 案例) 排查(v2 库 + 部署镜像比对)确认四处叠加缺陷: 1. **旧词表「热转印」不在矩阵封闭词表**:16 条人工接管标签的链接(GBIU014/15/16、 USIU002/005/012、JPIU014/20/21、GBIU009 等)勾的工艺词是旧词「热转印」,而 `memberMatrixCombos` 只认 烫画/直喷/不打印 → 这些链接的 SKU 全部被静默踢出合并矩阵。 线上 v2 镜像被人直接把 热转印 塞进 `DIM_VALUES` 救急(**未提交**,镜像与仓库分叉)。 2. **人工标签缺维度无守护**:`updateTags` 全量替换为人工勾选行,缺任一定价维度组 (印花数量/工艺/物流)时链接掉出矩阵,且 `tagsManual=true` 后整理永不补 → 死锁。 3. **自动建族只建不并**:`autoGroup` 只扫 `familyId=null` 链接且直接新建族(撞款号加 -2/-3 后缀),从不并入已有族 → USIU005 分裂成 USIU005 / USIU005-2,整理无法修复。 4. **名称回退分组键含物流备注**:`originGroupKey` 前 3 段精确比较,第 1 段括号内即 包邮/不包邮 → 无分类链接永不同组;admin `sameOriginGroup`(合并默认勾选)同语义。 GBIU017 本身(v2 库)两条链接已同族且矩阵正常(4 行),用户"后来看到"系 18:00 手动 挂族操作 + 页面缓存,非计算延迟。 ### 问题1:后台频繁「Unauthorized, please login」 refresh cookie `path:'/auth'`(auth.controller.ts)与浏览器实际请求路径 `/api/auth/*`(dev/Vite、v1)或 `/v2-api/auth/*`(v2 nginx)永不匹配 → 浏览器带不上 refresh cookie → 30 分钟访问令牌一过期必掉线。v2 构建另有 `VITE_API_BASE=/v2-api/` (尾斜杠)+ request.ts 手工拼接 → `/v2-api//auth/refresh` 双斜杠 404(已在生产包中实证)。 ## 实施内容 | # | 内容 | 文件 | | --- | --- | --- | | A1 | updateTags 缺啥补啥:三个维度组按链接名派生补齐(人工值优先);响应返回补齐明细 | origin-goods.service.ts / organize.service.ts | | A2 | 保存标签后自动归族:无族链接并入匹配已有族(同 SDS 分类优先→规范名称键;仅 autoManaged 族),响应附 attachedFamilyId | product-families.service.ts | | A3 | autoGroup 并入已有族:分组后先匹配已有族(多候选取最老),无匹配才新建;attach 联动 goods.familyId;preview 标注并入/新建 | product-families.service.ts | | A4 | 名称键族语义化:api/admin 新增 familyNameKey(第 1 段剥物流备注、全半角归一、保 国家+品名+SKU、丢工艺/仓库段);autoGroup 回退键与 admin sameFamily 回退改用它 | origin-name.parser.ts / admin utils/origin-name.ts、family-match.ts | | A5 | 整理碎片清理:同分类多族时,纯碎片族(无商品、无覆盖价、autoManaged)并入最老族并删除;其余写报告提示人工 | organize.service.ts | | A6 | admin 提示:保存标签提示补齐明细;整理完成消息含碎片合并/待人工数 | GoodsEditDialog.vue / GoodsView.vue | | 别名 | 热转印→烫画 归一(矩阵归因 + CUSTOM 标签 + admin 展示),写进仓库取代镜像热修 | auto-tag-rules.ts / family-recompute.service.ts / admin | | B | 两 cookie path 改 '/'(clearCookie 同步);request.ts refresh URL 规范拼接 | auth.controller.ts / admin api/request.ts | ### 存量数据修复(部署后) 1. 从仓库重建 v2 镜像(消除未提交热修分叉)。 2. 跑一次「整理」:无族链接自动并入;USIU005-2(若为纯碎片)自动合并;16 条 热转印 链接经别名归一后重算进矩阵(矩阵 craft 列统一为 烫画)。 3. 若有带商品/覆盖价的碎片族,按整理报告人工移动成员(编辑弹窗「加入族」已支持跨族移动)。 ### 行为变更说明 - 人工接管语义从"全量替换"变为"人工修正 + 缺维自动补齐"(人工勾选值永不被动)。 - 名称回退分族:同 国家+品名+SKU 的 包邮/不包邮/不同工艺 链接归一族(物流/工艺/印花 是矩阵维度,不是分族维度);分类键优先级不变。