# mp 首页 productLines 过滤产品全下架的主题

**日期**: 2026-04-27
**PR**: #1462 (Closes #1461)
**影响端**: 小程序 mp

## 行为变化

`GET /mp/home` 返回的 `data.productLines` 字段过滤逻辑增强：

- **之前**: 只校验 `product_line.status == ACTIVE` 即返回主题卡片
- **现在**: 还要求该产品线下至少有 1 个 `status == PUBLISHED` 且未软删的产品

也就是说：产品线下产品全部下架/草稿/软删后，**主题卡片不再展示在首页**。点进空主题再看到「该主题下产品列表空」的情况不会再发生。

## 验收实证 (测试服 2026-04-27)

| lineId | name | published_cnt | response 中是否出现 |
|---|---|---|---|
| 2045765580526387201 | 2026小蒙马 | 0 | ❌ 不出现（被过滤）|
| 2044248925572919297 | 阿斯蒂芬撒点 | 1 | ✅ 出现 |
| 2047223431551741953 | 123 | 1 | ✅ 出现 |

## 前端注意

- 列表页/首页直接消费 `data.productLines`，无需改前端
- 如果前端缓存过 lines 列表（含 0 PUBLISHED 的），需要重新拉

## 后台行为

- admin 后台「产品线列表」`/admin/product/line/list` **不受影响**（管理端要看到全部主题包括 0 产品的）
- 仅 mp 端展示层加过滤
