# 房务酒店详情金额字段序列化修复（泄成数字 → 字符串）— 修复 — 管理后台

> 变更类型：🐛 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` 是坐标，保持数字（不属金额）。
- 网关无需改。
