3.9 KiB
3.9 KiB
【前端修复·管理后台】保险订单列表页报「参数类型错误: id='list'」——前端调错路径 /orders/list,应改为 /list
服务:hl-order-service-v3(保险模块 AdminInsuranceController) | 无 PR(前端调错 URL,后端契约正常无需改) | 测试服网关 9443 实测复现并确认(2026-06-13) 背景:wx 打开「保险管理 → 保险订单」页(
192.168.100.160:9527/insurance/orders),页面顶部红条报 「参数类型错误: id='list'(需要 Long 类型)」。经网关实测复现,定位为前端列表接口 URL 写错。
⚠️ 关键说明(前端动作)
-
根因:前端把保险订单列表调成了
GET /v3/admin/insurance/orders/list,这个路径后端不存在。- 后端只有
GET /v3/admin/insurance/orders/{id}(按 ID 查保险订单详情,{id}是 Long 类型)。 - 前端那个
.../orders/list请求里的list被 Spring 当成{id}去解析成 Long,解析失败 → 全局异常处理器返回「参数类型错误: id='list'(需要 Long 类型)」。 - 注意:本项目所有接口恒返 HTTP 200,业务错误码在响应体
code字段里。所以 Network 面板看到的是200,但 body 是{"code":400,"message":"参数类型错误..."}——别被 200 误导,要看 body。
- 后端只有
-
正确的列表路径 =
GET /v3/admin/insurance/list(不带/orders)。- 这是 v3 全站 admin 列表的统一惯例
{模块base}/list:合同/v3/admin/contract/list、退款政策/v3/admin/refund-policy/list、评价/list、支付/list、保险方案/list……保险订单列表同理就是/v3/admin/insurance/list。 - 请把保险订单页的列表请求 URL 从
…/insurance/orders/list改成…/insurance/list,入参/分页参数(page/pageSize/筛选项)完全不变。
- 这是 v3 全站 admin 列表的统一惯例
-
详情/按订单查仍走
/orders/...,不要动:列表是/list、详情是/orders/{id},这两者本身不冲突,冲突只来自前端给列表错误地拼了/orders/前缀。
路径对照表
| 用途 | 现状(错误) | 应改为(正确) |
|---|---|---|
| 保险订单列表 | GET /v3/admin/insurance/orders/list?page=1&pageSize=20 ❌ |
GET /v3/admin/insurance/list?page=1&pageSize=20 ✅ |
| 保险订单详情 | — | GET /v3/admin/insurance/orders/{id}(id 为 Long) |
| 按业务订单查保险 | — | GET /v3/admin/insurance/orders/by-order/{orderId} |
实测(测试服网关 https://api.test.1814.love:9443)
错误路径(复现用户截图的报错):
curl -k "https://api.test.1814.love:9443/v3/admin/insurance/orders/list?page=1&pageSize=20" \
-H "Authorization: Bearer <adminToken>"
# → {"code":400,"message":"参数类型错误: id='list'(需要 Long 类型)","data":null,"success":false}
正确路径(返回真实订单数据):
curl -k "https://api.test.1814.love:9443/v3/admin/insurance/list?page=1&pageSize=20" \
-H "Authorization: Bearer <adminToken>"
# → {"code":200,"message":"成功","data":{"records":[
# {"insuranceOrderId":"2065360048397193217","policyNo":"PICC2026GUARD",
# "premium":3400.00,"insuredCount":1,"coverageStartDate":"2026-01-01",
# "coverageEndDate":"2026-12-31","status":"CANCELLED","statusLabel":"已退保", ...}
# ], "total":..., "page":1, "pageSize":20}}
结论
后端列表端点正常、契约就是 /v3/admin/insurance/list,无需后端改动。请前端把保险订单列表页的请求 URL 改为 /v3/admin/insurance/list 即可消除红条报错。
附:本页此前的「保险产品下拉为空」是另一个前端数据加载问题(后端
/products/all实测返 10 个 ACTIVE 产品),详见同目录13_前端核实_保险下单页产品下拉空与司机险混淆-后端正常无需改-管理后台.md。这两个都是该新页面接线/取数的前端问题。