feat: add smt module

This commit is contained in:
nepiedg
2026-04-26 09:24:08 +08:00
parent 69eb3e5019
commit 613e4a58a9
78 changed files with 4629 additions and 5673 deletions
+55
View File
@@ -0,0 +1,55 @@
# smt 戒烟小程序 ThinkPHP 模块说明
本次在 `tp/app/smt` 下新增了一个 ThinkPHP 多应用模块,用于承接原 `wx_service``/api/v1/auth/*``/api/v1/smoke/*` 的主要能力。
## 已迁移范围
- 小程序登录:`POST /smt/v1/auth/login`
- 开发登录:`POST /smt/v1/auth/dev-login`
- 当前用户:`GET /smt/v1/auth/me`
- 更新用户资料:`PUT|POST /smt/v1/auth/profile`
- 戒烟资料:`GET|POST /smt/v1/smoke/profile`
- 抽烟记录:`/smt/v1/smoke/logs*`
- 首页、看板、统计、激励语:
- `GET /smt/v1/smoke/home`
- `GET /smt/v1/smoke/dashboard`
- `GET /smt/v1/smoke/stats`
- `GET /smt/v1/smoke/motivation`
- 下次抽烟建议:
- `GET /smt/v1/smoke/next_smoke_time`
- `GET /smt/v1/smoke/ai/next_smoke_time`
- AI 建议与每日总结:
- `GET /smt/v1/smoke/ai/advice`
- `POST /smt/v1/smoke/ai/advice_unlocks`
- `GET /smt/v1/smoke/ai/daily_summary`
- 分享:
- `POST /smt/v1/smoke/share`
- `GET /smt/v1/smoke/share/:token`
- `POST /smt/v1/smoke/share/:token/revoke`
- 戒烟计划:
- `POST /smt/v1/smoke/quit-plan/generate`
- `GET /smt/v1/smoke/quit-plan`
- `GET /smt/v1/smoke/quit-plan/days`
- `POST /smt/v1/smoke/quit-plan/reset`
- 成就:
- `GET /smt/v1/smoke/achievement/themes`
- `GET /smt/v1/smoke/achievement`
## 当前实现说明
- 数据库连接复用 `dbbiz`,直接对接 `users``mini_programs``user_memberships``fa_smoke_*``fa_achievement_*` 等表。
- 鉴权复用了原 Go 服务的语义:`Authorization: Bearer <session_key>`
- AI 能力优先读取环境变量:`AI_BASE_URL``AI_API_KEY``AI_MODEL``AI_TIMEOUT_SECONDS`
- 当 AI 环境变量缺失或调用失败时,已做规则版兜底,保证接口仍然可返回结果。
- 戒烟计划当前为规则生成版本,不再依赖 Go 侧的 AI 计划生成器。
## 未迁移范围
以下能力仍然在 Go 服务里,当前 `tp/app/smt` 未接入:
- `/api/v2/checkin/*` 戒烟打卡系统(quitcheckin
- 梦想目标、监督人、提醒等 v2 业务
- Go 侧的 Redis session 缓存
- Go 侧更细的 AI debug log 与测试体系
如果后续要把 `mini-programs/smt` 完全切到 `tp`,下一步应继续迁移 `wx_service/internal/quitcheckin``tp/app/smt` 或单独的 `tp/app/checkin`