diff --git a/changelogs-v2/2026-06/23_4256_4266_4274_房务守卫一致性审计修复_询房守卫+终态闸口+按钮enable_管理后台.md b/changelogs-v2/2026-06/23_4256_4266_4274_房务守卫一致性审计修复_询房守卫+终态闸口+按钮enable_管理后台.md new file mode 100644 index 0000000..2803d55 --- /dev/null +++ b/changelogs-v2/2026-06/23_4256_4266_4274_房务守卫一致性审计修复_询房守卫+终态闸口+按钮enable_管理后台.md @@ -0,0 +1,54 @@ +# 【修改接口·管理后台】房务守卫一致性审计修复:询房守卫 + 配房终态闸口 + 详情按钮 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 房务态。