Files
wx_service/docs/smoke
nepiedg f1f77a4d3d Add dashboard and latest logs endpoints for smoke tracking
- Introduced a new API endpoint `GET /api/v1/smoke/dashboard` to retrieve a summary of smoking statistics over a specified date range, including today's count and weekly breakdown.
- Added `GET /api/v1/smoke/logs/latest` endpoint to fetch the most recent smoking logs with a configurable limit.
- Updated the smoke handler and service to support the new functionality, including error handling for date parsing and limit validation.
- Enhanced documentation to reflect the new API endpoints and their usage.
2026-01-06 00:17:51 +00:00
..

戒烟/抽烟记录小程序

本小程序用于记录抽烟情况(日期、原因、烟瘾程度、数量等)。

依赖

  • 公共登录与认证:docs/common/auth.md
  • 通用响应结构:docs/common/response.md

数据表

主表:fa_smoke_logDDL 见:docs/sql/smoke.sql)。

说明:

  • 该表使用旧系统字段:createtime/updatetime/deletetime(秒级时间戳),并非 GORM 默认的 created_at/updated_at/deleted_at
  • 接口层通过 Token 识别用户,uid 由后端从登录用户推导,不允许前端传入。

真实抽烟时间(推荐使用 smoke_at

为支持“按时间节点分析”(例如:昨天哪些时段更容易想抽),建议在 fa_smoke_log 中新增:

  • smoke_at:真实抽烟时间(精确到时分秒,可补录)

数据约定建议:

  • 前端若提供了真实时间:写入 smoke_at;并同步写 smoke_time = date(smoke_at),方便沿用现有按天筛选。
  • 前端未提供真实时间:smoke_at=NULL,时间节点可用 createtime 作为近似(但补录会造成偏差)。

AI 戒烟建议(会员 + 广告解锁并行)

面向会员用户提供“昨日 AI 建议”;非会员用户在完成当日/指定日期的“看广告解锁”后也可生成建议。

涉及表(DDL 见:docs/sql/smoke.sql):

  • fa_smoke_ai_advice:按 uid + advice_date + prompt_version 缓存建议结果,避免重复调用 AI。
  • fa_smoke_ai_advice_unlocks:非会员用户的“每日解锁”记录(按 uid + unlock_date 唯一)。

建议的权限判断顺序:

  1. 若用户是会员:直接允许生成/获取建议。
  2. 否则:查询 fa_smoke_ai_advice_unlocks 是否已对 unlock_date=昨天(或请求 date 解锁;已解锁则允许。
  3. 否则:拒绝并提示“开通会员或观看广告解锁”。

会员判断建议使用通用会员表:

  • user_membershipsDDL 见:docs/sql/users.sql

无支付系统时,可用兑换码开通会员:

  • APIdocs/membership/API.md
  • DDLdocs/sql/membership.sql

给 AI 的输入(最小必需)建议包含:

  • 昨日总量:SUM(num)
  • 时间节点列表:按 COALESCE(smoke_at, FROM_UNIXTIME(createtime)) 排序的多条记录(每条带 num/level/remark