跳到主要内容

功能详细设计文档: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天后降权

八、复核检查项

检查点状态
四季推荐策略明确
二十四节气覆盖完整
节日分类合理(传统/法定/现代/美食专属)
节日盲盒专题设计完整
节日时间轴机制清晰
推荐算法叠加逻辑可实现
推送提醒机制设计完整