feat: 新增心情打卡功能模块
实现心情打卡的完整功能,包括数据库表设计、API接口、业务逻辑和文档说明。支持记录多种心情类型、强度评分和统计分析功能。
This commit is contained in:
145
src/mood-checkins/README.md
Normal file
145
src/mood-checkins/README.md
Normal file
@@ -0,0 +1,145 @@
|
||||
# 心情打卡功能
|
||||
|
||||
## 功能概述
|
||||
|
||||
心情打卡功能允许用户记录每日的情绪状态,包括喜怒哀乐四种基本情绪类型,并可以添加强度评分和详细描述。
|
||||
|
||||
## 功能特性
|
||||
|
||||
### 1. 心情类型
|
||||
- **开心 (happy)**: 愉悦、满足的情绪
|
||||
- **心动 (excited)**: 因喜欢而心跳加速的情绪
|
||||
- **兴奋 (thrilled)**: 激动、充满活力的情绪
|
||||
- **平静 (calm)**: 宁静、安详的情绪
|
||||
- **焦虑 (anxious)**: 紧张、担忧的情绪
|
||||
- **难过 (sad)**: 悲伤、失落的情绪
|
||||
- **孤独 (lonely)**: 寂寞、孤单的情绪
|
||||
- **委屈 (wronged)**: 受到不公正对待的情绪
|
||||
- **生气 (angry)**: 愤怒、恼火的情绪
|
||||
- **心累 (tired)**: 精神疲惫、倦怠的情绪
|
||||
|
||||
### 2. 核心功能
|
||||
- ✅ 创建心情打卡记录
|
||||
- ✅ 更新已有心情记录
|
||||
- ✅ 删除心情记录(软删除)
|
||||
- ✅ 查看每日心情记录
|
||||
- ✅ 查看历史心情记录
|
||||
- ✅ 心情统计分析
|
||||
|
||||
### 3. 数据字段
|
||||
- `moodType`: 心情类型(必填)
|
||||
- `intensity`: 心情强度 1-10(必填,默认5)
|
||||
- `description`: 心情描述(可选)
|
||||
- `checkinDate`: 打卡日期(可选,默认当天)
|
||||
- `metadata`: 扩展数据,如标签、触发事件等(可选)
|
||||
|
||||
## API 接口
|
||||
|
||||
### 创建心情打卡
|
||||
```http
|
||||
POST /mood-checkins
|
||||
```
|
||||
|
||||
### 更新心情打卡
|
||||
```http
|
||||
PUT /mood-checkins
|
||||
```
|
||||
|
||||
### 删除心情打卡
|
||||
```http
|
||||
DELETE /mood-checkins
|
||||
```
|
||||
|
||||
### 获取每日心情
|
||||
```http
|
||||
GET /mood-checkins/daily?date=2025-08-21
|
||||
```
|
||||
|
||||
### 获取心情历史
|
||||
```http
|
||||
GET /mood-checkins/history?startDate=2025-08-01&endDate=2025-08-31&moodType=joy
|
||||
```
|
||||
|
||||
### 获取心情统计
|
||||
```http
|
||||
GET /mood-checkins/statistics?startDate=2025-08-01&endDate=2025-08-31
|
||||
```
|
||||
|
||||
## 数据库设计
|
||||
|
||||
### 表结构
|
||||
- 表名: `t_mood_checkins`
|
||||
- 主键: `id` (UUID)
|
||||
- 外键: `user_id` (关联用户表)
|
||||
- 索引: 用户ID、打卡日期、心情类型等
|
||||
|
||||
### 约束条件
|
||||
- 同一用户同一天同一心情类型只能有一条记录(自动更新)
|
||||
- 心情强度范围: 1-10
|
||||
- 支持软删除
|
||||
|
||||
## 业务逻辑
|
||||
|
||||
### 1. 创建逻辑
|
||||
- 检查当天是否已有相同心情类型的记录
|
||||
- 如果存在则更新,不存在则创建新记录
|
||||
- 记录活动日志
|
||||
|
||||
### 2. 统计功能
|
||||
- 总打卡次数
|
||||
- 平均心情强度
|
||||
- 各心情类型分布
|
||||
- 最频繁的心情类型
|
||||
|
||||
### 3. 权限控制
|
||||
- 用户只能操作自己的心情记录
|
||||
- 需要JWT认证
|
||||
- 支持活动日志记录
|
||||
|
||||
## 使用示例
|
||||
|
||||
### 创建心情打卡
|
||||
```json
|
||||
{
|
||||
"moodType": "joy",
|
||||
"intensity": 8,
|
||||
"description": "今天工作顺利,心情很好",
|
||||
"metadata": {
|
||||
"tags": ["工作", "成就感"],
|
||||
"trigger": "完成重要项目"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 统计数据响应
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"message": "success",
|
||||
"data": {
|
||||
"totalCheckins": 30,
|
||||
"averageIntensity": 6.8,
|
||||
"moodDistribution": {
|
||||
"happy": 8,
|
||||
"excited": 5,
|
||||
"thrilled": 4,
|
||||
"calm": 6,
|
||||
"anxious": 3,
|
||||
"sad": 2,
|
||||
"lonely": 1,
|
||||
"wronged": 0,
|
||||
"angry": 1,
|
||||
"tired": 0
|
||||
},
|
||||
"mostFrequentMood": "happy"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 扩展功能建议
|
||||
|
||||
1. **心情趋势分析**: 基于历史数据分析心情变化趋势
|
||||
2. **心情提醒**: 定时提醒用户进行心情打卡
|
||||
3. **心情分享**: 允许用户分享心情状态
|
||||
4. **心情建议**: 基于心情状态提供改善建议
|
||||
5. **数据导出**: 支持心情数据导出功能
|
||||
Reference in New Issue
Block a user