---
date: 2026-06-11
type: dict-data
module: hl-user-service/sys_dict + insurance
priority: medium
status: merged-deployed
restart_service: hl-user-service（已部署并实测通过）
端类型: 管理后台
breaking_change: false
gitea_pr: 3692
---

# 保险状态字典 `insurance_status` 补 INSURING(出单中) + 标签对齐列表措辞

> 关联：保游 4.2 异步出单整改（changelog `10_3642`）引入 INSURING 状态后，字典一直没补；本次为纯字典数据变更，**后端已部署测试服并实测通过，前端零代码改动**（下拉走字典接口自动生效）。

## ⚠️ 关键说明

1. **前端不用改代码**：保险订单管理页筛选下拉走 `GET /admin/dict/data/insurance_status`，刷新页面即可看到新选项（字典接口有 5 分钟 Redis 缓存，测试服已手动清过，立即生效）。
2. **下拉标签措辞变了**：原字典标签（待投保/已投保/已取消/失败）与列表行 `statusLabel`（待出单/已承保/已退保/投保失败）是两套话术，本次统一为列表行同款措辞。若有截图/文案依赖旧措辞请同步。
3. **筛选 INSURING 直接可用**：列表接口 `GET /v3/admin/insurance/list` 的 `status` 入参无白名单校验，传 `INSURING` 即筛出出单中保单。

## 1. 字典终态（共 5 项，按状态生命周期排序）

| dict_value | dict_label（旧 → 新） | sort_order（旧 → 新） | 说明 |
|------------|----------------------|----------------------|------|
| PENDING | 待投保 → **待出单** | 2 → 1 | 已创建未发起投保 |
| **INSURING** | **出单中（新增）** | — → 2 | 保游 4.2 异步出单窗口期，等回调落定 |
| INSURED | 已投保 → **已承保** | 1 → 3 | 出单成功 |
| CANCELLED | 已取消 → **已退保** | 3 → 4 | 已撤单/退保 |
| FAILED | 失败 → **投保失败** | 4 → 5 | 出单失败（可手动重投） |

## 2. 验证示例（测试服实测）

```bash
curl -k "https://api.test.1814.love:9443/admin/dict/data/insurance_status" \
  -H "Authorization: Bearer {admin_token}"
```

响应（节选 data，字段同字典接口通用结构）：

```json
[
  { "dictValue": "PENDING",   "dictLabel": "待出单",   "sortOrder": 1 },
  { "dictValue": "INSURING",  "dictLabel": "出单中",   "sortOrder": 2 },
  { "dictValue": "INSURED",   "dictLabel": "已承保",   "sortOrder": 3 },
  { "dictValue": "CANCELLED", "dictLabel": "已退保",   "sortOrder": 4 },
  { "dictValue": "FAILED",    "dictLabel": "投保失败", "sortOrder": 5 }
]
```

筛选出单中保单：

```bash
curl -k "https://api.test.1814.love:9443/v3/admin/insurance/list?status=INSURING&page=1&pageSize=10" \
  -H "Authorization: Bearer {admin_token}"
```

（前端按现有 `searchForm.status` 传参即可，无需任何调整。）

## 3. 后端附带变更（与前端无关，备查）

- 新增 Flyway `V20260611_002`（hl-user-service）：整字典幂等补种 + 存量行收敛（原种子只在手工脚本 `sql/dict_business_enums.sql`，未纳入 Flyway，新环境会缺整个字典）。
- `InsuranceQueryRequest.status` 的 Swagger 注释由过时值集（PENDING/EFFECTIVE/EXPIRED/CANCELLED）更正为真实值集（PENDING/INSURING/INSURED/CANCELLED/FAILED），v2/v3 双份，纯文档无行为变化。
