登记积分

搜索并选择学员后,点击快捷积分项或自定义分值,立即入账并写入流水。

请先选择学员

最新流水

加载中…

学员名单

排名姓名学号小组总积分等级操作
加载中…

小组管理

组总积分 = 组员个人积分之和 + 小组集体积分;组均分 = 组总积分 ÷ 组人数。删除小组后成员变为未分组,个人积分不受影响。

排名名称人数成员分和集体积分组总分组均分状态操作
加载中…

集体积分流水

ID时间小组变动余额事由来源
加载中…

积分项配置

积分墙与管理台的快捷按钮全部由这里驱动;「适用小组」为空表示全部小组可用。

排序名称类型默认分值颜色图标适用小组状态操作
加载中…
ID时间学员变动余额事由来源外部单号
加载中…

管理口令

口令用于进入本后台与调用全部管理接口,保存在当前浏览器 localStorage 中。安全提示:公共设备使用后请及时「清除」。

等级规则

按总积分从低到高定义等级,首级下限必须为 0,积分墙实时生效。

API Client 管理

每个 Client 对应一组 API Key、CORS 白名单与权限范围。名单读取(roster:read)与积分写入(points:write)建议使用不同 Token。点击每行的「提示词」可生成含该 Key 的 AI 接入提示词,复制发给 AI 即可。

名称Key 前缀权限范围CORS 白名单状态最近使用操作
加载中…

数据一致性

分别重算「学员总分 vs 个人流水合计」「小组集体分 vs 集体流水合计」;不一致时可一键以流水为准修复。

嵌入与 SDK

其他网页可通过 iframe 或 JS SDK 嵌入积分墙;只读名单与积分写入使用不同权限的 Token。

  • iframe 嵌入:<iframe src="https://<域名>/?embed=1"></iframe>(embed=1 隐藏管理入口)
  • JS SDK:引入 /sdk.js 后使用 PointsCenter.createClient({ baseUrl, rosterToken, pointsToken })。
  • 外部推送积分必须使用 student_id;只有姓名时先调 GET /api/roster/match 确认候选。

安全说明

  • API Key 哈希用于鉴权比对,明文随中心保存,可随时在本页「提示词」中复制,请勿泄露给无关人员。
  • 外部网页调用开放 API 时,推荐由调用方后端转发请求,避免 API Key 直接暴露在前端代码中。
  • 管理口令具备完整管理权限,可在 .env 的 ADMIN_TOKEN 中更换,建议定期修改。
  • 所有数据库操作均为参数化查询;所有入参在服务端做全域校验;外部 API 默认 120 次/分钟限流。