diff --git a/changelogs-v2/2026-06/12_3717_保险产品全量列表接口不分页-新增接口-管理后台.md b/changelogs-v2/2026-06/12_3717_保险产品全量列表接口不分页-新增接口-管理后台.md new file mode 100644 index 0000000..22d777d --- /dev/null +++ b/changelogs-v2/2026-06/12_3717_保险产品全量列表接口不分页-新增接口-管理后台.md @@ -0,0 +1,63 @@ +# 【新增接口·管理后台】保险管理——保险产品全量列表(不分页),修复方案弹窗 pageSize=200 报错 + +> 服务:hl-order-service-v3(8086/8186) | 分支:dev-v3 | PR:#3717 | 已部署测试服并实测通过(2026-06-12) +> 背景:保险方案新增弹窗的产品下拉调 `GET /v3/admin/insurance/products?page=1&pageSize=200` 被全局分页上限拦截,页面红 toast「每页条数最大为100」 + +## ⚠️ 关键说明 + +1. **`pageSize` 全平台上限是 100**(PageParam 全局校验,所有分页接口一致),传 >100 一律返 `code=400`「每页条数最大为100」。**请勿用大 pageSize 模拟全量拉取**。 +2. 需要全部数据的下拉/选择器场景,改用本次新增的**不分页全量接口** `GET /v3/admin/insurance/products/all`。 +3. 原分页接口 `/products` 行为完全不变,列表页继续用它。 + +## 1. 新增端点 + +`GET /v3/admin/insurance/products/all` + +### 入参(query) + +| 字段 | 类型 | 必填 | 说明 | +|---|---|---|---| +| isOverseas | boolean | 否 | true=仅境外 / false=仅境内 / 不传=全部(方案弹窗「产品类型」单选可直接映射此参数) | + +### 请求示例 + +```bash +# 全部产品 +curl -k "https://web.test.1814.love:9443/v3/admin/insurance/products/all" \ + -H "Authorization: Bearer {token}" + +# 仅境内(方案弹窗选「境内」时) +curl -k "https://web.test.1814.love:9443/v3/admin/insurance/products/all?isOverseas=false" \ + -H "Authorization: Bearer {token}" +``` + +### 响应示例(测试服实测,当前全量 10 条/境内 8 条) + +```json +{ + "code": 200, + "message": "成功", + "data": [ + { + "insuranceProductId": "2054773831589232641", + "productId": "2054773831589232641", + "productName": "山河令(太保山东新)", + "productCode": "4810725b34654e1e88a7509e5b241c3a" + // ...其余字段与分页版 /products 的列表项完全一致(同一 InsuranceProductVO) + } + ] +} +``` + +| 出参 | 说明 | +|---|---| +| data | **直接是数组**(无 total/page 包装),元素结构与分页版列表项一致,前端可无缝复用渲染逻辑 | + +## 2. 回归确认(测试服实测) + +| 调用 | 结果 | +|---|---| +| `/products/all` | 200,返回全量 10 条 | +| `/products/all?isOverseas=false` | 200,返回境内 8 条 | +| `/products?page=1&pageSize=200` | 400「每页条数最大为100」(维持不变,前端请改调 all) | +| `/products?page=1&pageSize=100` | 200,分页正常 |