hl-api-changelog/changelogs-v2/2026-06/20_4118_早鸟管理优惠金额补String序列化-修复-管理后台.md

35 行
1.9 KiB
Markdown

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

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

# 早鸟优惠管理「优惠金额」序列化修复(泄成数字 → 字符串)— 修复 — 管理后台
> 变更类型:🐛 Bug 修复(金额字段序列化,数字 → 字符串)
> 端类型:管理后台(营销 · 早鸟优惠管理)
> 日期2026-06-20
> 服务hl-order-service-v3
> PRhttps://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 入站 DTOJava 消费方无损),非前端可达、不受影响。
- 网关无需改。