|
|
4d1b8910f8
|
feat(challenges): 修改挑战列表过滤条件为只显示正在进行的挑战
|
2025-10-01 22:54:03 +08:00 |
|
richarjiang
|
999fc7f793
|
feat(challenges): 支持公开访问挑战列表与详情接口
- 在 GET /challenges、GET /challenges/:id、GET /challenges/:id/rankings 添加 @Public() 装饰器,允许未登录用户访问
- 将 userId 改为可选参数,未登录时仍可返回基础数据
- 列表接口过滤掉 UPCOMING 状态挑战,仅展示进行中/已结束
- 返回 DTO 新增 unit 字段,用于前端展示进度单位
- 鉴权守卫优化:公开接口若携带 token 仍尝试解析并注入 user,方便后续业务逻辑
|
2025-09-30 16:43:46 +08:00 |
|
richarjiang
|
87c3cbfac9
|
feat(challenges): 新增分页排行榜接口并重构排行逻辑
- 新增 GET /challenges/:id/rankings 接口,支持分页查询排行榜
- 抽离 buildChallengeRankings 方法,统一排行榜数据构建逻辑
- 新增 ChallengeRankingListDto 与 GetChallengeRankingQueryDto 用于接口数据校验
- 优化挑战列表排序逻辑,按状态优先级与时间排序
- 修复排行榜索引计算错误,确保分页场景下排名正确
|
2025-09-30 11:17:31 +08:00 |
|
richarjiang
|
f13953030b
|
feat(challenges): 新增今日上报值与目标值字段至排行榜接口
|
2025-09-29 17:22:10 +08:00 |
|
richarjiang
|
12acbbd166
|
feat(challenges): 新增今日打卡状态字段并更新进度构建逻辑
- 在 ChallengeProgressDto 中增加 checkedInToday 字段
- 修改 buildChallengeProgress 方法,支持传入 lastProgressAt 参数
- 所有调用处同步更新,确保返回包含今日打卡状态
- 使用 dayjs 判断最后进度时间是否为今日
|
2025-09-29 17:12:54 +08:00 |
|
richarjiang
|
64460a9d68
|
feat(challenges): 新增挑战类型字段并重构进度上报逻辑
- 数据库新增 type 列区分 water/exercise/diet/mood/sleep/weight 六类挑战
- 进度上报由增量模式改为绝对值模式,字段 increment_value → reportedValue
- 服务层按 challenge.targetValue 判断当日是否完成,再按 minimumCheckInDays 统计总进度
- 相关 DTO 与模型同步更新,支持新类型返回
BREAKING CHANGE: 上报接口字段由 increment 改为 value,且为当日绝对值
|
2025-09-29 15:14:48 +08:00 |
|
richarjiang
|
d87fc84575
|
feat(challenges): 使用 minimumCheckInDays 统一进度目标计算
将挑战完成目标从 targetValue/progressUnit 改为 minimumCheckInDays 字段驱动,确保列表、详情、加入、打卡各场景使用一致的完成天数标准,并移除前端展示字段 badge/subtitle。
|
2025-09-29 10:25:20 +08:00 |
|
richarjiang
|
22fcf694a6
|
fix(db): 统一字符集排序规则并修复时间戳类型
- 新增 SQL 脚本统一表与列字符集为 utf8mb4_unicode_ci
- 移除建表语句冗余 COLLATE 子句,由全局配置控制
- 将挑战起止时间字段由 Date 改为 BIGINT 时间戳,避免时区与精度问题
- 补充 Winston 日志追踪挑战详情查询性能
- 数据库模块新增 charset 与 collate 全局配置,确保后续表一致性
BREAKING CHANGE: challenge.startAt/endAt 由 Date 变更为 number(毫秒时间戳),调用方需同步调整类型
|
2025-09-29 09:59:06 +08:00 |
|
richarjiang
|
ae8039c9ed
|
feat(challenges): 新增每日进度上报防重复机制
- 创建 t_challenge_progress_reports 表记录用户每日上报
- 通过唯一索引 (challenge_id, user_id, report_date) 确保每日仅一次有效上报
- 更新 progress 时先写入报告表,冲突则直接返回当前进度
- 模块中新增 ChallengeProgressReport 模型及相关依赖
|
2025-09-28 12:13:31 +08:00 |
|
richarjiang
|
1b7132a325
|
feat(challenges): 新增挑战功能模块及完整接口实现
- 新增挑战列表、详情、加入/退出、进度上报等 REST 接口
- 定义 Challenge / ChallengeParticipant 数据模型与状态枚举
- 提供排行榜查询与用户排名计算
- 包含接口文档与数据库初始化脚本
|
2025-09-28 12:02:39 +08:00 |
|
richarjiang
|
8e51994e71
|
feat: 支持会员编号
|
2025-09-26 08:48:22 +08:00 |
|
richarjiang
|
21b00cee0d
|
fix: 优化围度数据计算逻辑
|
2025-09-24 18:03:32 +08:00 |
|
richarjiang
|
c9eda4577f
|
feat(users): 新增围度分析报表接口
- 添加 dayjs 依赖用于日期处理
- 新增 GetBodyMeasurementAnalysisDto 和 GetBodyMeasurementAnalysisResponseDto
- 支持按周、月、年三种时间范围统计围度变化趋势
- 实现最近数据点匹配算法,返回各围度类型最接近时间点的测量值
|
2025-09-24 17:51:57 +08:00 |
|
richarjiang
|
e2fcb1c428
|
feat(users): 添加身体围度测量功能
新增用户身体围度的完整功能模块,包括数据库迁移、模型定义、API接口和历史记录追踪。
支持胸围、腰围、上臀围、臂围、大腿围、小腿围六项身体围度指标的管理。
- 添加数据库迁移脚本,扩展用户档案表字段
- 创建围度历史记录表用于数据追踪
- 实现围度数据的更新和历史查询API
- 添加数据验证和错误处理机制
|
2025-09-22 09:49:42 +08:00 |
|
|
|
dc06dfbebd
|
perf:修复健康数据
|
2025-09-12 23:00:49 +08:00 |
|
richarjiang
|
cf02fda4ec
|
chore: 调整用户控制器日志级别并新增文件信息记录
|
2025-09-12 15:48:39 +08:00 |
|
richarjiang
|
090b91e72d
|
feat: 支持图片上传接口
|
2025-09-12 14:23:18 +08:00 |
|
richarjiang
|
97e6a0ff6d
|
feat: 添加GLM-4.5V和DashScope模型支持,优化饮食分析服务的API调用
|
2025-09-04 10:16:24 +08:00 |
|
richarjiang
|
d34f752776
|
feat: 新增食物识别API,调整字段名,扩展识别功能与提示逻辑
|
2025-09-04 09:36:07 +08:00 |
|
richarjiang
|
02f21f0858
|
feat(water-records): 优化创建喝水记录和获取记录列表的日期处理逻辑
|
2025-09-02 15:27:21 +08:00 |
|
richarjiang
|
730b1df35e
|
feat: 更新喝水统计功能,支持指定日期查询并返回相应数据
|
2025-09-02 11:32:22 +08:00 |
|
richarjiang
|
2c2e964199
|
feat(water-records): 新增喝水记录功能模块
新增完整的喝水记录管理功能,支持用户记录每日喝水情况、设置目标和查看统计信息。功能包括:
- 创建、查询、更新和删除喝水记录
- 设置和管理每日喝水目标
- 获取今日喝水统计和完成率分析
- 支持分页查询和日期范围筛选
- 完整的数据验证和错误处理机制
该模块已从用户模块中独立出来,提供REST API接口,包含数据库迁移脚本和详细文档。
|
2025-09-01 11:02:13 +08:00 |
|
richarjiang
|
0488fe62a1
|
feat: 添加食物识别功能,支持根据图片URL识别食物并转换为饮食记录格式
|
2025-08-31 14:14:33 +08:00 |
|
|
|
d0b02b6228
|
feat: 新增用户食物收藏功能
- 创建用户食物收藏表 `t_user_food_favorites`,用于存储用户收藏的食物信息。
- 在 `FoodLibraryController` 中添加收藏和取消收藏食物的 API 接口。
- 在 `FoodLibraryService` 中实现收藏和取消收藏的业务逻辑,并获取用户收藏的食物 ID 列表。
- 更新 DTO 以支持食物是否已收藏的状态。
|
2025-08-29 21:03:55 +08:00 |
|
richarjiang
|
6542988cb6
|
feat: 支持用户自定义食物
|
2025-08-29 15:57:28 +08:00 |
|
richarjiang
|
c0bdb3bf0a
|
perf: 优化饮食记录代码
|
2025-08-29 10:13:26 +08:00 |
|
richarjiang
|
8a69f4f1af
|
perf
|
2025-08-29 09:44:35 +08:00 |
|
richarjiang
|
74faebd73d
|
feat: 新增食物库模块,含模型、服务、API及初始化数据
|
2025-08-29 09:06:18 +08:00 |
|
richarjiang
|
a1c21d8a23
|
feat: 新增饮食记录模块,含增删改查及营养汇总功能
|
2025-08-29 08:48:22 +08:00 |
|
richarjiang
|
17ee96638e
|
feat: 新增体重记录接口及枚举,优化AI教练选择项处理
|
2025-08-28 09:46:03 +08:00 |
|
richarjiang
|
e3cd496f33
|
feat(users): 更新用户接口添加EFICHOPER(builderId,u-formatIdFast生成提)录制
|
2025-08-27 19:05:30 +08:00 |
|
richarjiang
|
04903426d1
|
refactor: 移除使用次数扣除逻辑,调整活动类型及记录逻辑
|
2025-08-27 19:01:21 +08:00 |
|
richarjiang
|
c3961150ab
|
feat: 优化AI教练聊天逻辑,增加用户聊天次数检查和响应内容
- 在AI教练控制器中添加用户聊天次数检查,若次数用完则返回相应提示信息。
- 更新AI聊天响应DTO,新增用户剩余聊天次数和AI回复文本字段,提升用户体验。
- 修改用户服务,支持初始体重和目标体重字段的更新,增强用户资料的完整性。
|
2025-08-27 14:22:25 +08:00 |
|
richarjiang
|
79aa300aa1
|
feat: 在用户资料中添加活动水平字段
- 更新用户资料相关逻辑,新增活动水平字段,支持用户在更新资料时提供活动水平信息。
- 修改相关DTO和模型,确保活动水平字段的有效性和数据一致性。
- 更新用户响应数据结构,包含活动水平信息,提升用户体验和数据完整性。
|
2025-08-27 10:00:18 +08:00 |
|
richarjiang
|
a8c67ceb17
|
feat: 为新用户添加默认头像字段
- 在用户创建逻辑中新增avatar字段,设置默认头像链接,提升用户体验和个性化展示。
|
2025-08-27 09:12:15 +08:00 |
|
|
|
8aca29e2b3
|
feat: 更新目标修改逻辑,增加日志记录和日期处理优化
- 在updateGoal方法中添加日志记录,便于调试和监控目标更新过程。
- 优化目标更新时的日期处理逻辑,确保endDate字段在未提供时设置为undefined,提升数据的灵活性。
|
2025-08-26 22:12:46 +08:00 |
|
|
|
475f928990
|
feat: 优化目标任务生成逻辑,增加自定义重复规则支持
- 在GoalTaskService中添加对自定义重复规则的支持,允许用户指定生成任务的星期几。
- 增加日志记录,便于调试和监控任务生成过程。
- 确保生成的任务不会与现有任务冲突,提升任务管理的灵活性和准确性。
|
2025-08-24 09:46:24 +08:00 |
|
|
|
cba56021de
|
feat: 删除心情打卡和目标子任务API测试文件
- 移除test-goal-tasks.http和test-mood-checkins.http文件,清理不再使用的测试文件。
- 更新GoalsService中的目标删除逻辑,增加事务处理以确保数据一致性。
- 优化GoalTaskService中的任务生成逻辑,增加日志记录以便于调试和监控。
|
2025-08-23 14:31:15 +08:00 |
|
richarjiang
|
f6b4c99e75
|
feat: 移除获取目标和任务详情的API及相关逻辑
- 删除GoalsController和GoalsService中获取单个目标和任务详情的API实现,简化代码结构。
- 更新GoalTaskService中的分页参数,将每页数量调整为200,提升数据处理能力。
- 优化GoalTaskQueryDto,移除页码和每页数量的验证装饰器,简化DTO结构。
|
2025-08-22 17:23:14 +08:00 |
|
richarjiang
|
3530d123fc
|
feat: 新增目标子任务管理功能模块
- 实现目标子任务的完整功能,包括数据库表设计、API接口、业务逻辑和文档说明。
- 支持用户创建、管理和跟踪目标子任务,提供增删改查操作及任务完成记录功能。
- 引入惰性任务生成机制,优化任务管理体验,提升系统性能和用户交互。
|
2025-08-22 16:01:12 +08:00 |
|
richarjiang
|
062a78a839
|
feat: 优化目标创建逻辑,处理日期和时间字段的空值情况
- 更新目标创建逻辑,确保在创建目标时,startDate、startTime和endTime字段可以处理空值,提升数据的灵活性和安全性。
|
2025-08-22 11:22:55 +08:00 |
|
richarjiang
|
acf8d0c48c
|
feat: 更新目标管理模块,优化数据库表结构和API逻辑
- 修改目标表和目标完成记录表的字段类型,增强数据一致性和查询性能。
- 移除不必要的搜索字段,简化目标查询DTO,提升查询效率。
- 引入目标状态枚举,增强代码可读性和维护性。
- 添加复合索引以优化查询性能,提升系统响应速度。
- 更新目标管理控制器和服务逻辑,确保与新数据库结构的兼容性。
|
2025-08-22 11:22:27 +08:00 |
|
richarjiang
|
ffc0cd1d13
|
feat: 更新心情打卡功能,优化用户信息处理
- 将用户身份信息从字符串类型改为AccessTokenPayload对象,增强代码可读性和安全性。
- 移除心情打卡DTO中的metadata字段,简化数据结构,提升性能。
- 更新心情打卡服务,去除不必要的metadata处理逻辑,优化数据存储。
|
2025-08-22 08:55:35 +08:00 |
|
|
|
270b59c599
|
feat: 新增目标管理功能模块
实现目标管理的完整功能,包括数据库表设计、API接口、业务逻辑和文档说明。支持用户创建、管理和跟踪个人目标,提供增删改查操作及目标完成记录功能。
|
2025-08-21 22:50:30 +08:00 |
|
richarjiang
|
f26d8e64c6
|
feat: 新增心情打卡功能模块
实现心情打卡的完整功能,包括数据库表设计、API接口、业务逻辑和文档说明。支持记录多种心情类型、强度评分和统计分析功能。
|
2025-08-21 15:20:05 +08:00 |
|
richarjiang
|
513d6e071d
|
refactor(users): 更新用户活动表名并添加日志记录
将用户活动表名从'user_activities'改为't_user_activities',并在服务中添加详细的日志记录逻辑。
|
2025-08-21 14:52:09 +08:00 |
|
richarjiang
|
73f53ac5e4
|
feat: 生成活动接口
|
2025-08-21 14:28:15 +08:00 |
|
richarjiang
|
94e1b124df
|
feat: 更新AI教练服务,增强用户体重记录和分析功能
- 新增流式聊天处理逻辑,支持用户选择和指令解析,提升交互体验。
- 实现体重记录的确认和趋势分析功能,用户可查看体重变化及健康建议。
- 扩展DTO,增加交互类型以支持新的功能,确保数据结构的完整性。
- 优化错误处理和日志记录,提升系统稳定性和可维护性。
|
2025-08-21 10:24:37 +08:00 |
|
richarjiang
|
4cd8d59f12
|
优化GetDietHistoryQueryDto,移除limit和page属性的验证装饰器,简化DTO结构。
|
2025-08-19 14:24:53 +08:00 |
|
richarjiang
|
8e27e3d3e3
|
feat: 增强饮食分析服务,支持文本饮食记录处理
- 新增分析用户文本中的饮食信息功能,自动记录饮食信息并提供营养分析。
- 优化饮食记录处理逻辑,支持无图片的文本记录,提升用户体验。
- 添加单元测试,确保文本分析功能的准确性和稳定性。
- 更新相关文档,详细说明新功能的使用方法和示例。
|
2025-08-19 08:58:52 +08:00 |
|