diff --git a/changelogs/2026-04/2026-04-19_product-detail-earlybird-tip.md b/changelogs/2026-04/2026-04-19_product-detail-earlybird-tip.md new file mode 100644 index 0000000..f12f69d --- /dev/null +++ b/changelogs/2026-04/2026-04-19_product-detail-earlybird-tip.md @@ -0,0 +1,56 @@ +# feat: 产品详情自动生成早鸟优惠文案字段 earlyBirdTip + +> **服务**: hl-product-service-v2 +> **PR**: #918 +> **Issue**: #915 +> **日期**: 2026-04-19 +> **前端是否需要改动**: **展示新字段** + +--- + +## 一、新增字段 + +管理端 + 小程序端产品详情接口**新增** `earlyBirdTip: String` 字段: + +| 接口 | 方法 | 路径 | 新字段 | +|------|------|------|--------| +| 管理端产品详情 | GET | `/admin/product/item/{id}` | `earlyBirdTip: String` | +| 小程序端产品详情 | GET | `/mp/product/{id}` | `earlyBirdTip: String` | + +**其他字段不变**。 + +## 二、字段语义 + +后端根据产品绑定的生效早鸟优惠计划**自动生成**的营销文案字符串。 + +### 生成规则 +- 正常格式:`满 {minPeople} 人订单总价优惠 {discountAmount} 元` +- `minPeople=null/0` 降级:`订单总价优惠 {discountAmount} 元` +- 金额自动去除小数尾零:`100.00 → 100`、`99.50 → 99.5` +- 未绑定 / 早鸟过期 / 早鸟禁用 / Feign 异常 → **`null`**(前端不渲染) + +### 业务约束 +一个产品**最多绑定一个**早鸟优惠计划(1-1 关系,由 order-v2 保证,Issue #917 跟进)。 + +## 三、前端建议展示位置 + +营销区块 / 价格区块附近,高亮展示。例如: +```html +
+ 🎉 {{ product.earlyBirdTip }} +
+``` + +## 四、测试环境验证 + +| 场景 | 结果 | +|------|------| +| 产品绑定 55 元/2 人早鸟 | `"满 2 人订单总价优惠 55 元"` ✓ | +| 产品未绑定早鸟 | `null` ✓ | + +两端完全对称,行为一致。 + +## 五、相关 Issues(顺带跟进,非本 PR) + +- Issue #916 早鸟编辑页适用产品回显 ID 而非名称 +- Issue #917 强制"一产品一早鸟"唯一约束