1. 修改 SysNotification 实体,新增 senderId, senderName, targetType 字段 2. 新增 SendNotificationRequest 请求DTO 3. 扩展通知类型至6种(新增用户通知、课程通知) 4. 实现角色层级权限控制,支持多级管理员通知下级 5. 支持老师群发课程通知给学生 6. 新增批量发送接口和权限配置
276 lines
11 KiB
Markdown
276 lines
11 KiB
Markdown
# 实训平台客户端完整需求文档(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 生成)
|