# 早鸟优惠管理「优惠金额」序列化修复（泄成数字 → 字符串）— 修复 — 管理后台

> 变更类型：🐛 Bug 修复（金额字段序列化，数字 → 字符串）
> 端类型：管理后台（营销 · 早鸟优惠管理）
> 日期：2026-06-20
> 服务：hl-order-service-v3
> PR：https://git.1814.love:8443/wx/HL/pulls/4118

---

## ⚠️ 关键说明（给前端）

早鸟优惠管理 `GET /v3/admin/order/early-bird/list`（列表）与 `GET /v3/admin/order/early-bird/{planId}`（详情）返回的 `EarlyBirdPlanVO.discountAmount`（优惠金额），此前漏成 JSON 数字，现修为**字符串**（与平台「金额=字符串」契约一致）：

| 字段 | 修复前 | 修复后 |
|---|---|---|
| `discountAmount` | `200.00`（数字） | `"200.00"`（字符串） |

- `discountPercent`（折扣率 0~100，如 `90.0`）**仍为数字**——它是比例不是金额，前端按数字用（`90` → 9 折）。
- `planId` 等雪花 ID 仍为字符串。

## 根因

平台全局 Jackson 只把超 JS 范围的 Long 雪花转字符串、不转 BigDecimal，故金额 BigDecimal 漏标 `@JsonSerialize(ToStringSerializer)` 就泄成数字。`AdminEarlyBirdController`（前端管理页）直接返回 `EarlyBirdPlanVO`，其 `discountAmount` 漏标。

## 测试（测试服 9443 实测）

早鸟列表/详情实测：`discountAmount` 返字符串（`"200.00"`/`"80.00"`/`"150.00"`），`discountPercent` 仍数字、`planId` 字符串。编译 BUILD SUCCESS、部署 order-v3 双实例 success。

## 备注

- 列表端点是 `/v3/admin/order/early-bird/list`（不是裸 `/v3/admin/order/early-bird`，后者会被 `/{id}` 路由捕获）。
- 全 order-v3 金额序列化已横扫收口：除本次与房务详情 3 feign VO（#4117）外，其余漏标的金额都在请求 VO / `/internal/` 响应 / feign 入站 DTO（Java 消费方无损），非前端可达、不受影响。
- 网关无需改。
