chore(release): 1.3.3 发布并退役旧联动
This commit is contained in:
1 parent
b7cdc7c9ea
commit
c0ebf88138
184 files changed
+5450
-11705
No files matched your search
+2
-3
@@ -19,7 +19,7 @@ description: 老师点名让学生过来:普通与紧急两档、快捷短语
|
||||
|
||||
## 两档
|
||||
|
||||
| 级别 | 落库级别 | ClassHelper 班级端行为 |
|
||||
| 级别 | 落库级别 | ClassHelper 班级端行为 |
|
||||
| ------------ | -------- | ----------------------------------------------------------------------------------------------------- |
|
||||
| **普通叫人** | `HIGH` | 课间先显示「叫人」胶囊,点击展开;**上课时段只进队列、不打断课堂**,下课后自动弹出详情(90 秒后收起) |
|
||||
| **紧急叫人** | `URGENT` | **无视上课时段立即展开**,上课时被收起后仍保留胶囊、可再次点开 |
|
||||
@@ -53,5 +53,4 @@ description: 老师点名让学生过来:普通与紧急两档、快捷短语
|
||||
- `notification:new` 到班级房间(通知中心与灵动岛都靠它);
|
||||
- `call:new` 定向到被叫学生 / 班级设备。
|
||||
|
||||
如果教室的「通知显示位置」不是"只在 ClassHelper",这条叫人也会推给 ClassIsland,
|
||||
教室大屏一并播报。
|
||||
叫人通过实时通道送达本班客户端与灵动岛。
|
||||
+1
-1
@@ -27,7 +27,7 @@ description: ClassHelper每一项功能怎么用:课表、作业、通知、
|
||||
[角色与权限](../dev/permissions.md)。
|
||||
|
||||
**二、上课时段不打扰课堂。** 「上课时段」由课表实时判定,普通通知与普通叫人只进队列、下课补弹;
|
||||
紧急通知与紧急叫人才会立刻打断。规则只有一份,客户端与 ClassIsland 都遵守它。
|
||||
紧急通知与紧急叫人才会立刻打断。客户端与灵动岛共用这套规则。
|
||||
细节见[通知与提醒](notifications.md)。
|
||||
|
||||
**三、实时推送只走班级房间。** 老师一发内容,服务端写库后按班级房间广播,客户端立刻更新,
|
||||
|
||||
@@ -10,7 +10,7 @@ description: 通知的三档优先级、上课时段策略、紧急通知的二
|
||||
|
||||
## 三档优先级
|
||||
|
||||
| 优先级 | ClassHelper 班级端表现 |
|
||||
| 优先级 | ClassHelper 班级端表现 |
|
||||
| ------ | -------------------------------------------------------------------------------------------- |
|
||||
| 普通 | 课间弹「新消息」胶囊,点击展开详情;**上课时段完全不显示**(窗口隐藏)并进队列,下课自动补弹 |
|
||||
| 重要 | 同上,卡片上有优先级标签 |
|
||||
@@ -23,12 +23,10 @@ description: 通知的三档优先级、上课时段策略、紧急通知的二
|
||||
「上课时段」由课表实时判定(见[课表](schedules.md))。判定之后:
|
||||
|
||||
| ClassHelper 班级端行为 | 上课时段 | 课间 / 放学 |
|
||||
| ---------- | ---------------------------------------- | ----------- |
|
||||
| 普通通知 | 收着不弹(窗口隐藏),进待发队列 | 直接弹 |
|
||||
| 紧急通知 | **立刻弹** | 立刻弹 |
|
||||
| 任何点击 | 一律不响应(不会展开、也不会回缩出胶囊) | 正常 |
|
||||
|
||||
ClassIsland 那一端遵守同一套规则,否则会出现"学生在客户端看不到、却在教室大屏上被打断"。
|
||||
| ---------------------- | ---------------------------------------- | ----------- |
|
||||
| 普通通知 | 收着不弹(窗口隐藏),进待发队列 | 直接弹 |
|
||||
| 紧急通知 | **立刻弹** | 立刻弹 |
|
||||
| 任何点击 | 一律不响应(不会展开、也不会回缩出胶囊) | 正常 |
|
||||
|
||||
## 紧急通知的二次确认
|
||||
|
||||
@@ -48,20 +46,9 @@ Web 端在提交前会先查一次上课状态,命中就弹一个**全屏二
|
||||
|
||||
**这个拦截在服务端,不是前端提醒。** 绕过界面直接调接口一样会被拦 —— 这是产品行为,不是可以关掉的提示。
|
||||
|
||||
## 提醒弹在哪个端
|
||||
## 提醒显示
|
||||
|
||||
教室机器上的客户端「设置 → 提醒」里选,选择会同步到班级记录:
|
||||
|
||||
| 选择 | ClassHelper 客户端 | ClassIsland |
|
||||
| ----------------------------------------- | ------------------------------ | ----------- |
|
||||
| `ClassHelper 与 ClassIsland 都弹`(默认) | 弹窗 + 灵动岛 | 全屏提醒 |
|
||||
| `只在 ClassHelper 客户端弹` | 弹窗 + 灵动岛 | 不推送 |
|
||||
| `只在 ClassIsland 上弹` | 只进通知中心(不弹窗、不上岛) | 全屏提醒 |
|
||||
|
||||
这条规则**任何入口都遵守**,包括 ClassIsland 联动页的「下发提醒」——
|
||||
那种情况下会回一句"该班教室已设置为只在 ClassHelper 客户端显示"。
|
||||
|
||||
管理员与教师也可以用 `PATCH /api/classes/:id/notification-channel` 改,但默认由教室机器自己定。
|
||||
通知通过实时通道发送到 ClassHelper 客户端与灵动岛。设置页显示本机提醒规则,旧的跨应用通知渠道已移除。
|
||||
|
||||
## 已读、红点与删除
|
||||
|
||||
@@ -74,9 +61,7 @@ Web 端在提交前会先查一次上课状态,命中就弹一个**全屏二
|
||||
|
||||
## 发布入口只有一个实现
|
||||
|
||||
「通知发布」页、叫人、ClassIsland 联动页的「下发提醒」三个入口,
|
||||
**共用同一份 ClassIsland 推送实现**。所以不存在"某个页面发的通知不联动"这种事 ——
|
||||
以前有过,现在是硬约定:新增发通知的入口必须复用同一份代码。
|
||||
「通知发布」与叫人复用同一套服务端发布流程和实时广播。
|
||||
|
||||
## 接口
|
||||
|
||||
|
||||
+5
-17
@@ -51,27 +51,15 @@ GET /api/schedules/current?classId=<班级 id>[&at=<ISO 时间>]
|
||||
|
||||
返回 `{ inClass, current, next, week, serverTime }`。`at` 参数可以覆盖判定时刻,用来联调与测试。
|
||||
|
||||
判定结果被用在四处,规则完全一致:
|
||||
判定结果被用在三处,规则完全一致:
|
||||
|
||||
1. 客户端灵动岛:上课时段普通通知**不显示**(窗口直接隐藏)并进队列,下课自动补弹;
|
||||
2. ClassIsland 插件:同样暂存,下课后补弹;
|
||||
3. 服务端发布接口:上课时段发紧急通知会被拦(`409 URGENT_DURING_CLASS`),确认后放行;
|
||||
4. Web 端:提交紧急通知前先查一次状态,命中就弹全屏二次确认。
|
||||
2. 服务端发布接口:上课时段发紧急通知会被拦(`409 URGENT_DURING_CLASS`),确认后放行;
|
||||
3. Web 端:提交紧急通知前先查一次状态,命中就弹全屏二次确认。
|
||||
|
||||
## 课表的"来源"字段
|
||||
## 课表来源
|
||||
|
||||
每一行课表都记着它是从哪来的:
|
||||
|
||||
| 来源 | 什么时候产生 | 会被自动清理吗 |
|
||||
| ------------- | ---------------------------------------------- | ---------------------------- |
|
||||
| `manual` | Web 端手工录入、从 ClassIsland JSON 一次性导入 | **不会**,永远保留 |
|
||||
| `classisland` | 教室插件上报同步过来的 | 会——本次没再上报的行会被删掉 |
|
||||
|
||||
这条规则解决了"老师在 ClassIsland 里删掉一节,小助手这边却永远留着"的幽灵课问题,
|
||||
同时保证老师在小助手这边手排的课不会被插件覆盖掉。
|
||||
|
||||
> 去重键是「星期 + 开始时间 + 单双周」。如果老师手排的某一节恰好和上报的同一时间槽重合,
|
||||
> 那一行会被上报"收养"(保留原本的 `manual` 来源),下一次清理不会删它。
|
||||
课表由管理端维护,支持手工录入与离线 JSON 导入。升级会保留旧联动课表并将其来源归为 `manual`。
|
||||
|
||||
## 排课 / 改课 / 导入
|
||||
|
||||
|
||||
Reference in new issue
Block a user