hl-api-changelog/changelogs-v2/2026-06/19_4025_订单详情补产品封面productCoverImg-修改接口-管理后台.md
yaosutu 59932b6048 feat(changelog): 订单详情补产品封面字段 productCoverImg (#4026)
GET /v3/admin/order/{id} 的 main 块新增出参字段 productCoverImg,
与订单列表同名同义,历史订单无快照时返回 null,前端做占位图降级即可。
2026-06-19 09:57:14 +08:00

205 行
5.3 KiB
Markdown

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

# 订单详情补产品封面字段 productCoverImg
- **变更类型**:修改接口
- **端类型**:管理后台
- **日期**2026-06-19
- **Issue**[#4025](https://git.1814.love:8443/wx/HL/issues/4025)
- **PR**[#4026](https://git.1814.love:8443/wx/HL/pulls/4026)
- **后端负责人**:腰苏图
---
## 1. 接口背景
订单详情接口(`GET /v3/admin/order/{id}`)的 `main` 块此前不返回产品封面图,导致管理后台详情页无法展示封面,只能在订单列表页看到封面。本次补齐 `productCoverImg` 字段,与订单列表接口同名同义,前端可复用相同的图片渲染逻辑,无需额外适配。
---
## 2. 变更清单
| 序号 | 接口 | 变更点 | 变更类型 |
|------|------|--------|----------|
| 1 | `GET /v3/admin/order/{id}` | `data.main` 新增出参字段 `productCoverImg`(产品封面图 URL | ✨ 新增字段 |
**入参无变化,无 DDL 变更。**
---
## 3. 接口详情
| 项目 | 说明 |
|------|------|
| **方法** | GET |
| **路径** | `/v3/admin/order/{id}` |
| **接口名** | 订单详情9 Tab 聚合) |
| **认证** | Bearer JWT管理后台 Token |
| **幂等性** | 查询接口,天然幂等 |
| **限流** | 无特殊限流 |
| **返回结构** | `Result<OrderDetailRespVO>`,本次仅变更 `data.main` 块 |
---
## 4. 接口入参
### 4.1 路径参数
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| `id` | Long字符串形式 | 是 | 订单 ID雪花 ID,前端需以字符串传递防精度丢失 |
### 4.2 请求体
无请求体GET 接口)。
---
## 5. 出参字段
本次仅列出 `data.main` 块的变更字段。其余 Tabtraveler / itinerary / requirement / contract / insurance / payment / refund / complaint无变化。
### data.mainOrderMainVO新增字段
| 字段名 | 类型 | 可空 | 说明 |
|--------|------|------|------|
| `productCoverImg` | String | 是(可为 null | 产品封面图 OSS URL。下单时从产品快照落库,历史订单无封面快照返回 null |
> **与订单列表一致**`GET /v3/admin/order/list` 列表项 `productCoverImg` 字段同名同义,前端可复用相同渲染逻辑img src 赋值、占位图降级处理)。
---
## 6. 枚举 / 数据字典
本次变更无枚举或字典变化。
---
## 7. 错误码
本次变更无新增错误码。接口原有错误码不变:
| 错误码 | 说明 |
|--------|------|
| `580101` | 订单不存在 |
---
## 8. 示例
### 8.1 典型成功productCoverImg 有值)
**请求**
```http
GET /v3/admin/order/1923800000000001 HTTP/1.1
Authorization: Bearer <admin-token>
```
**响应(仅展示 data.main 核心字段,其余 Tab 略)**
```json
{
"code": 200,
"data": {
"main": {
"id": "1923800000000001",
"orderNo": "HL2026060001",
"productName": "长白山 5 日精品游",
"productCoverImg": "https://oss.hulalv.com/p/changbai-cover.jpg",
"orderStatus": "PENDING_PAYMENT",
"flowStepName": "待支付"
}
}
}
```
### 8.2 边界情况历史订单,productCoverImg 为 null
历史订单在 `product_cover_img` 列无快照数据时,字段返回 `null`,前端需做占位图降级处理。
**响应片段**
```json
{
"code": 200,
"data": {
"main": {
"id": "1800000000000001",
"orderNo": "HL2025120001",
"productCoverImg": null
}
}
}
```
### 8.3 业务失败(订单不存在)
**请求**
```http
GET /v3/admin/order/9999999999999999 HTTP/1.1
Authorization: Bearer <admin-token>
```
**响应**
```json
{
"code": 580101,
"msg": "订单不存在"
}
```
---
## 9. 业务边界
| 场景 | 行为 |
|------|------|
| 正常下单(有产品封面) | `productCoverImg` 返回产品封面 OSS URL |
| 历史订单(无封面快照) | `productCoverImg` 返回 `null`,前端需做占位图降级 |
| URL 为完整路径 | 直接赋值给 img src,无需拼接域名前缀 |
---
## 10. 修改前后对比
### 字段级对比data.main 块)
| 字段 | 修改前 | 修改后 |
|------|--------|--------|
| `productCoverImg` | **不存在**(详情不返回) | ✨ 新增,String,可为 null |
### 行为级对比
| 场景 | 修改前 | 修改后 |
|------|--------|--------|
| 管理后台详情页封面展示 | 无法在详情获取封面,只能在列表展示 | 详情 `main.productCoverImg` 直接可用 |
---
## 11. 影响评估 / 回滚
| 项目 | 说明 |
|------|------|
| **破坏兼容性** | 否。纯新增字段,旧前端代码忽略即可,不影响已有功能 |
| **前端同步上线** | 非必须同步。前端可按需接入此字段以展示封面 |
| **回滚方案** | 后端回滚 PR #4026 即可;前端无需回滚(该字段缺失时原逻辑不受影响) |
---
## 12. 注意事项
1. `productCoverImg` 可为 `null`,前端渲染时**必须**做判空处理img 设置 fallback 占位图,避免空 src 报错)。
2. 与订单列表接口(`GET /v3/admin/order/list`)的 `productCoverImg` **完全同名同义**,前端可提取公共渲染组件复用。
3. OSS URL 已是完整路径,不需要拼接域名前缀。
---
## 13. 关联 / 联系人
| 项目 | 链接 |
|------|------|
| Issue | https://git.1814.love:8443/wx/HL/issues/4025 |
| PR | https://git.1814.love:8443/wx/HL/pulls/4026 |
| 后端负责人 | 腰苏图 |