# 提房需求「每家酒店备注 + 每晚备注 + 分住明细」完整转发房务详情 — 修改接口 — 管理后台

> 变更类型：✨ 请求字段新增（每家酒店备注）+ 响应字段新增（房务详情转发结构化数据）
> 端类型：管理后台（定制师 · 调整订单/提房需求 → 房务 · 订单详情）
> 日期：2026-06-20
> 服务：hl-order-service-v3
> PR：https://git.1814.love:8443/wx/HL/pulls/4116

---

## ⚠️ 关键说明（给前端）

定制师「调整订单 / 提房需求」填的结构化数据，要在房务抢单后的订单详情里**完整看到**。本次补齐：每家选的酒店可写备注、每晚可写备注，连同同晚分住的多家酒店全部透传房务。

### 1. 提房需求表单（定制师端，写入）

`PUT /v3/admin/order/{id}/hotel-requirement`，body 里：

| 备注类型 | 字段 | 状态 |
|---|---|---|
| **整单自定义备注** | 顶层 `remark`（≤500） | **早已存在**，前端把那个自定义备注输入框接到它即可（后端无改动） |
| **每晚备注** | `days[].remark`（≤200） | 早已存在 |
| **每家酒店备注** | `days[].hotels[].remark`（≤200） | **本次新增**，每家选的酒店可单独写备注（如「靠湖一侧/含双早/可加床」） |

请求示例：

```json
PUT /v3/admin/order/60001/hotel-requirement
{
  "days": [
    {
      "dayNumber": 1,
      "remark": "当晚整体安排说明",
      "hotels": [
        {"hotelId": 80001, "hotelName": "湖景酒店", "roomCategory": "KING", "roomCount": 2, "budget": 900.00, "remark": "靠湖一侧"},
        {"hotelId": 80002, "hotelName": "山景酒店", "roomCategory": "TWIN", "roomCount": 1, "remark": "含双早（同一晚分住）"}
      ]
    }
  ],
  "specialTags": ["高楼层", "景观房"],
  "remark": "整单自定义备注：客人怕吵"
}
```

### 2. 房务订单详情（房务端，读取 → 抢单后能看到全部）

`GET /admin/house/orders/{orderId}` 的 `requirement.current`（即 `RequirementSnapshot`）：

| 字段 | 说明 | 状态 |
|---|---|---|
| `consultantRemark` | **整单自定义备注**（= 提房的顶层 `remark`） | 早已转发 |
| `specialTags` / `specialTagLabels` | 特殊诉求标签 | 早已转发 |
| `days[].remark` | **当晚备注** | **本次新增转发** |
| `days[].hotels[]` | **当晚定制师选的全部酒店明细**（含同晚分住多家，不再只给 1 家） | **本次新增** |

`days[].hotels[]` 每项（`HotelChoice`）：

| 字段 | 类型 | 说明 |
|---|---|---|
| hotelId | String（雪花） | 定制师指定酒店 ID |
| hotelName | String | 酒店名快照 |
| roomCategory | String | 房型字典 code |
| roomCount | Integer | 房间数 |
| budget | String/null | 预算/晚 |
| remark | String | **每家酒店备注** |

> 兼容：`days[]` 原有的扁平字段（`roomCategory/roomCount/budget/preferredHotelId`，取自当晚第 1 家）**保持不变**，老前端不受影响；本次只是**新增** `days[].remark` 与 `days[].hotels[]` 两项，房务详情其余结构零变化。

---

## 测试

- `HouseDetailAggregatorTest` 21/21 绿（新增 1 例：同晚分住 2 家 + 每家 hotelName/remark + 当晚 remark 完整转发，含既有扁平字段防回归断言）；`RequirementServiceTest` 99/0（VO 加字段无序列化回归）。
- 已部署测试服 order-v3 双实例 success；9443 实测：房务详情端点无回归、提房 VO 接受新 `days[].hotels[].remark`/`days[].remark` 字段。
- 注：测试环境当前无可抢房务单，未在真实订单上观测到转发取值；映射逻辑由单测覆盖。

## 备注

- 网关无需改。
- 定制师端「自定义备注输入框」「每家酒店备注输入框」UI 由前端实现，后端字段已就位。
