# 接口变更记录 — 2026-04-02 18:56

> **提交** `236fb21d` · **作者** wx · **时间** 2026-04-02 18:56:41 +0800
>
> refactor: 早鸟优惠改为产品级别关联（产品设计时选择）

## 变更总览

- **订单服务**
  - InternalEarlyBird (+2)

---

## 订单服务

### InternalEarlyBird

> 📖 **接口文档**: [http://192.168.100.236:8084/doc.html](http://192.168.100.236:8084/doc.html) → 标签 **「【内部接口】早鸟优惠（Feign调用）」**

### 🆕 `GET` /internal/mp/early-bird/{planId} — 根据ID获取早鸟计划详情

> 供产品服务加载早鸟文案和报价验证使用

**参数**

  - `{planId}` (`Long`) — 路径参数

**响应** `Result<EarlyBirdPlanVO>`

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `planId` | `Long` | 计划ID |
| `planName` | `String` | 计划名称 |
| `startDate` | `LocalDate` | 生效开始日期 |
| `endDate` | `LocalDate` | 生效结束日期 |
| `minPeople` | `Integer` | 最低人数 |
| `discountAmount` | `BigDecimal` | 优惠金额 |
| `enabled` | `Boolean` | 是否启用 |
| `remark` | `String` | 备注 |
| `createdBy` | `Long` | 创建人ID |
| `createTime` | `LocalDateTime` | 创建时间 |
| `updateTime` | `LocalDateTime` | 更新时间 |
| `productIds` | `List<Long>` | 适用产品ID列表（空表示适用全部CORE/GROUP产品） |
| `productNames` | `List<String>` | 适用产品名称列表（空表示适用全部） |

### 🆕 `GET` /internal/mp/early-bird/{planId}/validate — 验证早鸟计划有效性

> 按ID查计划，验证enabled+日期范围+最低人数，有效则返回详情，无效返回null

**参数**

  - `{planId}` (`Long`) — 路径参数
  - `totalPeople` (`int`) — 查询参数

**响应** `Result<EarlyBirdPlanVO>`

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `planId` | `Long` | 计划ID |
| `planName` | `String` | 计划名称 |
| `startDate` | `LocalDate` | 生效开始日期 |
| `endDate` | `LocalDate` | 生效结束日期 |
| `minPeople` | `Integer` | 最低人数 |
| `discountAmount` | `BigDecimal` | 优惠金额 |
| `enabled` | `Boolean` | 是否启用 |
| `remark` | `String` | 备注 |
| `createdBy` | `Long` | 创建人ID |
| `createTime` | `LocalDateTime` | 创建时间 |
| `updateTime` | `LocalDateTime` | 更新时间 |
| `productIds` | `List<Long>` | 适用产品ID列表（空表示适用全部CORE/GROUP产品） |
| `productNames` | `List<String>` | 适用产品名称列表（空表示适用全部） |

---

## 📦 其他数据对象变更

> 以下变更未直接关联到本次接口变更，但可能影响现有接口的请求/响应

### 产品服务

#### ✏️ ProductCreateRequest

  - 🆕 `earlyBirdPlanId` (`Long`) — 早鸟优惠计划ID

#### ✏️ ProductSaveRequest

  - 🆕 `earlyBirdPlanId` (`Long`) — 早鸟优惠计划ID

#### ✏️ ProductUpdateRequest

  - 🆕 `earlyBirdPlanId` (`Long`) — 早鸟优惠计划ID

#### ✏️ ProductVO

  - 🆕 `earlyBirdPlanId` (`String`) — 早鸟优惠计划ID
  - 🆕 `earlyBirdPlanName` (`String`) — 早鸟优惠计划名称

<details>
<summary>📁 全部变更文件 (点击展开)</summary>

```
M	hl-mp-service/src/main/java/com/hulalv/mp/controller/MpProductController.java
M	hl-mp-service/src/main/java/com/hulalv/mp/feign/MpOrderFeignClient.java
M	hl-mp-service/src/main/java/com/hulalv/mp/feign/MpOrderFeignFallbackFactory.java
M	hl-mp-service/src/test/java/com/hulalv/mp/controller/MpProductControllerBranchTest.java
M	hl-order-service/src/main/java/com/hulalv/order/controller/InternalEarlyBirdController.java
M	hl-order-service/src/main/java/com/hulalv/order/service/EarlyBirdPlanService.java
M	hl-product-service/src/main/java/com/hulalv/product/dto/ProductCreateRequest.java
M	hl-product-service/src/main/java/com/hulalv/product/dto/ProductSaveRequest.java
M	hl-product-service/src/main/java/com/hulalv/product/dto/ProductUpdateRequest.java
M	hl-product-service/src/main/java/com/hulalv/product/entity/Product.java
M	hl-product-service/src/main/java/com/hulalv/product/feign/EarlyBirdFallbackFactory.java
M	hl-product-service/src/main/java/com/hulalv/product/feign/EarlyBirdFeignClient.java
M	hl-product-service/src/main/java/com/hulalv/product/service/ProductService.java
M	hl-product-service/src/main/java/com/hulalv/product/vo/ProductVO.java
```
</details>