# 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
<div v-if="product.earlyBirdTip" class="early-bird-banner">
  🎉 {{ product.earlyBirdTip }}
</div>
```

## 四、测试环境验证

| 场景 | 结果 |
|------|------|
| 产品绑定 55 元/2 人早鸟 | `"满 2 人订单总价优惠 55 元"` ✓ |
| 产品未绑定早鸟 | `null` ✓ |

两端完全对称，行为一致。

## 五、相关 Issues（顺带跟进，非本 PR）

- Issue #916 早鸟编辑页适用产品回显 ID 而非名称
- Issue #917 强制"一产品一早鸟"唯一约束
