Files
xianyan/docs/superpowers/plans/2026-05-14-gamification-v2.md
Developer fc6fd7be0e feat: 完成v10.1.0版本大更新,新增密保系统、勋章、任务、排行榜等功能
### 变更详情
1. 新增密保问题系统,支持8种预置验证问题,多场景支持多验证方式
2. 新增勋章管理模块,包含勋章配置、用户勋章关联管理
3. 新增每日任务系统,支持任务配置和用户进度追踪
4. 新增赛季排行榜功能,支持周/月赛季排行与奖励结算
5. 新增信息流推荐权重配置管理
6. 重构服务路径分层,按设备/网络/数据分类管理服务
7. 优化Feed请求参数截断逻辑,避免URL过长
8. 新增等级工具类,统一处理等级颜色与称号展示
9. 新增屏幕共享共享信令Provider,复用传输服务实例
10. 新增Android/iOS分享适配与桌面小组件支持
11. 清理旧版测试脚本,新增部署维护脚本
12. 完善用户注销关联数据清理逻辑
2026-05-15 07:02:56 +08:00

9.3 KiB
Raw Blame History

养成体系 v2.0 实施计划

For agentic workers: REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (- [ ]) syntax for tracking.

Goal: 实现EXP独立体系、等级展示、勋章系统、赛季排行榜、每日任务五大养成功能

Architecture: 服务端基于ThinkPHP5(FastAdmin)新增7张数据库表、2个API控制器、7个管理控制器客户端基于Flutter新增排行榜/任务/勋章墙3个功能模块修改用户中心/签到/成就等现有页面

Tech Stack: PHP(ThinkPHP5/FastAdmin) + MySQL + Flutter(Dart) + Python(测试脚本)


Phase 1: EXP独立体系 + 等级展示

Task 1.1: 数据库迁移

Files:

  • Create: docs/toolsapi/application/admin/command/Install/migrate_v11.sql

  • 创建迁移SQL: tool_user新增exp字段 + tool_user_exp_log表

Task 1.2: 服务端ExpEngine核心

Files:

  • Modify: docs/toolsapi/application/common/model/User.php

  • User模型新增exp字段类型定义

  • 新增nextlevelByExp()方法: floor(exp^0.4/10)+1, 10级封顶

  • 新增exp()静态方法: 带事务锁的EXP增减自动计算level

  • 修改score()方法: 积分变动时同时产出EXP

Task 1.3: 服务端UserCenter API

Files:

  • Modify: docs/toolsapi/application/api/controller/UserCenter.php

  • index()返回新增level/exp/exp_to_next/exp_progress字段

  • 新增expLog()方法: EXP变动日志分页查询

  • signin()方法: 签到时同时产出EXP(5+continuous*2)

  • checkin相关: 打卡时产出EXP(10)

Task 1.4: 客户端数据模型

Files:

  • Modify: lib/features/auth/models/user_model.dart

  • Modify: lib/features/user_center/models/user_center_models.dart

  • UserModel新增level/exp/expToNext/expProgress字段

  • UserCenterInfo新增level/exp相关字段

Task 1.5: 客户端等级卡片组件

Files:

  • Create: lib/shared/widgets/level_card.dart

  • 创建等级卡片组件: 等级数字+称号+EXP进度条+下一级所需

Task 1.6: 客户端页面集成

Files:

  • Modify: lib/features/signin/presentation/signin_page.dart

  • Modify: lib/features/achievement/presentation/achievement_page.dart

  • Modify: lib/features/user_center/presentation/user_center_page.dart

  • 签到页: 签到卡片增加等级展示

  • 成就页: 概要增加等级信息

  • 用户中心: 增加等级卡片

Task 1.7: 上传服务器+测试

  • 上传PHP文件到服务器
  • 执行数据库迁移
  • 编写EXP全流程测试脚本
  • 运行测试并验证

Phase 2: 勋章系统

Task 2.1: 数据库迁移

Files:

  • Modify: docs/toolsapi/application/admin/command/Install/migrate_v11.sql

  • 追加tool_badge + tool_user_badge建表SQL

  • 追加20个预置勋章INSERT语句

Task 2.2: 服务端BadgeEngine

Files:

  • Modify: docs/toolsapi/application/api/controller/Achievement.php

  • 新增badges()方法: 获取所有勋章列表(含用户解锁状态)

  • 新增badgeDisplay()方法: 设置主页展示勋章(最多3个)

  • 新增_checkBadges()方法: 勋章检测逻辑

  • claim()方法: 领取成就后触发勋章检测

  • signin()后触发勋章检测

Task 2.3: 管理员后台-勋章管理

Files:

  • Create: docs/toolsapi/application/admin/controller/Badge.php

  • Create: docs/toolsapi/application/admin/model/Badge.php

  • Create: docs/toolsapi/application/admin/validate/Badge.php

  • Create: docs/toolsapi/application/admin/view/badge/index.html

  • Create: docs/toolsapi/application/admin/view/badge/add.html

  • Create: docs/toolsapi/application/admin/view/badge/edit.html

  • Create: docs/toolsapi/public/assets/js/backend/badge.js

  • Create: docs/toolsapi/application/admin/lang/zh-cn/badge.php

  • 勋章管理CRUD(列表/添加/编辑/删除)

  • 勋章图标/稀有度/条件配置

Task 2.4: 管理员后台-用户勋章

Files:

  • Create: docs/toolsapi/application/admin/controller/user/UserBadge.php

  • Create: docs/toolsapi/application/admin/model/UserBadge.php

  • Create: docs/toolsapi/application/admin/view/user/user_badge/index.html

  • Create: docs/toolsapi/public/assets/js/backend/user/user_badge.js

  • Create: docs/toolsapi/application/admin/lang/zh-cn/user/user_badge.php

  • 用户勋章列表(查看/手动发放/收回)

