From 0cde47834206057ef632c84d415517c4fa53bd01 Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Fri, 8 May 2026 09:04:22 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=88=BF=E5=9E=8B=E7=A6=81=E7=94=A8?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E7=BB=B4=E5=BA=A6=E4=BF=AE=E6=AD=A3=20ROOM?= =?UTF-8?q?=5FTYPE=20(PR=20#1846,=20Closes=20wx/HL#1842)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 实测证明同酒店 2 RoomType 提示产品数不同(2 vs 1), ROOM_TYPE 维度精确生效。 前端 API 行为无变化,业务码 ROOM_TYPE_DISABLE_IN_USE (310206) 不变。 --- ...fix_resource_roomtype_disable_dimension.md | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 changelogs/2026-05/08_fix_resource_roomtype_disable_dimension.md diff --git a/changelogs/2026-05/08_fix_resource_roomtype_disable_dimension.md b/changelogs/2026-05/08_fix_resource_roomtype_disable_dimension.md new file mode 100644 index 0000000..cbea70f --- /dev/null +++ b/changelogs/2026-05/08_fix_resource_roomtype_disable_dimension.md @@ -0,0 +1,60 @@ +--- +date: 2026-05-08 +type: backend-fix +module: hl-resource-service/hotel +priority: medium +notify: ["@mmg"] +status: tested-passed +restart_service: hl-resource-service +gitea_pr: 1846 +gitea_issue: [1842] +--- + +# 房型禁用校验维度修复(ROOM_TYPE 而不是 HOTEL) + +## 现象 + +用户禁用一个房型时,即使该房型本身没被任何产品引用,只要同酒店其他房型被引用就会被拦截,提示"该资源正被以下上架产品使用..."。 + +## 根因 + +PR #1815 引入 `RoomTypeService.submitRoomTypeApproval` 禁用校验时,因 product 侧 endpoint 当时不支持 ROOM_TYPE 维度,临时用 HOTEL 维度兜底: + +```java +// 改前 +referenceCheckHelper.throwIfInUse("HOTEL", rt.getHotelId(), HotelErrorCode.ROOM_TYPE_DISABLE_IN_USE); +``` + +PR #1838 实现 endpoint + ROOM_TYPE 路由后,本 PR 把维度修正回: + +```java +// 改后 +referenceCheckHelper.throwIfInUse("ROOM_TYPE", roomTypeId, HotelErrorCode.ROOM_TYPE_DISABLE_IN_USE); +``` + +## 前端可见变化 + +**API 路径/响应格式无变化**,业务码仍是 `ROOM_TYPE_DISABLE_IN_USE` (310206)。前端无需任何改动。 + +精确度提升: +- 改前:酒店 H 任一房型被引用,禁用 H 下任何房型都被拦 +- 改后:只有该房型本身被引用才被拦,提示的产品名也只列引用了该房型的产品 + +## 测试服 round-trip 实测(同酒店 2 房型) + +``` +酒店: 呼伦贝尔香格里拉大酒店(2023714929877450753) +- RoomType 大床房 (3002000000000000013): 提示 2 个产品(测试定制wx-01、呼伦贝尔草原深度定制·3天2晚家庭私享团) +- RoomType 普通标间 (2023727403196502017): 提示 1 个产品(冻干粉发短信给) +``` + +两个 RoomType 引用产品数不同 → 证明 ROOM_TYPE 维度精确(若是 HOTEL 维度两次响应会一致)。 + +## 重启服务 + +测试服已部署:`hl-resource-service`(PR #1846 合 dev → deploy panel)。 + +## 关联 + +- Closes wx/HL #1842 +- PR #1815 / PR #1838 / PR #1841 follow-up