hl-api-changelog/changelogs/2026-04/2026-04-18_mp-hotel-room-cover-fix.md

1.6 KiB

小程序住宿详情 - 房型封面图 null 问题修复

  • 日期: 2026-04-18
  • PR: #825 (Closes #824)
  • 类型: BUG FIX
  • 状态: 已合并到 dev + 测试环境部署中

影响接口

  • GET /mp/hotel/{hotelId} (C 端住宿详情)

现象

调用住宿详情返回的 roomTypes 数组中,每个房型的 coverUrl 都是 null(其他字段正常)。

{
  "code": 200,
  "data": {
    "hotelId": "2023714929877450753",
    "roomTypes": [
      {
        "roomTypeId": "...",
        "name": "豪华大床房",
        "coverUrl": null,    // 错误:应为 https://.../cover.jpg
        "bannerUrls": [],    // 错误:应为图片 URL 数组
        "videoUrl": null     // 错误:应为视频 URL
      }
    ]
  }
}

根因(仅供参考,前端无需关注)

RoomTypeService.listRoomTypes 手动补救 coverUrl 时用 String 类型的 coverMaterialId 去查 Map<Long, String>,Java HashMap.get 不做类型转换导致永远返回 null。banner/video 的 materialId 同样未纳入批量查询。

修复后行为

  • roomTypes[i].coverUrl:有封面素材时返回 https CDN URL
  • roomTypes[i].bannerUrls:有横幅素材时返回 URL 数组(无素材的条目已 filter
  • roomTypes[i].videoUrl:有视频素材时返回 URL

前端 Action

无需改代码。后端修复后直接生效。

回归验证

测试环境部署完成后,调用 GET /mp/hotel/{任一已上架酒店ID} 检查 roomTypes[0].coverUrl 非 null 即可。