hl-api-changelog/changelogs/2026-04/2026-04-20_price-calendar-delete-require-query.md

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: 产品IDLong

前端需要做的

在"删除价格区间"的 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)