# 课程资源分享(积分榜)API 文档 更新时间:2025-11-07 ## 概览 - 业务说明:基于课程资源分享模块的用户积分排行榜。积分口径由后端聚合(例如:通过审核的资源数、下载/互动权重等),前端仅展示排行榜。 - 角色与权限: - 门户:登录可见(`/portal/score/rank`)。 - 管理:需要按钮权限 `manage:score:list`(`/manage/score/user/rank`)。 - 依赖表:`tb_cr_user_score`(或同名视图/聚合表,按实现为准)。 - 环境:baseURL `http://localhost:8080`;认证头 `Authorization: Bearer `。 ## 数据模型(只读) - CrUserScore ```json { "userId": 1001, "username": "student", "nickname": "欧加斯", "majorId": 4, "majorName": "计算机", "score": 128, "passedCount": 12 } ``` ## 路由清单 ### 门户:用户积分排行榜 - 方法:GET - 路径:`/portal/score/rank` - 权限:登录 - 请求参数(query,可选): - `majorId`(long) 专业ID;缺省或 0 表示全站 - `pageNum/pageSize` 分页参数(默认 1/10) - 返回示例: ```json { "code":200, "rows":[ { "userId":1001, "nickname":"欧加斯", "score":128 } ], "total": 42 } ``` ### 管理:用户积分排行榜 - 方法:GET - 路径:`/manage/score/user/rank` - 权限:`manage:score:list` - 请求参数(query,可选):同门户端 - 返回:与门户端一致 ## 备注 - 排序:按 `score desc`,相同分数可按 `passedCount desc, userId asc` 稳定排序。 - 可扩展:后续可增加时间窗口(如 `days=7|30`)与更多维度(学院/年级等)。 ## Apifox 导入建议 - 门户集合:新增 GET `/portal/score/rank`;断言 `code==200 && Array.isArray(rows)`。 - 管理集合:新增 GET `/manage/score/user/rank`;断言 `code==200`,并校验分页字段。