hl-api-changelog/changelogs-v2/2026-08/07_5643_派车价日历回显与调价行程链接文案-修改接口-管理后台.md
API Changelog Bot a031db038b
所有检测均成功
changelog-filename-gate / validate (push) Successful in 2s
docs(changelog): #5643 lint 修正(章节名/占位符/frontmatter)
2026-08-07 15:49:30 +08:00

4.5 KiB

schema, ticket, title, consumer, change_type, author, backend_status, gateway_status, frontend_status, frontend_owner, frontend_ref, target_release, verified_at, status_note, updated_at, base, generated
schema ticket title consumer change_type author backend_status gateway_status frontend_status frontend_owner frontend_ref target_release verified_at status_note updated_at base generated
hl-changelog/v2 5643 派车价按车型+日期回显价格日历价(修复空收费日期误免)+ 调价/行程链接文案优化 admin 修改接口 wx(GIT) deployed verified not_required 后端完成PR #5647 已合并 dev-v3 并部署 TEST15:46 滚动 DONE。网关验证 6 项全 PASS候选传空收费日期数组回显日历价 800×4=3200修复前 4 天 FREE ¥0.00);按日历价派车成功且快照 source=AUTO;调价与行程链接文案按新口径展示。前端无需配合。 2026-08-07 dev-v3 2026-08-07T15:50:00+08:00

派车价按车型+日期回显价格日历价(修复空收费日期误免)+ 调价/行程链接文案优化

服务: hl-fleet-service PR: #5647 Issue: #5643 日期: 2026-08-07 影响: 🟢 缺陷修复 + 文案优化,无契约结构变更(字段不变,仅返回值/报错文案修正)。前端无需改代码。

背景

#5643P1wx 实测价格日历有数据SUV普拉多¥1000/天、GL8¥900、帕萨特¥600、考斯特¥1500,2026-08 各日期),但派车订单 26-6457蒙A-H7777 汉兰达 SUV 8/9-8/12派车价 4 天都 ¥0.00。

根因POST /admin/fleet/assignments/candidates 把请求里的 chargeableServiceDates=[](空数组)按字面空集处理 → 全程误判"免费" → 逐日 assignmentPrice=¥0.00 source=FREE、自动总价 ¥0。需求未配置收费日期时前端回传空数组而非 null,触发该路径。

网关复现:同一需求传 [] → 4 天 FREE ¥0.00;不传 → 正常 800×4=3200汉兰达日历价 ¥800/天)。

修复内容(内部,无接口/字段结构变化)

  1. 候选取价空数组归一化AssignmentCandidateServicechargeableServiceDates 做空集合→未指定(=全部服务日收费)归一化,候选车辆逐日回显日历价(source=CALENDAR)、自动总价正确求和。创建/改派边界的"全免需二次确认+原因"守卫语义不变(resolveChargeableServiceDates 未动);已落库全免组(收费日为空的合法态)的改派/保留行取价不受影响。
  2. 调价报错文案可行动化(创建与逐日方案两处):价=日历价的日期填了调价原因时,报错由「日历价日期不能填写车辆调价原因」改为「派车价与日历价一致的日期无需填写调价原因,请清空未调价日期的调价原因后重试」。校验语义与审计不变量不变(调价日必须有原因、未调价日不留原因)。
  3. 行程链接文案分级:派单通知模板渲染 `itinerary.url 预览阶段(无可定位派车组)显示「行程链接在派单成功后自动生成」;派车组可定位但无效/定位歧义仍显示「行程链接暂不可用,请联系车务确认」失败关闭保留;HOLD 未 finalize 组签链仍按 #5461 设计失败关闭。模板渲染的收费/免费日期摘要同步空数组归一化。

变更接口

  • POST /admin/fleet/assignments/candidateschargeableServiceDates[] 与不传行为一致(全部服务日按价格日历取价);候选车辆 dailyVehicleFees[].calendarPrice/assignmentPriceautoVehicleFeeTotal 正常回显(非 ¥0
  • POST /admin/fleet/assignmentsPOST /admin/fleet/assignments/batch未调价日期携带调价原因时的报错文案变更错误码不变,100001/参数非法族)。
  • POST /admin/fleet/message-templates/:templateId/renderitinerary.url 在预览阶段的占位文案变更(见上)。

验证证据

  • 全量 mvn -pl hl-fleet-service -am verify3252 Tests,Failures=0,Errors=0dev-v3 @ 76bc874d;新增候选空收费日期回归用例;spotless 通过。
  • 部署 TEST15:46 滚动 DONE。
  • 网关(订单 26-6457,蒙A-H7777 汉兰达 8/9-8/12,日历价 ¥800/天6 项全 PASS①候选传 [] 回显 800×4=3200 ②默认入参同样 3200 ③预览文案=行程链接在派单成功后自动生成 ④价=日历价+原因报新文案 ⑤HOLD 派车成功且 DB 快照 calendar=800 全收费、total=3200.00、source=AUTO ⑥HOLD 未 finalize 组渲染按设计失败关闭。

前端配合

无需配合。派车弹窗/候选列表原本读取的字段不变,现在能拿到正确的日历价。