功能详细设计文档:F6 季节/时令/节日推荐
功能优先级:P2(提升推荐应景感) 文档版本:v1.0 关联 PRD:PRD-v1.0.md
一、功能概述
季节/节日推荐是感知时间维度的智能推荐层,让菜品的出现「恰逢其时」,而不是一年四季千篇一律。
二、页面结构
2.1 首页节日/季节 Banner
当有节日或季节专题时,在首页顶部展示 Banner:
┌──────────────────────────────────────┐
│ 🎉 端午特辑 │
│ 「粽」享美味,糯米飘香 │
│ 点击进入 → 端午专题 │
└──────────────────────────────────────┘
2.2 节日/季节专题页
┌──────────────────────────────────────┐
│ ← 返回 🎉 端午特辑 │
├──────────────────────────────────────┤
│ │
│ 📅 2026年6月19日 · 农历五月初五 │
│ ──────────────────────────── │
│ │
│ 为什么现在吃: │
│ 端午节是中国传统节日,吃粽子是 │
│ 千百年来的习俗,寓意团圆吉祥。 │
│ │
│ 🍽️ 端午美食推荐(共18道) │
│ │
│ ┌──────────────────────────┐ │
│ │ 🫘 鲜肉粽 │ │
│ │ 🔥 280kcal │ │
│ │ [传统] [咸口] [高碳水] │ │
│ └──────────────────────────┘ │
│ │
│ ┌──────────────────────────┐ │
│ │ 🍃 豆沙粽 │ │
│ │ 🔥 250kcal │ │
│ │ [传统] [甜口] [节日] │ │
│ └──────────────────────────┘ │
│ │
│ ──── 其他端午美食 ─────── │
│ [咸鸭蛋] [黄鳝烧肉] [雄黄酒(可选)] │
│ │
└──────────────────────────────────────┘
三、季节/时令推荐
3.1 四季推荐策略
| 季节 | 时间段 | 推荐菜品特征 | 示例菜品 |
|---|---|---|---|
| 春 | 3月-5月 | 鲜嫩、清爽、少辛辣 | 香椿炒蛋、荠菜馄饨、春笋炒肉、清明果 |
| 夏 | 6月-8月 | 清热、解暑、低油脂 | 凉拌黄瓜、酸梅汤、绿豆汤、冷面 |
| 秋 | 9月-11月 | 润燥、贴膘、丰收食材 | 大闸蟹、栗子烧鸡、秋梨银耳、桂花糕 |
| 冬 | 12月-2月 | 温热、滋补、炖煮为主 | 羊肉火锅、红烧肉、八宝粥、姜汤 |
3.2 节气推荐
二十四节气是中国传统农耕智慧的结晶,节气与饮食有天然关联:
| 节气 | 推荐食补 | 核心理念 |
|---|---|---|
| 立春 | 春饼、萝卜 | 迎春纳福 |
| 谷雨 | 香椿、谷雨茶 | 雨生百谷 |
| 夏至 | 面条、凉面 | 冬至饺子夏至面 |
| 立秋 | 贴秋膘、炖肉 | 弥补夏季消耗 |
| 冬至 | 饺子、羊肉汤 | 驱寒补阳 |
3.3 时令食材推荐
基于「什么季节产什么食材」的自然规律,在推荐中加入时令食材加成:
┌──────────────────────────────────────┐
│ 🌸 春季时令食材推荐 │
│ │
│ 🥬 现在吃最鲜: │
│ 春笋 · 香椿 · 荠菜 · 豌豆尖 │
│ 韭菜 · 草莓 · 枇杷 │
│ │
│ ──────────────────────────────── │
│ 推荐菜品: │
│ [春笋炒肉] [香椿炒蛋] [荠菜豆腐羹] │
└──────────────────────────────────────┘
四、节日推荐
4.1 节日分类
| 类别 | 节日 |
|---|---|
| 传统节日 | 春节、元宵节、清明节、端午节、中秋节、重阳节、冬至、腊八 |
| 法定节日 | 元旦、妇女节、劳动节、青年节、国庆节 |
| 现代节日 | 情人节、母亲节、父亲节、圣诞节、万圣节 |
| 美食专属 | 世界素食日(10月1日)、国际美食日(10月18日) |
4.2 节日推荐策略
| 节日 | 推荐内容 |
|---|---|
| 春节 | 年夜饭菜系、饺子、年糕、春卷 |
| 元宵节 | 汤圆(甜/咸之争)、元宵 |
| 端午节 | 粽子(南北粽子PK) |
| 中秋节 | 月饼(广式/苏式/冰皮)、螃蟹 |
| 冬至 | 饺子、羊肉汤、汤圆(地域差异) |
| 圣诞节 | 烤火鸡、圣诞布丁、姜饼屋 |
| 情人节 | 浪漫晚餐、红酒牛排、甜点 |
4.3 节日提醒(Push 通知)
- 节日前 3 天 推送提醒:「还有3天就是端午了,要不要试试自己做粽子?」
- 节日当天推送:「今天是端午,来一道应景美食吧 🎉」
注:Push 通知需用户授权,小程序能力有限,可作为引导打开 App 的入口
五、节日盲盒专题
在特定节日,盲盒增加「节日限定模式」:
┌──────────────────────────────────────┐
│ 🎲 端午限定盲盒 │
│ │
│ 只能在端午期间开启 │
│ 菜品范围:端午相关美食 │
│ │
│ 🆕 节日限定称号: │
│ 开启可获得「端午美食家」称号 │
│ │
│ [🎁 开启端午盲盒] │
│ │
└──────────────────────────────────────┘
六、技术实现
6.1 节日/季节数据模型
interface Festival {
id: string;
name: string; // 端午
date: string; // 2026-06-19
lunarDate?: string; // 农历五月初五
type: 'traditional' | 'legal' | 'modern' | 'food';
description: string; // 为什么现在吃
recommendedDishes: string[]; // 关联菜品 ID
isLunarCalendar: boolean; // 是否农历
}
interface Season {
id: 'spring' | 'summer' | 'autumn' | 'winter';
name: string; // 春季
dateRange: {
start: string; // 03-01
end: string; // 05-31
};
features: string[]; // 季节特点
recommendedIngredients: string[]; // 时令食材
recommendedDishTags: string[]; // 推荐菜品标签
}
interface SolarTerm {
id: string; // lichun
name: string; // 立春
date: string; // 2026-02-04
foodSuggestion: string; // 食补建议
recommendedDishes: string[];
}
6.2 推荐算法集成
节日/季节不独立推荐菜品,而是叠加在现有推荐逻辑上:
function applySeasonalBoost(dishes: Dish[], context: Context): Dish[] {
// 1. 获取当前季节和节日
const currentSeason = getCurrentSeason();
const currentFestival = getCurrentFestival();
// 2. 对菜品进行季节加权
return dishes.map(dish => ({
...dish,
score: dish.score +
(dish.seasons.includes(currentSeason) ? 0.3 : 0) +
(dish.festivals.some(f => currentFestival.includes(f)) ? 0.5 : 0)
})).sort((a, b) => b.score - a.score);
}
七、节日时间轴
7.1 重要节日清单(2026年示例)
月份 │ 节日 │ 推荐强度
─────┼────────────────────────────┼─────────
1月 │ 元旦、腊八(小寒、大寒) │ ★★★
2月 │ 春节、立春 │ ★★★★★
3月 │ 元宵节、妇女节、春分 │ ★★★★
4月 │ 清明节 │ ★★★★
5月 │ 劳动节、青年节、立夏 │ ★★★
6月 │ 端午节、儿童节、夏至 │ ★★★★★
7月 │ 建党节、小暑、大暑 │ ★★
8月 │ 建军节、立秋、七夕 │ ★★★
9月 │ 中秋节、白露、教师节 │ ★★★★★
10月 │ 国庆节、重阳节、寒露 │ ★★★★
11月 │ 立冬、小雪 │ ★★★
12月 │ 冬至、圣诞节、腊八 │ ★★★★
7.2 节日预热机制
T-7天:后台开始加载节日菜品数据
T-3天:首页Banner上线,推送提醒
T-1天:盲盒节日限定模式上线
T节日:全天节日氛围,开通专题页
T+1:节日内容保留3天后降权
八、复核检查项
| 检查点 | 状态 |
|---|---|
| 四季推荐策略明确 | ✅ |
| 二十四节气覆盖完整 | ✅ |
| 节日分类合理(传统/法定/现代/美食专属) | ✅ |
| 节日盲盒专题设计完整 | ✅ |
| 节日时间轴机制清晰 | ✅ |
| 推荐算法叠加逻辑可实现 | ✅ |
| 推送提醒机制设计完整 | ✅ |