文件
hl-api-changelog/changelogs-v2/2026-09/26_8387_下线订单房间分配三口-删除接口-管理后台.md
T
Mimingguang bcfe323b60
changelog-filename-gate / validate (push) Failing after 1s
docs(changelog): 回写 #8385~#8390 前端 not_required(6 条 grep 实证零改动)
88caa74 房务接口审计批次:#8385 订房计划守卫/#8386 住宿驳回加门+删车务口/#8387 旧房间分配三口下线/#8388 回执认领校验+读门/#8389 家庭维度写口下线/#8390 16 读端点补门+菜单撤授。前端按钮后端字段驱动+错误码拦截器透 message+被删端点零调用/入口仅房务角色页,6 条均 not_required;#8387/#8389 后端已标,余 4 条翻 not_required,owner/ref 留空,status_note 引号内追充实证。
2026-09-27 09:55:25 +08:00

11 KiB
原始文件 Blame 文件历史

schema, ticket, title, consumer, author, change_type, backend_status, gateway_status, frontend_status, frontend_owner, frontend_ref, target_release, verified_at, status_note, updated_at, base
schema ticket title consumer author change_type backend_status gateway_status frontend_status frontend_owner frontend_ref target_release verified_at status_note updated_at base
hl-changelog/v2 8387 订单房间分配:下线旧版三接口 GET/POST/PUT /v3/admin/order/{id}/room admin wx(GIT) 删除接口 deployed verified not_required 订单侧旧版房间分配三个端点(GET list、POST add、PUT edit)已下线。API-SPEC 已标旧版,房务配房走 house 域 §2.5 接口。hl-ui 零调用。前端实证(mmg 2026-09-27):被删三口零调用(仅 /order/{id}/room-info/check-diff 不同路径),not_required 复核确认。 2026-09-26 dev-v3

order-v3:下线订单房间分配旧版接口(管理后台)

服务: hl-order-service-v3
PR: #8398
Issue: #8387


⚠️ 关键变化

三个接口已删除,路由不存在:

  • GET /v3/admin/order/{id}/room:查询订单房间分配列表(旧版)
  • POST /v3/admin/order/{id}/room:新增房间分配(旧版)
  • PUT /v3/admin/order/{id}/room/{roomAssignmentId}:编辑房间分配(旧版)

调用返回 HTTP 200 + code: 404(不是 HTTP 404)。房务配房改用 house 域接口:新增/清空配房走 POST/DELETE /v3/admin/order/hotel-requirements/{requirementId}/assignments 等 API-SPEC-HOUSE §2.2~§2.4c 写口;查询订单房间用 GET /v3/admin/order/orders/{orderId}/rooms(§2.5)。


一、背景

订单侧房间分配(order_room_assignment 表)是房务配房的补充记录,实现早于 house 域统一接口。API-SPEC §8 已标为"旧版",注释指向 house 域 §2.5 为正式接口。

hl-ui 全部远程 ref 无调用;房务页面已改用 house 域配房端点。后台读写入口全删,仅保留 internal bundle 读——house 域 RoomAssignmentVO 与 hl-mp-service 的 C 端聚合仍需 order_room_assignment 表数据,故表与内部读逻辑保留,仅删对外读写接口。


二、变更接口清单

# 接口 方法 路径 变更类型 说明
1 查询房间分配列表(旧) GET /v3/admin/order/{id}/room 删除 路由已删,任何调用返回 404
2 新增房间分配(旧) POST /v3/admin/order/{id}/room 删除 路由已删,返回 404
3 编辑房间分配(旧) PUT /v3/admin/order/{id}/room/{roomAssignmentId} 删除 路由已删,返回 404

房务配房改用 house 域接口(API-SPEC-HOUSE):提交配房 POST /v3/admin/order/hotel-requirements/{requirementId}/assignments(§2.2)、清空配房 DELETE .../assignments(§2.4b/§2.4c)、按天确认 POST .../assignments/days/{dayNumber}/confirm(§2.3)、调整入住 PUT .../assignments/{id}/placement(§2.3b);查询订单房间用 GET /v3/admin/order/orders/{orderId}/rooms(§2.5)。


