hl-api-changelog/changelogs-v2/2026-07/67_5080_房务详情混合房型逐行出参.md
2026-07-19 18:35:13 +08:00

2.2 KiB

房务详情混合房型逐行出参Issue #5080

背景

同一晚存在多个房型时,旧兼容标量会把 rooms[] 的首行房型与所有房数相加,导致“标间 1 + 大床房 1”被错误展示为“标间 2”。

接口

GET /admin/house/orders/{orderId}

GET /v3/admin/order/{orderId}(订单详情中的住宿需求摘要)

新增字段

data.itinerary[].expectedRooms[]:当天逐房型预期房间列表,混合房型展示和业务判断以此字段为准。

{
  "expectedRoom": {
    "roomCategory": null,
    "roomCategoryLabel": null,
    "roomCount": 2
  },
  "expectedRooms": [
    { "roomCategory": "STANDARD", "roomCategoryLabel": "标间", "roomCount": 1 },
    { "roomCategory": "KING", "roomCategoryLabel": "大床房", "roomCount": 1 }
  ]
}

兼容规则

  • 单一房型:expectedRoom 继续返回原标量,expectedRooms[] 同时提供逐行数据。
  • 混合房型:expectedRoom.roomCategoryroomCategoryLabel 返回 null,防止形成“首房型 × 总房数”的错误含义;roomCount 仍为总间数。
  • 未指定房型:房型字段保持 null,房数按需求返回。
  • requirement.current.days[].segments[].candidates[].rooms[] 仍是候选酒店房型行的权威明细。

前端适配要求

  1. 房务详情及“选择酒店”弹窗不得再用 days[].roomCategory 或首个酒店 roomCategory 表示混合房型。
  2. 标题按 expectedRooms[] 渲染,例如“标间 1 间 + 大床房 1 间”。
  3. 候选房型筛选与默认数量应逐条读取 expectedRooms[];不得以首行房型套用总间数。
  4. 兼容后端尚未部署时,可从 segments[].candidates[0].rooms[] 读取同等权威明细,但不得猜测列表顺序。

订单详情补充Issue #5082

  • hotelRequirement.days[].hotels[]segments[] 的兼容 roomCategory/roomCategoryLabel 仅在对应 rooms[] 全部属于同一房型大类时返回。
  • 混合房型时,上述兼容房型字段返回 nullroomCount 仍返回总间数;页面标题必须由 rooms[] 逐行生成。
  • 这可避免“标间 1 + 大床房 1”被标题错误展示为“标间 2”。