# 【修改接口·管理后台】房务订单详情「操作日志」记录定制师提交/调整需求 (#4246)

> **PR**: #4246 | **服务**: hl-order-service-v3 | **更新**: 2026-06-22
> 姊妹项：#4239（内部留言计入定制师需求）。本次给「操作日志」tab 补上定制师提需求轨迹。

## 1. 背景（房务测试反馈）
房务订单详情弹窗「操作日志」tab 应记录定制师提交需求的轨迹（对齐产品操作日志），此前恒空（计数 0 + 暂无）。`house_operation_log` 历来只记房务侧动作（抢单/转单/配房/询房/最终确认），定制师提需求不在其中。

## 2. 变更（读侧合成，对存量订单立即生效）
定制师提需求的真实记录 = `order_hotel_requirement` 版本历史（每个 version 行 = 一次提交）。后端读「操作日志」时即时合成这些条目，与真实 `house_operation_log` 行合并返回。

| 接口 | 方法 | 路径 | 变更 |
|---|---|---|---|
| 操作日志列表 | GET | /v3/admin/house/orders/{orderId}/operation-log | 返回项新增「定制师提需求」合成条目（op_type=`REQUIREMENT_SUBMIT`），与真实日志行按时间倒序合并；total/summary 计入 |
| 订单详情聚合 | GET | /admin/house/orders/{orderId} | `tabCounts.operationLogCount` 由恒 0 改为真值（真实日志行数 + 需求版本数） |

## 3. 合成条目结构（与真实日志行同 VO）
- `opType` = `REQUIREMENT_SUBMIT`，`opTypeLabel` = 「定制师提交需求」。
- `time` = 该需求版本提交时刻（submittedAt）。
- `operator.userId/name` = 定制师（consultantId / consultantName，缺名兜底「定制师」）。
- `summary` = v1「定制师提交房型需求 v1」；高版本「定制师调整房型需求 v{n}」。
- `detail` = orderId + requirementId（便于跳转）。
- `id` = null（合成项无 house_operation_log 主键；前端可据 `opType=REQUIREMENT_SUBMIT` 区分合成 vs 真实行）。

## 4. 前端处理建议
- 「操作日志」tab 直接渲染列表项即可（新 op_type `REQUIREMENT_SUBMIT` 随列表返回，按 `opTypeLabel`/`summary` 展示）；无需单独取数。
- tab 徽标计数读 `tabCounts.operationLogCount`（现为真值）。
- 若需视觉区分「定制师提需求」与房务侧动作，可按 `opType=REQUIREMENT_SUBMIT` 或 `id==null` 判定。

## 5. 说明 / 兼容
- 纯读侧合成，不写新表、不改既有日志写入；草稿改（version 不增）按设计不单列，首版 + 各次完成版调整各一条。
- 加性变更：原有真实日志行展示不变。

## 6. 关联
- **PR**: [#4246](https://git.1814.love:8443/wx/HL/pulls/4246)（房务测试反馈驱动，无关联 Issue）
- **后端负责人**: @wx ｜ **前端**: @mmg