三、接口详情

1. 房间分配查询 GET /v3/admin/order/{id}/room

VO: 已删除

状态:已删除。路由不存在,返回 404。

使用场景

该接口已删除。

入参字段表

字段 位置 类型 必填 约束 说明
— — — — — 已删除

出参字段表

字段 类型 说明
— — 已删除

请求示例

GET /v3/admin/order/770145/room HTTP/1.1
Host: api.test.1814.love:9443
Authorization: Bearer <admin token>

响应示例

HTTP 状态码 200(非 404),业务错误码 404:

{
  "code": 404,
  "message": "接口不存在: GET /v3/admin/order/770145/room",
  "success": false,
  "data": null
}

空数据 / 降级响应

不适用。前端应只判 code,不依赖 HTTP 状态码。

错误响应

{
  "code": 404,
  "message": "接口不存在: GET /v3/admin/order/770145/room",
  "success": false,
  "data": null
}

业务边界

  • 接口已删除,路由不存在;调用返回 HTTP 200 + code: 404。
  • 阳性对照:同 Controller 下 GET /v3/admin/order/{id} 正常返回 200,证明是该路由本身被删,不是订单不存在。
  • order_room_assignment 表数据仍可由服务内部通过 internal/order/orders/{orderId}/assignments 读取(该 internal 端点经网关直接拒绝「接口不可访问」,只服务间可达,不对前端暴露)。

2. 房间分配新增 POST /v3/admin/order/{id}/room

VO: 已删除

状态:已删除。路由不存在,返回 404。

使用场景

该接口已删除。

入参字段表

字段 位置 类型 必填 约束 说明
— — — — — 已删除

出参字段表

字段 类型 说明
— — 已删除

请求示例

POST /v3/admin/order/770145/room HTTP/1.1
Host: api.test.1814.love:9443
Authorization: Bearer <admin token>
Content-Type: application/json

{}

响应示例

HTTP 状态码 200(非 404),业务错误码 404:

{
  "code": 404,
  "message": "接口不存在: POST /v3/admin/order/770145/room",
  "success": false,
  "data": null
}

空数据 / 降级响应

不适用。前端应只判 code,不依赖 HTTP 状态码。

错误响应

{
  "code": 404,
  "message": "接口不存在: POST /v3/admin/order/770145/room",
  "success": false,
  "data": null
}

业务边界

  • 路由已删除;调用返回 HTTP 200 + code: 404。
  • 新增房间分配改走 house 域 POST /v3/admin/order/hotel-requirements/{requirementId}/assignments(API-SPEC-HOUSE §2.2)。

3. 房间分配编辑 PUT /v3/admin/order/{id}/room/{roomAssignmentId}

VO: 已删除

状态:已删除。路由不存在,返回 404。

使用场景

该接口已删除。

入参字段表

字段 位置 类型 必填 约束 说明
— — — — — 已删除

出参字段表

字段 类型 说明
— — 已删除

请求示例

PUT /v3/admin/order/770145/room/123456 HTTP/1.1
Host: api.test.1814.love:9443
Authorization: Bearer <admin token>
Content-Type: application/json

{}

响应示例

HTTP 状态码 200(非 404),业务错误码 404:

{
  "code": 404,
  "message": "接口不存在: PUT /v3/admin/order/770145/room/123456",
  "success": false,
  "data": null
}

空数据 / 降级响应

不适用。前端应只判 code,不依赖 HTTP 状态码。

错误响应

{
  "code": 404,
  "message": "接口不存在: PUT /v3/admin/order/770145/room/123456",
  "success": false,
  "data": null
}

业务边界

  • 路由已删除;调用返回 HTTP 200 + code: 404。
  • 编辑房间分配改走 house 域 PUT /v3/admin/order/hotel-requirements/{requirementId}/assignments/{id}/placement(API-SPEC-HOUSE §2.3b)。

四、契约约束与正确调用方式

