docs(changelog): candidates收费日注释对齐+子集收费回显锁定(#5666)
所有检测均成功
changelog-filename-gate / validate (push) Successful in 2s

这个提交包含在:
API Changelog Bot 2026-08-07 20:54:29 +08:00
父节点 81e6d3aa44
当前提交 0fa10a8846

查看文件

@ -0,0 +1,57 @@
---
schema: "hl-changelog/v2"
ticket: "5666"
title: "candidates 收费日注释对齐行为(空数组=全部收费预览)+ 子集收费回显口径锁定"
consumer: "admin"
author: "wx"
change_type: "修改接口"
backend_status: "deployed"
gateway_status: "verified"
frontend_status: "pending"
frontend_owner: ""
frontend_ref: ""
target_release: ""
verified_at: ""
status_note: "文档/口径对齐,无行为变更:#5643 起空数组已按全部收费预览,本次仅修正 ApiModelProperty 注释并补子集收费回显测试。矩阵派车司机回填与 ¥0 两症状经排查为前端问题,由协调台另行前端 changelog 分流。"
updated_at: "2026-08-07"
base: "dev-v3"
generated: "2026-08-07T21:00:00+08:00"
---
# candidates 收费日口径对齐(#5666 后端小加固)
## 背景
排查 #5666(矩阵派车司机回填/¥0时发现 `POST /admin/fleet/assignments/candidates``chargeableServiceDates` 注释("空数组表示全部免费")与实际行为不一致:#5643 起空数组刻意按"全部服务日收费"预览(防止全免 ¥0 陷阱),且已有测试锁定。注释为 #5643 前残留。
## 变更内容
| 项 | 变更 |
|---|---|
| `AssignmentCandidateReqVO.chargeableServiceDates` 注释 | 对齐行为:不传或空数组均按全部服务日收费预览;明确与创建派单接口语义差异(创建接口空数组=全部免费且需 confirmAllServiceDatesFree+免费原因);子集时仅子集收费、其余免费回显 |
| 测试 | 新增 `query_subsetChargeableServiceDates_marksOtherDaysFree`:锁定"子集收费日→仅子集 CALENDAR、其余 FREE ¥0、总价仅含子集"回显口径 |
**无任何运行时行为变更**(纯文档注解 + 测试)。
## 前端/调用方注意(既有行为复述,非新变更)
- candidates`chargeableServiceDates` 不传/空数组 = 全部收费预览;传子集 = 仅子集收费,其余日 `assignmentPrice=0.00`/`source=FREE`(免费日 `calendarPrice=null``calendarPriceMissing` 仅收费日缺价时为 true
- 创建/改派写接口语义不变:空数组 = 全部免费,须 `confirmAllServiceDatesFree=true` + 免费原因。
- 矩阵派车司机回填suggestedDriverId 消费)与部分收费日传入两个症状的修复见协调台前端 changelog。
## 关联 / 联系人
- 工单https://git.1814.love:8443/wx/HL/issues/5666
- 后端wx
## 变更接口或验证证据
### 接口契约
- `POST /admin/fleet/assignments/candidates` 请求字段 `chargeableServiceDates`:仅 Swagger 文档注释对齐既有行为,类型/约束/行为均无变更。
### 验证证据
- 定向:`AssignmentCandidateServiceTest` 49 全过(含新增子集收费用例与 #5643 空数组用例;fleet spotless:check 通过。
- 全量:`mvn -pl hl-fleet-service -am verify`(日志见证据目录)。
- 网关:口径探针复测 candidates 空数组=全收费、子集=[首日]=首日 CALENDAR 其余 FREE与锁定口径一致