# heads-up: 测试服新增 NONE 类型 banner 测试数据 (无跳转场景)

> **类型**: heads-up (非 PR, 仅测试数据通知)
> **日期**: 2026-05-23
> **环境**: 测试服 (api.test.1814.love)
> **接收方**: mmg (前端)
> **前端**: **无需改动**, 仅告知测试服多了一条 NONE 类型 banner 可用于联调

---

## 背景

PR #2952 (banner 顶层 tags + PRODUCT 字段补全) 上测试服后, wx 让我顺手验证 `/mp/banner/active` 对其他 linkType 的覆盖情况。查 DB 发现测试服现有 active banner 只有 PRODUCT + PRODUCT_LINE 各 1 条, 其他类型(NONE/SCENIC/ACTIVITY/HOTEL/PAGE/WEBVIEW)都没有 active 数据。

为了让前端能测"无跳转 banner"卡片样式, 我用 admin API 造了 1 条 NONE 类型 banner。

## 新增数据

| 字段 | 值 |
|---|---|
| id | `2058030675058958337` |
| title | `[autotest] NONE 类型测试 banner` |
| subtitle | "无跳转, 纯展示" |
| linkType | **NONE** |
| linkId | `""` (空) |
| tags | `["测试","无跳转","纯展示"]` |
| sortOrder | 50 |
| status | 1 (上架) |
| 有效期 | 2026-05-23 ~ 2027-12-31 |
| imageUrl | 复用现有测试图 |

`[autotest]` 前缀标识为自动测试数据, 不参与生产逻辑评估, 可随时删除。

## `/mp/banner/active` 实际返回(3 条按 sortOrder)

| sortOrder | linkType | linkTarget | 前端卡片渲染 |
|---|---|---|---|
| 1 | PRODUCT | 完整产品对象 | 跳产品详情页 |
| **50** | **NONE** | **null** | **不跳转**, 仅展示 title / imageUrl / tags |
| 99 | PRODUCT_LINE | 完整主题对象 | 跳主题详情页 |

## NONE 类型字段对照

```json
{
  "id": "2058030675058958337",
  "title": "[autotest] NONE 类型测试 banner",
  "linkType": "NONE",
  "linkId": "",
  "tags": ["测试", "无跳转", "纯展示"],
  "linkTargetType": null,
  "linkTarget": null,
  "seasons": null,
  "sortOrder": 50
}
```

## 🚨 前端建议

1. **NONE 类型卡片不读 linkTarget** — 强制 null, 读取会得到 null 触发空对象问题
2. **点击行为**: 不跳转 (或不绑定点击事件)
3. **顶层 tags 仍正常返回** — 可在卡片角落展示标签徽章
4. **可联调验证**: 当前测试服 3 条 active banner 覆盖了所有有 enrich 逻辑的 linkType (PRODUCT/PRODUCT_LINE) + 1 条无 enrich (NONE)

## 后续清理

mmg 联调完通知 wx 后, 我会用 admin API 软删这条 `[autotest]` banner。如不告知, 1 个月后我例行清理。

---

## 联系人

后端: wx (呼籁旅行)
前端: mmg
