hl-api-changelog/changelogs-v2/2026-05/30_3294_服务标准条目6字段进快照修复_PR3295.md

3.5 KiB

二期 v3修复服务标准条目 remark/color/contactName/phone 四字段下单时丢失(恒为 null

服务: hl-order-service-v3 PR: #3295 Issue: #3294 日期: 2026-06-01 影响: 🟢 缺陷修复,无契约变更。订单详情「服务标准」Tab 的条目,此前 remark / color / contactName / phone 四字段因后端缺陷恒为 null,本次修复后新建订单会正确返回这四个字段的真实值。响应结构不变,前端无需改代码,原本就该读这四字段的渲染逻辑现在能拿到数据。


总览(前端 mmg 必读)

接续 PR #3254/#3255/#3256服务标准模板改 6 字段),那一期把产品侧服务标准升级到 6 字段条目,但下单写订单快照的中间环节漏跟进

订单详情服务标准来自下单时冻结的产品快照(order_product_snapshot)。该快照由订单服务接收产品 Feign 数据后整体序列化,但订单侧接收用的 VO 还停留在旧 3 字段(title / content / contact),导致产品发来的 remark / color / contactName / phone 在反序列化时被静默丢弃,冻进快照只剩 title + content

结果:所有订单详情服务标准 Tab 的条目这 4 个字段恒为 null。本次补齐订单侧 VO 字段,使整条服务标准 6 字段完整进快照。


受影响接口(响应行为修正,无字段增减)

GET /v3/admin/order/{id}/service-standard

响应 data.serviceStandard.sections[].items[] 条目,6 字段修复前后对比:

// 修复前4 字段恒 null
{
  "title": "专业司机",
  "content": "持有A1驾照,8年以上驾龄",
  "remark": null,        // ❌ 恒 null
  "color": null,         // ❌ 恒 null
  "contactName": null,   // ❌ 恒 null
  "phone": null          // ❌ 恒 null
}

// 修复后(新建订单)
{
  "title": "专业司机",
  "content": "持有A1驾照,8年以上驾龄",
  "remark": "仅限指定时段",      // ✅
  "color": "#FF6600",           // ✅
  "contactName": "李师傅",       // ✅
  "phone": "13800000000"        // ✅
}

字段名、类型、嵌套层级完全不变,仅是原本恒 null 的值现在有了真实数据。


重要边界:只对「新建订单」生效

  • 快照是下单时间点的冻结值,修复部署前已生成的历史订单快照仍只有 title + content,这 4 字段对老订单仍为 null(不回填,符合快照语义)。
  • 修复部署后新建的订单,服务标准 6 字段完整。
  • 前端渲染需对这 4 字段做 null 容错(老订单仍可能为 null,有值即展示。

测试服验证(已通过)

部署 dev-v3 后端到端实测:建含 6 字段服务标准模板的产品订单 → GET .../service-standard 与 DB 快照 snapshot_content 双查,6 字段(含 remark/color/contactName/phone全部正确返回。


影响评估

  • 后端hl-order-service-v3 改 1 个传输 VOProductDetailVO.ServiceStandard.Item 补 4 字段、删废弃 contact+ 1 个端到端回归测试。无 DB 改动,重启生效。
  • 前端:无需改代码,原服务标准 Tab 条目渲染逻辑现在能拿到 4 个新字段值。
  • mp 端:本次未涉及。

关联

  • Issue: #3294
  • PR: #3295 - fix(order-v3): 补齐服务标准条目 6 字段,使下单快照完整冻结
  • 前置: PR #3254/#3255/#3256服务标准模板改 6 字段)