Task 2.5: 客户端勋章墙

Files:

  • Create: lib/features/achievement/presentation/badge_wall_page.dart

  • Create: lib/features/achievement/providers/badge_provider.dart

  • Create: lib/shared/widgets/badge_icon.dart

  • 勋章图标组件(含稀有度边框颜色)

  • 勋章墙页面(全部勋章网格+已解锁/未解锁状态)

  • 主页展示设置(选择最多3个展示)

Task 2.6: 上传服务器+测试

  • 上传PHP文件+执行迁移
  • 编写勋章全流程测试脚本
  • 运行测试并验证

Phase 3: 每日任务

Task 3.1: 数据库迁移

  • 追加tool_daily_task + tool_user_task建表SQL
  • 追加8个预置任务INSERT语句

Task 3.2: 服务端TaskEngine

Files:

  • Create: docs/toolsapi/application/api/controller/Task.php

  • today()方法: 获取今日任务列表(含进度)

  • reportProgress()方法: 上报任务进度

  • claim()方法: 领取任务奖励

  • claimPerfect()方法: 领取完美日奖励

  • registerCustom()方法: 注册自定义任务

Task 3.3: 管理员后台-任务管理

Files:

  • Create: docs/toolsapi/application/admin/controller/DailyTask.php + 配套model/validate/view/js/lang

  • Create: docs/toolsapi/application/admin/controller/user/UserTask.php + 配套

  • 每日任务CRUD

  • 用户任务进度查看

Task 3.4: 客户端每日任务页

Files:

  • Create: lib/features/task/presentation/daily_task_page.dart

  • Create: lib/features/task/providers/task_provider.dart

  • Create: lib/features/task/services/task_service.dart

  • Create: lib/shared/widgets/task_card.dart

  • 任务卡片组件

  • 每日任务页面(任务列表+进度+领取)

  • 完美日动画效果

Task 3.5: 上传服务器+测试

  • 上传+迁移+测试

Phase 4: 赛季排行榜

Task 4.1: 数据库迁移

  • 追加tool_rank_season + tool_rank_record建表SQL

Task 4.2: 服务端RankEngine

Files:

  • Create: docs/toolsapi/application/api/controller/Rank.php

  • seasons()方法: 赛季列表

  • leaderboard()方法: 排行榜查询

  • myRank()方法: 我的排名

  • claimReward()方法: 领取赛季奖励

  • 赛季自动创建+结算逻辑

Task 4.3: 管理员后台-赛季管理

Files:

  • Create: docs/toolsapi/application/admin/controller/RankSeason.php + 配套

  • Create: docs/toolsapi/application/admin/controller/RankRecord.php + 配套

  • 赛季CRUD+奖励配置+手动结算

  • 排名记录查看+手动发放奖励

Task 4.4: 客户端排行榜页

Files:

  • Create: lib/features/rank/presentation/rank_page.dart

  • Create: lib/features/rank/providers/rank_provider.dart

  • Create: lib/features/rank/services/rank_service.dart

  • Create: lib/shared/widgets/rank_item.dart

  • 排行榜页面(周赛/月赛Tab + 4种排行类型)

  • 排行条目组件(排名+头像+等级+数值)

  • 我的排名卡片+奖励领取

Task 4.5: 上传服务器+测试

  • 上传+迁移+测试

Phase 5: 管理员后台完善

Task 5.1: 用户管理扩展

Files:

  • Modify: docs/toolsapi/application/admin/controller/user/User.php

  • Modify: docs/toolsapi/application/admin/view/user/user/edit.html

  • edit()增加exp字段编辑

  • edit.html增加exp输入框+level只读显示

Task 5.2: EXP日志管理

Files:

  • Create: docs/toolsapi/application/admin/controller/user/ExpLog.php + 配套

  • EXP日志查看(只读列表)

Task 5.3: 菜单权限配置

  • fa_auth_rule INSERT: 养成管理一级菜单+7个二级菜单+权限节点

Task 5.4: 上传服务器+验证

  • 上传所有管理后台文件
  • 执行菜单SQL
  • 验证后台功能

归档列表

Phase 1: EXP独立体系 + 等级展示

  • Task 1.1: 数据库迁移
  • Task 1.2: 服务端ExpEngine核心
  • Task 1.3: 服务端UserCenter API
  • Task 1.4: 客户端数据模型
  • Task 1.5: 客户端等级卡片组件
  • Task 1.6: 客户端页面集成
  • Task 1.7: 上传服务器+测试(7/7通过)

Phase 2: 勋章系统

  • Task 2.1: 数据库迁移
  • Task 2.2: 服务端BadgeEngine
  • Task 2.3: 管理员后台-勋章管理
  • Task 2.4: 管理员后台-用户勋章
  • Task 2.5: 客户端勋章墙
  • Task 2.6: 上传服务器+测试(7/7通过)

Phase 3: 每日任务

  • Task 3.1: 数据库迁移
  • Task 3.2: 服务端TaskEngine
  • Task 3.3: 管理员后台-任务管理
  • Task 3.4: 客户端每日任务页
  • Task 3.5: 上传服务器+测试

Phase 4: 赛季排行榜

  • Task 4.1: 数据库迁移
  • Task 4.2: 服务端RankEngine
  • Task 4.3: 管理员后台-赛季管理
  • Task 4.4: 客户端排行榜页
  • Task 4.5: 上传服务器+测试

Phase 5: 管理员后台完善

  • Task 5.1: 用户管理扩展
  • Task 5.2: EXP日志管理
  • Task 5.3: 菜单权限配置
  • Task 5.4: 上传服务器+验证