# 二期 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 字段修复前后对比：

```jsonc
// 修复前（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 个传输 VO（`ProductDetailVO.ServiceStandard.Item` 补 4 字段、删废弃 `contact`）+ 1 个端到端回归测试。无 DB 改动，重启生效。
- **前端**：无需改代码，原服务标准 Tab 条目渲染逻辑现在能拿到 4 个新字段值。
- **mp 端**：本次未涉及。

---

## 关联

- **Issue**: [#3294](https://git.1814.love:8443/wx/HL/issues/3294)
- **PR**: [#3295](https://git.1814.love:8443/wx/HL/pulls/3295) - fix(order-v3): 补齐服务标准条目 6 字段，使下单快照完整冻结
- **前置**: PR #3254/#3255/#3256（服务标准模板改 6 字段）