场景 改前 改后
查看订单的房间 GET /v3/admin/order/{orderId}/room 调用返回 HTTP 200 + code 404;改用 GET /v3/admin/order/orders/{orderId}/rooms(API-SPEC-HOUSE §2.5)
新增房间 POST /v3/admin/order/{orderId}/room 路由已删,不可用;改用 POST /v3/admin/order/hotel-requirements/{requirementId}/assignments(§2.2)
修改房间 PUT /v3/admin/order/{orderId}/room/{id} 路由已删,不可用;改用 PUT /v3/admin/order/hotel-requirements/{requirementId}/assignments/{id}/placement(§2.3b)

C 端房型统计(GET /mp/order/{orderId}/hotels)的 roomTypeStats 仍从 order_room_assignment 表经 internal bundle(hl-mp-service MpServiceDetailAggregationService)汇聚,对外无变化。internal 端点仅服务间可达,网关对前端直接拒绝「接口不可访问」。


五、数据库行为

无变更、无 Flyway。表 order_room_assignment 保留;存量数据由 internal bundle 继续读取。


六、边界行为

场景 行为
调用 GET /order/{id}/room 返回 HTTP 200 + code 404
调用 POST /order/{id}/room 返回 HTTP 200 + code 404
调用 PUT /order/{id}/room/{roomAssignmentId} 返回 HTTP 200 + code 404
前端经网关调用 GET /v3/internal/order/orders/{orderId}/assignments 网关直接拒绝,返回「接口不可访问」(设计如此,非前端可用入口)
调用 GET /mp/order/{orderId}/hotels 返回 200,roomTypeStats 从 order_room_assignment 经 internal bundle 读

六.6、修改前后对比

维度 改前 改后
房间分配 GET 路由存在,可查询 路由删除,返回 HTTP 200 + code 404
房间分配 POST 路由存在,可新增 路由删除,返回 HTTP 200 + code 404
房间分配 PUT 路由存在,可编辑 路由删除,返回 HTTP 200 + code 404

六.7、影响评估

  • 兼容性:hl-ui 零调用这三个端点,无迁移负担。C 端房型统计无变化(经 internal bundle)。
  • 数据影响:零;表与 API 读逻辑保留。
  • 其它服务:hl-mp-service 无直接调用;fleet 无影响。

七、不影响范围

  • House 域房间分配接口(§2.5 GET/POST/DELETE):无改动。
  • Internal bundle (GET /v3/internal/order/orders/{orderId}/assignments):保留,继续供 hl-mp-service 读。
  • order_room_assignment 表:保留;级联软删仍在各写口生效。
  • RoomAssignmentVO 与 toRoomVO:保留(bundle 在用)。
  • 网关配置:无改动。

八、测试环境已验证

部署:测试环境 order-v3 1f65d7894(含 e2313790b)。网关 api.test.1814.love:9443。

# 场景 实测结果
1 GET /v3/admin/order/{id}/room HTTP 200 + code 404「接口不存在: …」
2 POST /v3/admin/order/{id}/room HTTP 200 + code 404「接口不存在: …」
3 PUT /v3/admin/order/{id}/room/{roomAssignmentId} HTTP 200 + code 404「接口不存在: …」
4 阳性对照:同 Controller GET /v3/admin/order/{id} 200(证明是路由被删,不是订单不存在)
5 服务内部端口直连读 order_room_assignment(internal bundle) 读数与只读 SQL 一致(经网关 internal 不可达,这是设计)

调用来源:测试网关 nginx 日志窗口内旧 room 三路径共 71 次,全部是脚本(Python-urllib / curl / 空 UA),零浏览器 UA。


十、相关文档

  • Issue:wx/HL#8387
  • PR:wx/HL#8398
  • 替代接口:写房间分配走 API-SPEC-HOUSE §2.5 的配房接口(POST /v3/admin/order/hotel-requirements/{requirementId}/assignments 等);读订单房间用 GET /v3/admin/order/orders/{orderId}/rooms
  • API-SPEC:§8「房间分配」与 §11 错误码表已标下线

关联 / 联系人

联系人

  • 后端负责人: @wx