# 【修改接口·管理后台】房务守卫一致性审计修复：询房守卫 + 配房终态闸口 + 详情按钮 enable 对齐 (#4256/#4266/#4274)

> **PR**: #4256 / #4266 / #4274 | **服务**: hl-order-service-v3 | **更新**: 2026-06-23
> **前端**: @mmg —— 涉及新错误码 + 详情按钮可用性语义变化，需配合。
> 来源：房务模块整体逻辑审计（4 路只读审计），本批修守卫/状态一致性，均已部署测试服 + API 实测。

## 1. 询房三写口补归属守卫（#4256）
此前**配房**已要求「抢单且本人」，但**询房 send/reply/escalate 完全无归属守卫**——任何房务可对他人抢的/没人抢的单发询问、回填、加急。本次补齐（与配房同口径）：

| 接口 | 方法 | 路径 | 变更 |
|---|---|---|---|
| 发起询房 | POST | /v3/admin/order/inquiry/send | 未抢单→808116 / 被他人抢→808110 |
| 回填询房 | POST | /v3/admin/order/inquiry/{inquiryId}/reply | 同上 |
| 询房加急 | POST | /v3/admin/order/inquiry/{inquiryId}/escalate | 同上 |

- reply 转配房（convertToAssignment=true）此前**不扣 resource 库存**（可超卖）→ 已补齐与配房一致的库存硬扣（不足直接拒）。

## 2. 配房终态闸口（#4266）
配房**最终确认（house_status=CONFIRMED）后**仍可静默改/删/换已确认配房 → 收紧：

| 接口 | 变更 |
|---|---|
| 修改配房 PUT /assignments/{id} | CONFIRMED 后拒绝，**808121** |
| 删除配房 DELETE /assignments/{id} | 同上 |
| 房间分配 POST /assignments/{id}/rooms | 同上 |
| 换酒店 commit | 同上（经 EXCEPTION 态的合法换店不受影响） |

> 如需变更已确认配房，请由定制师重新调整需求（DONE_ADJUST）。

## 3. 详情按钮 enable 与守卫对齐（#4266）—— 前端按 enabled 渲染即可
`GET /admin/house/orders/{orderId}` 的 `actions` 此前 `canFinalize`/`canTransfer` 的 enabled 与接口实际守卫不一致（按钮亮但点了报错）。本次对齐：

| action | enabled 旧 | enabled 新（与接口同源） |
|---|---|---|
| `canFinalize` | 天数配齐 | `house_status==PENDING_FINALIZE`（有未闭环询问/已确认时为 false） |
| `canTransfer` | 恒 true | `isMine`（本人持有才 true，附 disabledReason「仅本人持有的订单可转单」） |

- **前端**：直接按各 action 的 `enabled` / `disabledReason` 置灰即可（现为真实可用性）；命中 808116/808110/808121 按 message 提示，不要静默失败。

## 4. 错误码
| code | 含义 | 本次 |
|---|---|---|
| **808116** | 订单未抢单, 请先抢单再配房（询房/配房通用前置） | 询房接入（配房 #4231 已有） |
| **808121** | 配房已最终确认, 不可直接修改; 如需变更请由定制师重新调整需求 | **新增** |
| 808110 | 需求不属于当前用户（被他人抢） | 询房接入 |

## 5. 后端数据修复（#4274，无直接前端契约变化）
- 定制师完成版重调需求（DONE_ADJUST）后旧配房实配此前不软删→孤儿+库存泄漏，已修（软删旧实配+restore 库存，车房对称）。前端读配房列表将不再混入废弃旧版实配。
- finalize 此前在订单 trip_nights 为空时不可达死锁，已改用需求自身天数判定，恒可达。

## 6. 关联
- **PR**: [#4256](https://git.1814.love:8443/wx/HL/pulls/4256) / [#4266](https://git.1814.love:8443/wx/HL/pulls/4266) / [#4274](https://git.1814.love:8443/wx/HL/pulls/4274)（房务整体审计驱动，无关联 Issue）
- **后端**: @wx ｜ **前端**: @mmg
- 未纳入（设计向待定）：取消订单后房务态彻底回退需新增 CANCELLED 房务态。
