# 价格日历删除接口：前端需补齐 query 参数

**日期**: 2026-04-20
**服务**: hl-product-service-v2
**类型**: 前端修复提醒（后端无改动）

## 背景
管理端产品编辑页 Step4 定价管理，点击某个价格区间右侧的"删除"按钮，后端返回：
```
startDate: 开始日期不能为空; endDate: 结束日期不能为空
```

## 根因
后端 `DELETE /admin/product/item/{id}/price-calendar` 要求以 **query 参数** 传
 `startDate` / `endDate` / `tierSeq`（按日期区间+档位物理删除多行），目前前端调用时请求 URL 里没有拼接这些 query 参数。

测试环境网关日志：
```
DELETE http://api.test.1814.love/admin/product/item/2045018534152478721/price-calendar
```
可见 URL 尾部缺失 `?startDate=...&endDate=...&tierSeq=...`。

## 接口契约（后端侧不变）

**URL**: `DELETE /admin/product/item/{id}/price-calendar`

**Query 参数**：
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `startDate` | string(yyyy-MM-dd) | ✔ | 区间开始日期 |
| `endDate` | string(yyyy-MM-dd) | ✔ | 区间结束日期 |
| `tierSeq` | integer | ✖（默认 1） | 档位序号（多档产品按当前选中档位传；单档传 1 或不传） |

**Path 参数**：
- `id`: 产品ID（`Long`）

## 前端需要做的

在"删除价格区间"的 API 调用里，**从区间卡片对象中取 `startDate` / `endDate`，并从当前 Tab 选中的档位取 `tierSeq`**，拼成 query 参数发送。

示例：
```
DELETE /admin/product/item/2045018534152478721/price-calendar?startDate=2026-04-08&endDate=2026-04-30&tierSeq=1
```

## 影响
- **前端侧**：修改 `deletePriceCalendar(productId, {startDate, endDate, tierSeq})` 的 api 层包装，支持传 query 参数。
- **后端侧**：无改动。
- **兼容性**：如果前端忘记传，仍返回 400 校验错误；属于前端实现问题。

## 参考
接口文件：
- Controller: `AdminProductController.deletePriceCalendar` (`/d/work2/HL/hl-product-service-v2/.../controller/admin/AdminProductController.java:249`)
- ReqVO: `PriceCalendarDeleteReqVO` (`.../vo/admin/PriceCalendarDeleteReqVO.java`)
