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

53 行
1.6 KiB
Markdown

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

# 小程序住宿详情 - 房型封面图 null 问题修复
- **日期**: 2026-04-18
- **PR**: [#825](https://git.1814.love:8443/wx/HL/pulls/825) (Closes #824)
- **类型**: BUG FIX
- **状态**: 已合并到 dev + 测试环境部署中
---
## 影响接口
- `GET /mp/hotel/{hotelId}` (C 端住宿详情)
## 现象
调用住宿详情返回的 `roomTypes` 数组中,**每个房型的 `coverUrl` 都是 null**(其他字段正常)。
```json
{
"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 即可。