2.1 KiB
2.1 KiB
价格日历删除接口:前端需补齐 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)