From e747c7f3348df72a9f94a0d10734ea5b337f4d56 Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Sat, 20 Jun 2026 12:57:04 +0800 Subject: [PATCH] =?UTF-8?q?docs(v2):=20=E6=88=BF=E5=8A=A1=E9=85=92?= =?UTF-8?q?=E5=BA=97=E8=AF=A6=E6=83=85=E9=87=91=E9=A2=9D=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E8=A1=A5String=E5=BA=8F=E5=88=97=E5=8C=96=20changelog=20(PR#41?= =?UTF-8?q?17)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...店详情金额字段补String序列化-修复-管理后台.md | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 changelogs-v2/2026-06/20_4117_房务酒店详情金额字段补String序列化-修复-管理后台.md diff --git a/changelogs-v2/2026-06/20_4117_房务酒店详情金额字段补String序列化-修复-管理后台.md b/changelogs-v2/2026-06/20_4117_房务酒店详情金额字段补String序列化-修复-管理后台.md new file mode 100644 index 0000000..cbd43c6 --- /dev/null +++ b/changelogs-v2/2026-06/20_4117_房务酒店详情金额字段补String序列化-修复-管理后台.md @@ -0,0 +1,34 @@ +# 房务酒店详情金额字段序列化修复(泄成数字 → 字符串)— 修复 — 管理后台 + +> 变更类型:🐛 Bug 修复(金额字段序列化,数字 → 字符串) +> 端类型:管理后台(房务管家 · 酒店详情 4Tab) +> 日期:2026-06-20 +> 服务:hl-order-service-v3 +> PR:https://git.1814.love:8443/wx/HL/pulls/4117 + +--- + +## ⚠️ 关键说明(给前端) + +`GET /v3/admin/house/hotels/{hotelId}`(房务酒店详情)的以下金额字段,此前**漏成 JSON 数字**,现统一修为**字符串**(与平台「金额=字符串」契约一致): + +| 字段 | 位置 | 修复前 | 修复后 | +|---|---|---|---| +| `roomTypes[].protoPrice` | Tab2 房型协议价 | `380.00`(数字) | `"380.00"`(字符串) | +| `priceCalendar30d[].price` | Tab3 价格日历当日价 | `380.00`(数字) | `"380.00"`(字符串) | +| `basic.protoPrice` | Tab1 协议价兜底 | `480.00`(数字) | `"480.00"`(字符串) | + +前端按字符串接收即可(同详情里其它金额、以及房务各列表/对账金额一致)。 + +## 根因 + +平台全局 Jackson 只把**超 JS 安全范围的 Long 雪花**转字符串,**不转 BigDecimal**——所以 BigDecimal 金额漏标 `@JsonSerialize(ToStringSerializer)` 就**永远**序列化为数字。这 3 个字段所在的 feign VO 直接作为房务详情响应体序列化给前端,其金额字段漏标(同 VO 的房型/酒店 ID 早已标)。之前审计因测试酒店多数无房型/价格日历,未观测到。 + +## 测试(测试服 9443 实测) + +取 3 家真实有房型 + 价格日历的酒店(房型 1-2 个、价格日历 11-30 天)实测:`roomTypes[].protoPrice`、`priceCalendar30d[].price`、`basic.protoPrice` 全部返字符串(如 `"1080.00"`/`"280.00"`),无一泄成数字。编译 BUILD SUCCESS、部署 order-v3 双实例 success。 + +## 备注 + +- 经纬度 `basic.longitude/latitude` 是坐标,保持数字(不属金额)。 +- 网关无需改。