feat(growth): 实现学生画像功能并下线推荐内容

- 替换学生画像页面占位符,新增简历式头部展示
- 集成雷达图展示能力维度评分
- 增加学分类别达成和成长轨迹时间线展示
- 管理端支持学生检索与切换查看画像
- 接口调用区分纯学生角色权限限制
- 删除推荐内容相关前端页面及菜单配置
- 更新文档说明学生画像功能与推荐内容下线情况
- 细节优化标题本地化判断逻辑及状态类型声明
This commit is contained in:
2026-11-07 10:28:08 +08:00
parent d8e7e2a2a8
commit 6236c7f723
9 changed files with 871 additions and 97 deletions
+32 -5
View File
@@ -15,9 +15,11 @@
| 7 | 青马培养档案 | 已完成 | `/api/gxmu/qmgc-student` | `/gxmu/qmgcStudent`、`/gxmu/qmgcTask`、`/gxmu/qmgcScore` |
| 8 | 主题团课库 | 已完成 | `/api/gxmu/thematic-course` | `/gxmu/thematicCourse` |
P1/P2 的 10 个功能已建菜单与占位页(写明实施依赖),不会出现菜单 404:
P1/P2 的功能已建菜单与占位页(写明实施依赖),不会出现菜单 404:
社会实践学分、学分预警、学生画像、推荐内容、社团年审、社团评优、AI 辅助教学设计、AI 主题团日设计、专家评审、专家库。
社会实践学分、学分预警、学生画像、社团年审、社团评优、AI 辅助教学设计、AI 主题团日设计、专家评审、专家库。
> 推荐内容已按业务反馈下线:前端页面删除,`sys_menu` 中的 14506 与其角色授权由 08 脚本清理。
## 二、数据库部署
@@ -44,7 +46,7 @@ mysql ... < sql/20261105_phase2_09_dict.sql
| 05 | 主题团课库(1 张表) | 无 |
| 06 | 站内消息 + 消息模板(2 张表) | 10 条消息模板 |
| 07 | 审核流并行节点改造(ALTER 4 处) | 回填存量 parallel_group |
| 08 | 菜单 + 按钮权限 + 角色授权(62 条菜单/按钮) | 超管全量、学生部分 |
| 08 | 菜单 + 按钮权限 + 角色授权(61 条菜单/按钮) | 超管全量、学生部分 |
| 09 | 字典(学分类别、社团类别) | 11 条字典项 |
**注意**:脚本 07 会修改 `gxmu_review_flow` / `gxmu_review_list` / `gxmu_review_flow_config` 三张生产表,只是新增列并回填,不影响存量串行审核逻辑。
@@ -90,7 +92,7 @@ gxmu:
src/api/growth/{credit,volunteer,home,club,qmgc,thematic}/
src/api/system/notice/
src/components/MultiFileUpload/ 统一多附件上传(JSON 数组与后端契约)
src/views/growth/{myHome,credit,practiceCredit,creditWarning,portrait,recommend}/
src/views/growth/{myHome,credit,practiceCredit,creditWarning,portrait}/
src/views/club/{volunteerHour,volunteerReview,volunteerCertificate,club,activity,activityReview,venue,venueReview,annualReview,award}/
src/views/gxmu/{qmgcStudent,qmgcTask,qmgcScore,thematicCourse,teachingDesign,themeDayDesign,expertReview,expertPool}/
src/views/system/{messageTemplate,messageLog}/
@@ -253,6 +255,31 @@ src/views/system/{messageTemplate,messageLog}/
初版曾把 `gxmu_practice_credit` 加进 `DeclareGuardServiceImpl` 的模块列表,导致审核回写时按「模块名=表名」去更新不存在的表。已移除——社会实践用独立表 `gxmu_practice_credit_apply`,状态回写由自己的 service 负责。
### 9.5 学生画像
**后端**(`com.gxwebsoft.gxmu.growth`)
| 文件 | 说明 |
| --- | --- |
| `StudentPortraitController` | `/api/gxmu/portrait/my`、`/api/gxmu/portrait?userId=`、`/api/gxmu/portrait/student/search` |
| `StudentPortraitService` + `Impl` | 六维评分、标签、一句话画像、成长轨迹聚合 |
| `StudentProfile` + Mapper | 每次打开画像写一份快照到 `gxmu_student_profile` |
**六个维度**:思想引领(政治面貌/团内职务/青马/档案完善度)、学业表现(学分完成率)、
志愿服务(40 小时折算满分)、社会实践(2 学分折算满分)、组织参与(在社数量与骨干经历)、
文体拓展(文体/学术科技/技能三类学分达成率取最高)。评分都在服务端算好,前端只负责展示。
**权限收口**:菜单仍按原规划只授予管理端(学生角色的 14500–14504 子集不含画像),
接口层保留 `/my` 供后续学生端接入;纯学生角色调用时只能取本人数据,检索接口直接拒绝。
画像列表不叠加组织范围:学生名册本身对所有管理端角色可见,画像与之一致,且不含审核数据。
**前端**:`/growth/portrait`,替换原占位页。简历式头部 + 雷达图 + 学分类别达成 + 成长轨迹时间线,
管理端顶部可检索学生切换查看。
**推荐内容下线**:前端目录 `src/views/growth/recommend` 删除;`sys_menu` 14506 与角色授权由
`sql/20261105_phase2_08_menu_permission.sql` 与新增的 `sql/20261107_portrait_menu.sql` 清理。
## 十、部署排查:部署后看不到新功能
### 症状
@@ -307,7 +334,7 @@ done
### 执行后的验证
```sql
SELECT COUNT(*) FROM sys_menu WHERE menu_id BETWEEN 14500 AND 14663; -- 应为 62
SELECT COUNT(*) FROM sys_menu WHERE menu_id BETWEEN 14500 AND 14663; -- 应为 61(推荐内容 14506 已下线)
SELECT COUNT(*) FROM oa_notice_template; -- 应为 10
SELECT COUNT(*) FROM gxmu_graduate_requirement; -- 应为 6
```
+2 -3
View File
@@ -32,8 +32,7 @@
├ 学分明细 /growth/credit 14502
├ 社会实践学分 /growth/practiceCredit 14503
├ 学分预警 /growth/creditWarning 14504
├ 学生画像 /growth/portrait 14505
└ 推荐内容 /growth/recommend 14506
└ 学生画像 /growth/portrait 14505
社团与志愿 /club menu_id 14520
├ 志愿服务时长 /club/volunteerHour 14521
@@ -132,7 +131,7 @@ com.gxwebsoft.notice 消息中心
新增目录:
```
src/views/growth/{myHome,credit,practiceCredit,creditWarning,portrait,recommend}
src/views/growth/{myHome,credit,practiceCredit,creditWarning,portrait}
src/views/club/{volunteerHour,volunteerReview,volunteerCertificate,club,activity,activityReview,venue,venueReview,annualReview,award}
src/views/gxmu/{qmgcStudent,qmgcTask,qmgcScore,thematicCourse,teachingDesign,themeDayDesign,expertReview,expertPool}
src/views/system/{messageTemplate,messageLog}