「我的徽章」是 user_level 插件里的成就任务中心(个人卡片入口,路由 user_level_tasks),核心是三件事:做任务 → 手动领取积分 → 点亮徽章。

一、内置任务分组- 每日任务(当天重置):每天签到、浏览主题、回帖、发主题、点赞等,达标即可领,第二天重新来。
- 新手起航:设头像、填签名、注册满 7 天、首个主题/首条回复。
- 内容创作:累计主题、回复、深更发帖、人气热帖等。
- 社交互动:获得/送出点赞。
- 打卡习惯:近 7 天到访 5 天等。
默认 19 个,绝大多数是“领取一次、永久点亮”的一次性徽章,每日那 5 个按天轮换。
二、领取机制(关键特性)
- 手动领取、领取时实时判定:任务完成度在你点“领取”那一刻重算,达标才发积分;未达标不发、已领不重发(幂等)。
- 一键领取已完成:把当前所有已达标未领取的一次性领完。
- 积分经 user_points_change 入账,带流水说明“成就任务·xxx”。
三、徽章的查看与展示
- 页面每个任务带 emoji 徽章 + 进度条 + 状态(未完成进度 / 已点亮 / 待领取按钮)。
- 主题页 post-meta:展示当前用户已点亮的徽章(每日优先,个数后台可调,可后台只开每日),点击跳回「我的徽章」。
- 入口红数字角标:有“未学时值”徽章时,“我的徽章”入口显示红色待领取数量(当日缓存驱动,避免每页全量重算;页面开着时按键即更新)。
四、后台独立面板
- 每个任务可独立开关、改积分、改徽章 emoji;另有“入口开关”、“角标日显示个数 / 只显示每日”、“个人卡片入口是否显示”等开关。
五、数据与边界
- 只用插件自有表(plugin_user_level_task_claims 领取表,主键 user_id+task_key+period)+系统核心表(app_users/app_topics/app_replies)+ 插件流水 plugin_user_level_users/logs,不
依赖第三方插件。
- 一次性任务 period='0' 永久;每日 period='日期' 当天。
一句话:做成就、手动领积、挂徽章、入口红点提醒。
最后由 bbs1org 编辑于 2026-10-08 08:45主楼全部领取 哈哈