feat(courseware,docs): 完善课件传输与岛编辑并统一全仓文档
- 增加课件上传、班级可见范围、设备补收与传输进度 - 整合自定义灵动岛编辑器和相关客户端交互 - 同步三端契约、数据库迁移、部署配置与隔离回归 - 按源码统一文档与官网说明,移除过时任务书和审查记录 - 保持产品版本为 1.4.0
This commit is contained in:
1 parent
536379036a
commit
c7f215a09c
127 files changed
+4334
-8482
No files matched your search
+13
-47
@@ -1,56 +1,22 @@
|
||||
---
|
||||
title: 叫人
|
||||
description: 老师点名让学生过来:普通与紧急两档、快捷短语、谁能叫谁,以及它在教室里的表现。
|
||||
description: 点名、优先级、可见范围和客户端展示。
|
||||
---
|
||||
|
||||
# 叫人
|
||||
|
||||
「叫人」是老师点名让某位同学来一趟 —— 它**不是**一条普通通知,因为它有一个明确的收件人和一个明确的动作
|
||||
(学生会点「收到」)。
|
||||
在 Web“通知发布 → 叫人”选学生,填写事由或选择快捷短语,需 call:create 和班级范围权限。
|
||||
可调用的学生必须属于相应在读班级且未转出;岗位范围、任课或班主任关系由服务端检查。
|
||||
学生没有账号,无法以个人身份调用接口。
|
||||
|
||||
## 在哪发
|
||||
| 级别 | 落库优先级 | 经典 fixed 展示 |
|
||||
| -------- | ---------- | ------------------------------------------------------------------ |
|
||||
| 普通叫人 | HIGH | 胶囊可点击,上课也允许主动查看;不自动展开打断课堂,下课可自动展开 |
|
||||
| 紧急叫人 | URGENT | 上课也立即展开,收起后仍可主动再打开 |
|
||||
|
||||
| 入口 | 谁能用 |
|
||||
| --------------- | ------------ |
|
||||
| 通知发布 → 叫人 | 教师、管理员 |
|
||||
| 学生管理 → 叫人 | 管理员 |
|
||||
自定义 custom 是常驻模式,两种叫人都先提示铃铛,由用户主动查看;详见[通知与提醒](notifications.md)。
|
||||
卡片内容包括被叫学生、教师和事由,“收到”复用通知已读机制。
|
||||
自定义消息优先于快捷短语,消息长度以接口 schema 校验为准。
|
||||
|
||||
学生管理页是管理员专属,但班主任与科任老师同样需要叫人,所以给老师留的入口在「通知发布 → 叫人」。
|
||||
|
||||
## 两档
|
||||
|
||||
| 级别 | 落库级别 | ClassHelper 班级端行为 |
|
||||
| ------------ | -------- | ----------------------------------------------------------------------------------------------------- |
|
||||
| **普通叫人** | `HIGH` | 课间先显示「叫人」胶囊,点击展开;**上课时段只进队列、不打断课堂**,下课后自动弹出详情(90 秒后收起) |
|
||||
| **紧急叫人** | `URGENT` | **无视上课时段立即展开**,上课时被收起后仍保留胶囊、可再次点开 |
|
||||
|
||||
两档的卡片都是「请 XXX 同学找 XXX 老师」+ 具体事由,徽标是「叫人」,按钮是「收到」
|
||||
(复用通知的已读机制)。
|
||||
|
||||
> **是否立即展开只由 `priority` 决定**,与普通通知共用同一条排队 / 隐藏 / 下课弹出路径。
|
||||
|
||||
## 怎么说
|
||||
|
||||
两种输入方式,**自定义消息优先于快捷短语**:
|
||||
|
||||
- **快捷短语**(8 条,点击选中、再点取消):请到办公室找我 / 请到讲台找我 / 请到实验室找我 /
|
||||
请到门卫处找我 / 请带上作业本找我 / 请带上试卷找我 / 请到教室门口等我 / 请马上来一趟;
|
||||
- **自定义消息**:最长 200 字,例如「带上昨天的数学作业到办公室」。
|
||||
|
||||
## 谁能叫谁
|
||||
|
||||
| 角色 | 限制 |
|
||||
| ------ | ---------------------------------------------------------- |
|
||||
| 学生 | 调用被拒(403) |
|
||||
| 教师 | 只能叫**自己班级**的学生;跨班、或学生不在本班 → 400 / 403 |
|
||||
| 管理员 | 任意班级 |
|
||||
|
||||
## 服务端做了什么
|
||||
|
||||
`POST /api/calls`(教师 / 管理员)→ `urgent: true` 落库成 `URGENT`,否则 `HIGH`,
|
||||
然后广播两个事件:
|
||||
|
||||
- `notification:new` 到班级房间(通知中心与灵动岛都靠它);
|
||||
- `call:new` 定向到被叫学生 / 班级设备。
|
||||
|
||||
叫人通过实时通道送达本班客户端与灵动岛。
|
||||
`POST /api/calls` 保存为 Notification,带本地所属日期;随后发送 notification:new 班级广播和 call:new 班级会话定向事件。
|
||||
定向主体是班级会话,学生本身没有 Socket 房间;双播按消息 id 合并去重。
|
||||
Reference in new issue
Block a user