hl-api-changelog/changelogs-v2/2026-06/20_房务GET查询日期参数修复-stayDate等绑定500-修复-管理后台.md

4.6 KiB

房务 / 候选 GET 查询「日期参数」绑定修复stayDate 等 500— 管理后台

变更类型:🐛 Bug 修复GET 查询日期参数无法绑定,报 500 端类型:管理后台(房务管家 · 候选酒店/抢单池/我的接单/待办/询房历史/核房历史/操作日志) 日期2026-06-20 服务hl-order-service-v3 PRwx/HL#4109


⚠️ 关键说明(给前端)

前端联调「选择酒店」弹窗时,GET /v3/admin/hotel-candidates?orderId=...&stayDate=2026-06-20 报:

Failed to convert property value of type 'java.lang.String' to required type
'java.time.LocalDate' for property 'stayDate' ... Parse attempt failed for value [2026-06-20]

原因:这是后端 bug —— GET 查询参数的日期字段缺少格式声明,已修复并部署测试服。前端无需改 URL 写法,只要按下面的格式约定传值即可正常工作。

日期参数格式约定(重要)

房务/候选这批 GET 接口的日期筛选参数,分两类,格式不同

类型 接受格式 示例 涉及参数
日期 LocalDate yyyy-MM-dd 2026-06-20 stayDate、departDateFrom/To、lastCheckedBefore、核房历史 startDate/endDate
日期时间 LocalDateTime yyyy-MM-dd'T'HH:mm:ss必须带 T 和时分秒 2026-06-20T00:00:00 claimedAtFrom/To、待办 createTimeFrom/To、询房 createTimeFrom/To·repliedAtFrom/To、操作日志 startDate/endDate

⚠️ 日期时间类参数不能只传 2026-06-20,要补全成 2026-06-20T00:00:00(起始)/ 2026-06-20T23:59:59(结束)。日期选择器若只取到日,请前端拼上 T00:00:00 / T23:59:59 再传。

受影响接口已全部修复,9443 实测 200

  • GET /v3/admin/hotel-candidates(候选酒店 · stayDate
  • GET /v3/admin/order/grab-pool/hotel-requirements(抢单池 · departDateFrom/To
  • GET /v3/admin/order/grab-pool/my-claims/hotel(我的接单 · departDateFrom/To、claimedAtFrom/To
  • GET /v3/admin/house/hotels(房务酒店列表 · lastCheckedBefore
  • GET /v3/admin/order/todos(待办 · createTimeFrom/To
  • GET /v3/admin/order/inquiry(询房历史 · createTimeFrom/To、repliedAtFrom/To
  • GET /v3/admin/house/hotels/{hotelId}/check-log(核房历史 · startDate/endDate
  • GET /v3/admin/house/hotels/{hotelId}/operation-logGET /admin/house/orders/{orderId}/operation-log(操作日志 · startDate/endDate

POST 请求体(@RequestBody,如发起询房 inquiry/send、新增核房 check-log)走 JSON 解析,日期照常传 2026-06-20 即可,本次不受影响、未改动。

测试(测试服 9443 实测)

# 前端原报错的请求,现返回 200不再 500
curl -k "https://api.test.1814.love:9443/v3/admin/hotel-candidates?orderId=2067532338723504130&stayDate=2026-06-20" \
  -H "Authorization: Bearer <token>"
  • 候选酒店 + stayDate=2026-06-20200(修复前 500 转换异常)。
  • 上述 8 类日期/日期时间筛选端点逐一实测:全部 200,无转换异常、无 500。
  • mvn -pl hl-order-service-v3 compile BUILD SUCCESS;测试服 order-v3 双实例部署 success。

同类隐患连带修复PR #4112

对三域对接总览 50+ 端点逐个真 token 实测49 端点全绿、零框架级报错)后,又静态排查 order-v3 全部 GET 查询日期 VO,发现房务模块外另有 2 处同病,一并补 @DateTimeFormat

端点 参数
GET /v3/admin/complaint/page(投诉列表) dateFrom / dateTo
GET /v3/admin/order/vehicle-requirement/{id}/candidates(配车候选) availableFrom / availableTo

均已部署 + 9443 实测按日期筛选返 200,不再 500。

参数格式错误消息已转干净中文PR #4115

合法日期已能正常解析(上文);针对非法/格式不对的日期(如日期范围控件给 LocalDateTime 字段发了纯日期 2026-06-20,或脏值 2026-13-45),后端不再向前端吐 Spring 原始的 Failed to convert ... ConversionFailedException 长串,改为干净中文:

参数【stayDate】格式不正确日期请用 yyyy-MM-dd,日期时间请用 yyyy-MM-dd'T'HH:mm:ss

code 仍为 400。前端可直接展示该 message。(仅 order-v3 生效;合法值不受影响、行为不变。)

备注

  • 配套《房务+定制师提房需求+站内信聊天 前端对接总览》(同日发布)的日期参数,按本文格式约定传值。
  • 网关无需改。