sxwz2.0/实训平台客户端完整需求文档(V2.0).md
wangzhiwei 5f5c0759ce feat(notification): 实现通知功能,支持角色层级发送和课程群发
1. 修改 SysNotification 实体,新增 senderId, senderName, targetType 字段

2. 新增 SendNotificationRequest 请求DTO

3. 扩展通知类型至6种(新增用户通知、课程通知)

4. 实现角色层级权限控制,支持多级管理员通知下级

5. 支持老师群发课程通知给学生

6. 新增批量发送接口和权限配置
2026-05-15 16:57:07 +08:00

276 lines
11 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 实训平台客户端完整需求文档V2\.0
## 文档说明
本文档基于原始零散需求、批注优化与核心业务规则整合,**剔除疑问、统一口径、明确边界、规范格式**,形成可直接交付研发的完整客户端需求,覆盖用户体系、注册登录、通知、充值、教学管理、优秀作品、个人中心全模块。
## 一、核心基础规则
### 1\. 通用约束
1. **数据权限**:所有 API 查询严格校验`token`与对应用户 ID仅允许查询当前账户信息禁止越权访问
2. **数据排序**:所有数据获取接口默认按**日期最新**排序
3. **权限边界**:未采购平台的学校,师生仅可登录、使用基础功能,**无教学管理模块(作业 / 考试 / 课程 / 考勤)权限**
4. **角色定义**:客户端仅支持**老师、学生**两种核心身份,无其他角色
### 2\. 账户体系规则(强制)
1. **身份绑定流程**:绑定已采购院校需遵循「填身份信息→院校预校验→专属激活码→绑码校验」流程,禁止跳步
2. **激活码规则**1 人 1 码、与姓名 / 学号 / 院校 / 角色强绑定,绑定后失效,无通用码
3. **账户状态与权限**
- 可学用户(未绑院校):仅基础功能,无教学模块
- 试用用户(绑未采购院校):基础 \+ 试用功能,无教学模块
- 学校用户(绑已采购院校):全功能权限,开放教学模块
- 冻结用户:禁止登录,禁用所有功能
## 二、注册需求
### 1\. 注册方式
支持**手机号验证码注册、账号密码注册**两种自由注册方式,二选一。
### 2\. 注册必填信息
所有注册方式均需填写:**学校、学院、专业、年级、班级**,信息与平台组织机构库关联选择,非纯文本输入。
### 3\. 注册默认角色
自由注册默认角色为**学生**,老师角色需院校管理员后台批量创建 / 审核开通。
### 4\. 密码规则
密码需满足:**不低于 8 位,数字 \+ 字母混合**,禁止纯数字 / 纯字母。
## 三、登录需求
### 1\. 登录方式
老师、学生均支持 4 种登录方式:**微信扫码登录、手机号验证码登录、账号密码登录、手机号密码登录**,登录失败返回标准化错误提示。
### 2\. 微信登录规则
微信扫码登录需提前绑定微信,注册阶段同步写入`wxid`至用户表,实现微信与账户唯一绑定。
### 3\. 自动注册规则
手机号验证码登录、微信扫码登录时,**无账户则自动创建新用户**,默认角色为学生,学校 / 学院 / 专业 / 年级 / 班级信息沿用注册规则必填。
## 四、通知需求
用户(老师 / 学生)在通知中心页面可完成以下操作,解决消息漏看、状态混乱问题:
1. **获取通知列表**:查看全部系统通知,按时间倒序排列
2. **查看通知详情**:点击单条通知查看完整内容
3. **单条通知已读**:查看详情后自动触发,变更为已读状态
4. **全部通知已读**:点击「全部已读」按钮,一键标记所有通知为已读
## 五、充值需求
用户在充值中心页面可完成算力充值,解决算力付费、套餐选择问题:
1. **获取充值套餐**:展示管理员后台配置的官方充值套餐,包含套餐名称、算力额度、价格、有效期
2. **套餐支付**:选择固定套餐,通过**微信 / 支付宝扫码**完成支付
3. **自定义充值**:支持自由输入充值金额,通过**微信 / 支付宝扫码**完成支付
4. **支付结果**:支付成功后实时到账算力,支付失败返回失败原因
## 六、教学板块需求
### 6\.1 通用规则
1. **草稿定义**:未发布的作业 / 考试为**草稿**,仅可编辑 / 删除;发布后草稿修改不影响已发布内容
2. **发布规则**:作业 / 考试仅可发布至老师创建的课程,支持多选课程,发布后学生收到通知
3. **题目类型**:支持填空题、单选题、多选题、简答题,简答题支持文字作答、图片上传、文件上传(老师配置)
### 6\.2 课程管理
#### 老师端(课程创建者)
老师在课程管理页面可完成以下操作,解决班级管理、教学组织问题:
1. **筛选学生**:按学院 / 专业 / 年级 / 班级筛选学生,返回**真实姓名、头像、用户 ID、联系方式、学号**
2. **创建课程**:填写课程名称、封面、简介、上课时间、授课方式,支持**批量添加学生**(班级全选 / Excel 导入手机号),创建成功后通知学生
3. **管理课程**:修改课程信息(已结课课程不可编辑)、删除草稿状态课程
4. **查看课程列表**:查看自己创建的所有课程,展示课程名、上课时间、状态
5. **课程学生管理**:查看课程内学生列表、批量添加学生、踢出学生(踢出后保留作业 / 考试数据),操作后通知学生
6. **导出成绩**:选择课程内考试,导出 Excel 成绩表,包含姓名、学号、平均分、分数、排名、总评成绩
#### 学生端
学生在课程中心页面可完成以下操作,解决课程学习、信息查看问题:
1. **查看课程**:展示已加入的课程,包含课程标题、老师、封面、上课时间
2. **查看课程内容**:查看课程内作业、考试、考勤信息
### 6\.3 作业管理
#### 老师端
老师在作业管理页面可完成以下操作,解决作业布置、批改、管理问题:
1. **作业草稿管理**:创建、编辑、删除作业草稿,草稿包含名称、要求、题目、是否允许迟交、截止时间
2. **发布作业**:将草稿发布至课程,设置开始 / 截止时间,通知课程内学生
3. **查看作业列表**:查看课程内作业,展示标题、截止时间、提交情况、批改状态
4. **作业批改管理**:查看学生提交详情、批改作业(打分 \+ 评语)、修改分数、批量退回作业(设置重交截止时间,通知学生)
5. **优秀标记**:将学生作业标记为优秀 / 取消优秀
6. **删除作业**:删除作业及已提交 / 批改数据
#### 学生端
学生在作业页面可完成以下操作,解决作业提交、修改、重做问题:
1. **查看作业**:查看课程内作业列表,展示标题、时间、提交状态、迟交权限
2. **提交作业**:按题目要求作答,支持文字 / 图片 / 文件
3. **修改作业**:截止时间前可修改已提交作业
4. **重做作业**:按老师退回要求,在截止时间前重新提交
### 6\.4 考试管理
#### 老师端
老师在考试管理页面可完成以下操作,解决考试组织、阅卷、补考问题:
1. **考试草稿管理**:创建、编辑、删除考试草稿,草稿包含名称、要求、考卷、时间
2. **发布考试**:将草稿发布至课程,设置开始 / 截止时间、考试时长,通知学生
3. **查看考试列表**:查看课程内考试,展示名称、时间、时长、状态、提交情况
4. **考试阅卷管理**:查看学生答卷、打分、写评语、修改分数
5. **补考管理**:筛选不及格学生,创建并发布补考,补考成绩规则:及格覆盖原成绩,超上限按上限计分
6. **删除考试**:删除考试及学生答卷数据
#### 学生端
学生在考试页面可完成以下操作,解决考试参与、补考问题:
1. **查看考试**:查看课程内考试列表,展示名称、时间、状态、分数
2. **参加考试**:在考试时间内进入答题页,倒计时作答,超时强制提交(切页视为空提交)
3. **参加补考**:完成老师发布的补考并提交
### 6\.5 考勤管理
#### 老师端
老师在考勤页面可完成以下操作,解决课堂签到、统计问题:
1. **发起签到**:课程内开启签到,设置时长,支持**二维码签到、手动点名**两种方式,通知所有学生
2. **管理签到**:查看全部签到记录(名称、时间、状态、出勤统计)、查看单次签到详情、修改学生考勤状态(出勤 / 迟到 / 缺勤 / 请假),手动点名可添加备注
3. **签到规则**:未签到自动标记为旷课,签到记录按开始时间命名
#### 学生端
学生在考勤页面可完成以下操作,解决签到、查看考勤问题:
1. **扫码签到**:扫描老师二维码完成签到
2. **查看考勤**:查看所有考勤记录与个人状态(出勤 / 迟到 / 缺勤 / 请假)
## 七、优秀作品需求
用户在优秀作品页面可完成以下操作,解决作品展示、互动问题:
1. **查看优秀作品**:获取所有老师标记的优秀作业 / 考试作品
2. **作品互动**:老师 / 学生可对作品点赞,**每个作品仅可点赞 1 次**
## 八、个人中心需求
用户在个人中心页面可完成以下操作,解决信息管理、账单查看问题:
1. **查看个人信息**:展示部门、昵称、手机号、头像
2. **查看消费记录**:查看算力消耗、获取明细
3. **查看订单记录**:查看所有充值订单(已支付 / 未支付)
4. **修改基础信息**:修改昵称、头像
5. **修改密码**
- 正常修改:输入原密码 \+ 新密码,新密码需符合规则且与原密码不同
- 找回密码:忘记原密码可通过手机号验证码修改
- 规则:修改后强制重新登录,返回标准化错误提示
6. **修改绑定手机号**
- 流程:验证原手机号→输入新手机号→双重验证码校验
- 规则:手机号 11 位格式校验、唯一性校验,验证码 5 分钟有效、60 秒内仅可发送 1 次
- 异常:返回验证码错误、过期、手机号已占用等提示
## 九、异常处理与提示规范
所有功能异常返回统一提示语:
1. 原密码错误:原密码错误,请重新输入
2. 新密码重复:新密码不能与原密码相同
3. 验证码错误:验证码错误,请重新输入
4. 验证码过期:验证码已过期,请重新获取
5. 手机号已占用:该手机号已被其他账号使用
6. 操作失败:修改失败,请稍后重试
7. 越权访问:无权限访问该数据,请核对账号信息
## 十、研发强制红线
1. **权限双重校验**:前端展示 \+ 后端接口双重校验账户状态与权限,禁止越权
2. **数据隔离**:用户数据严格按 ID 隔离token 校验不通过直接拒绝请求
3. **操作留痕**:课程 / 作业 / 考试 / 考勤 / 充值操作全量日志留存≥1 年,不可篡改
4. **流程不可逆**:院校绑定、注册登录、作业考试发布流程严格按文档执行,禁止绕过规则
---
要不要我把这份需求**按研发视角拆分为接口清单 \+ 页面原型说明**,直接交付开发团队使用?
当前文件内容过长,豆包只阅读了前 63%。
> (注:文档部分内容可能由 AI 生成)