# 配房「选择酒店」弹窗三连修（① 定制师点名标记·后端已修上线 ② 分页·前端 ③ 售价列·前端）

> 变更类型：① ✅ 后端修接口行为(已部署测试服 + 网关 API 实测) ② / ③ 📖 前端待办(后端无改动)
> 端类型：管理后台（房务管家·配房「选择酒店」弹窗）
> 日期：2026-06-25 ｜ 工单/PR：① #4373 / #4374 ｜ 服务：hl-order-service-v3
> 关联：承接 #4363(默认不按城市) / #4367(选房型房间数)。本篇修「定制师点名多家只标一家」+ 列出分页/售价两个前端 bug。

---

## ① 定制师点名标记：后端已修（前端可不传 preferredHotelId）

**现象**：定制师在用房需求里点名多家候选酒店（房控择一），弹窗候选列表只有第一家标「定制师推荐」，其余漏标。

**根因（抓包实证）**：前端 `GET /v3/admin/hotel-candidates` 只传单个 `preferredHotelId` → 后端只标这一个。

**后端修复（已上线测试服）**：hotel-candidates 改为**按 `orderId` + `dayNumber` 自动查当前生效用房需求、标记当天全部定制师点名候选**，且只标当天、不跨天。

**前端动作（可选简化，不改也能工作）**：
- 调 hotel-candidates **只需传 `orderId` + `dayNumber`**（`roomCount` 可选），后端即自动把当天定制师点名的全部候选标 `isConsultantRecommended=true`。
- `preferredHotelId` / `requirementId` 可不再传（传了也兼容，但不再是标记的唯一来源）。
- 实测 order 2069593503129636865：`dayNumber=1` → 标 2 家（海拉尔海棠+香格里拉）；`dayNumber=2` → 标 1 家（海拉尔嘉世豪），不含 DAY1 候选。

## ② 弹窗「共 N 条」与分页错误（前端 bug，后端无改动）

**现象**：弹窗底部「共 8 条」与实际不符；分页不可用。

**定位**：后端 hotel-candidates **无 total / 分页字段**，`data.candidates` 是**完整数组**（实测不传 city 返 **21 条**全部在售）。「共 8 条」是前端把 pageSize(8) 当成了 total。

**前端动作**：
- 「共 N 条」**= `data.candidates.length`**（不要写死 8、不要拿 pageSize 当 total）。
- 需要分页就对完整数组做**纯前端分页**（后端一次性返全部、已按推荐度排好序）；不需要分页可直接滚动渲染全部。

## ③ 列表「售价」列：去掉，改到选中酒店后填写（默认协议价）（前端，后端无改动）

**现象 / 诉求**：候选列表显示了「售价」列（值=协议价镜像）。结算价不应在候选列表预显示，应在**选中酒店后填写**、默认用协议价。

**定位**：后端 candidate VO **只返协议价 `protoPrice`，本就没有「售价」字段**——列表那列「售价」是前端用协议价镜像出来的。

**前端动作**：
- 候选列表**去掉「售价」列**，只展示协议价 `protoPrice`（参考价）。
- 把「结算价」输入挪到**选中酒店后的填写环节**（与房型下拉 + 房间数一起，见 #4367），**默认值 = 该酒店/房型协议价**（`protoPrice` 或 `roomTypes[].protocolPrice`）。
- 提交时仍带 `AssignmentItemReqVO.sellPrice`（房务填的结算价，后端早支持，无改动）。

---

## 说明
- ① 已部署测试服并网关 API 实测通过；②③ 后端无改动，纯前端弹窗交互修正。
- 「同步结算价到协议价」开关为另一独立后端工单（随后单独 changelog），本篇不含。
