From 54f14e4fea0d4a5ca3c0c4017e2843112df3208e Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Mon, 20 Apr 2026 16:05:33 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=B7=E6=A0=BC=E6=97=A5=E5=8E=86=E5=88=A0?= =?UTF-8?q?=E9=99=A4=EF=BC=9A=E5=89=8D=E7=AB=AF=E9=9C=80=E8=A1=A5=E9=BD=90?= =?UTF-8?q?=20startDate/endDate/tierSeq=20query=20=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...-20_price-calendar-delete-require-query.md | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 changelogs/2026-04/2026-04-20_price-calendar-delete-require-query.md diff --git a/changelogs/2026-04/2026-04-20_price-calendar-delete-require-query.md b/changelogs/2026-04/2026-04-20_price-calendar-delete-require-query.md new file mode 100644 index 0000000..aa042dc --- /dev/null +++ b/changelogs/2026-04/2026-04-20_price-calendar-delete-require-query.md @@ -0,0 +1,54 @@ +# 价格日历删除接口:前端需补齐 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`)