# 产品与订单模块改进

**日期**: 2026-03-21
**服务**: hl-product-service, hl-order-service
**类型**: 功能增强

---

## 功能说明

### 1. 团期报名截止自动关闭

团期（GROUP 产品）超过报名截止日期后，系统每小时自动扫描，将 ENROLLING/CONFIRMED 状态的过期团期自动关闭为 CLOSED。

**前端影响**：无需改动。过期团期不再显示"可报名"状态，`batchStatus` 会变为 `CLOSED`。

---

### 2. 尾款到期自动取消

定金模式（DEPOSIT）订单，如果距出发日期不足 3 天仍未付尾款，系统每天凌晨自动取消订单。

**前端影响**：无需改动。订单状态会变为 `CANCELLED`，`cancelReason` 为"尾款未在出发前3天付清，系统自动取消"。建议在待付尾款页面增加倒计时提示。

---

### 3. 出发日期变更自动重新计价

管理员修改订单出发日期后，系统自动基于新日期的价格日历重新计算售价。

**前端影响**：
- 订单详情页的 `totalPrice` 可能因日期变更而更新
- 时间线（timeline）中会记录价格变动详情，如："售价已更新: 5980.00 → 6280.00（+300.00）"
- 如果价格偏差超过 50%，不会自动更新，时间线记录"价格偏差超过50%，未自动更新，请手动核查"

---

## 接口变更

**本次无接口变更**。以上功能均为后端定时任务和内部逻辑增强，不影响现有接口的请求/响应格式。

已有接口行为变化：

| 接口 | 变化说明 |
|------|---------|
| GET /admin/product/item/{productId}/batch/list | 过期团期 batchStatus 会自动变为 CLOSED |
| GET /mp/order/{orderId} | 尾款逾期订单 status 会自动变为 CANCELLED |
| PUT /admin/order/{orderId}/edit | 修改出发日期后 totalPrice 可能自动更新 |

---

## 注意事项

- 尾款截止默认 3 天（出发前 3 天），后续可配置
- 价格自动更新有 50% 偏差保护，超出不会自动改价
- 团期关闭后不可恢复报名，需重新创建团期
