功能简介
信息发送(消息中心)把系统里的通知统一通过学院 QQ 机器人(NapCat)推送到老师 QQ。它服务两类场景:一是在「监考安排表维护」里对勾选的监考记录发送监考信息 / 提醒信息 / 自定义信息;二是独立的「信息发送」页(自定义发送消息),面向非监考安排表场景,按指定老师或上传名单逐行发送文字与图片。所有发送都遵循同一条铁律——机器人必须在线、先筛选后勾选再发送、发送后到发送统计复核成功/失败与失败名单。大批量发送在后台分批执行,页面通过轮询自动刷新结果,避免请求超时。
入口与权限
- 独立信息发送页:顶部导航
教学工具 → 信息发送(/custom_message_center)。用于上传名单或指定老师的自定义发送。 - 随监考记录发送:
监考安排管理 → 监考安排表维护 页底部的三个按钮——「发送监考信息」「发送提醒信息」「发送自定义信息」,针对当前勾选的监考记录发送(详见 监考安排管理)。 - QQ 机器人状态:顶部右侧「QQ机器人」标识常驻显示在线/离线,图标亮表示在线、暗表示离线;前端每 60 秒轮询
/api/bot_status/<bot_id> 刷新,并提供「重启 / 启动」按钮与「QQ机器人安全码设置」「登录管理界面」入口。 - 可用角色:仅管理员 / 超管,且当前学院已开通「监考」模块(独立发送页的访问校验复用监考模块权限)。学生及普通教师不可见。
- 机器人按学院隔离:每个学院绑定各自的 NapCat 实例(
bot_id 写入会话),发送时取当前会话的机器人。未绑定或安全码未设置时顶部会提示「当前学院尚未设置QQ机器人安全码」。
操作步骤(分角色)
管理员 / 超管:随监考记录发送(监考安排表维护页)
- 先确认机器人在线:看顶部「QQ机器人」标识为亮(在线)。离线时先点「启动 / 重启」或检查安全码设置,否则发送会报「未找到机器人实例」或大面积失败。
- 先筛选:用页面筛选区按考试名称、校区、时间、地点、课程、教师等缩小范围,确认表格只剩本次要通知的记录。
- 后勾选:用行首复选框或表头「全选」勾选目标记录,状态栏实时显示「已勾选行数」;自定义发送会按监考老师去重统计人数。
- 再发送:
- 「发送监考信息」= 把每位老师本人的监考安排明细推送过去(首次通知)。
- 「发送提醒信息」= 临考前的提醒话术,复用同一批勾选记录。
- 「发送自定义信息」= 弹窗里自行编辑文案,可选「发送给勾选的监考老师(已去重)」,并可附图片。
- 看发送统计:提交后任务进入后台分批发送,页面轮询并刷新「成功 / 失败」数与「失败名单」。失败名单逐条复核(多为号码缺失、机器人掉线、对方未加好友等)。
管理员 / 超管:独立信息发送页(自定义发送消息)
本页支持两种发送方式(页面顶部「发送方式」单选切换):
A. 发送给指定老师
- 选「发送给指定老师」,填入老师姓名(系统按本学院教师库匹配 QQ),页面显示「将发送给 N 位老师」。
- 在消息内容框写正文(指定老师模式下必填)。
- 需要时在「图片附件」区选择或直接 Ctrl+V 粘贴图片,最多 3 张。
- 点「确认发送」,二次确认收件人名单与正文后提交。
B. 按上传名单逐行发送
- 选「按上传名单逐行发送」,上传名单文件(Excel)。系统自动识别表头与「老师」列,并把其余列作为可勾选的「通知字段」。
- 在「通知字段」区按需勾选要拼进消息的列;圆圈数字表示拼接顺序,取消后重新勾选可调整顺序。勾选「消息内容」则把消息框文字插入到老师姓名之后。
- 也可在消息框用占位符
【列名】 或 {{列名}} 引用名单列,未匹配到列名会报错提示。 - 发送格式 = 消息头 + 姓名 + 已勾选内容;可选「包含已成功记录(勾选后强制重发)」用于补发。
- 点「确认发送」,后台逐行匹配老师 QQ 并发送,页面轮询刷新进度与失败名单。
字段与状态口径
| 项目 | 含义 |
|---|
| QQ机器人状态(在线/离线) | 顶部图标亮=在线、暗=离线;每 60 秒轮询 /api/bot_status,离线时不能发送。 |
| 机器人QQ / 未绑定 | 当前学院绑定的机器人账号;「未绑定」表示该学院尚未配置 NapCat 实例。 |
| 目标数 target_count | 本次任务应发送的收件人/记录条数。 |
| 成功 / 失败 | 后台逐条发送的结果累计;失败计入失败名单。 |
| 失败名单 failed_names | 发送失败的老师姓名(无姓名时退化为 QQ 号),最多展示 200 条,供复核补发。 |
| 任务状态 state | queued 已排队 → 处理中(已处理 N/目标数)→ 完成 / 中断;前端按 request_id 轮询 /message_delivery_task_status。 |
| 发送方式 | 「指定老师」或「上传名单逐行」;监考页另有「发送给勾选的监考老师(去重)」。 |
| 通知字段 / 占位符 | 上传名单模式下可勾选拼接的列;正文支持 【列名】、{{列名}} 引用名单列。 |
常见问题
- 点发送报「未找到机器人实例,请先登录或联系管理员」:当前会话没有
bot_id,即本学院未绑定机器人或会话失效。先到顶部确认机器人已绑定并在线,必要时重新登录、设置「QQ机器人安全码」。 - 机器人显示离线 / 发送全部失败:NapCat 未登录或容器掉线。点顶部「启动 / 重启」,或进「登录管理界面」在 NapCat WebUI 重新扫码登录后再发。机器人不在线时严禁继续群发。
- 部分老师发送失败:到发送统计看失败名单逐条排查——常见原因是该老师无 QQ / 号码缺失(去教师信息维护补全,见 教师信息维护)、对方未加机器人好友、或发送中途机器人掉线。补全后可重新筛选勾选这部分人补发。
- 上传名单识别不到字段或老师列:检查表头行是否正确(可设置表头所在行号)、是否有可识别的「老师」列;占位符报「未匹配到列」时核对
【】 内列名与表头一致。 - 想给已成功的人再发一次:默认会跳过已成功记录;勾选「包含已成功记录(强制重发)」即可补发。
- 批量发送很慢 / 页面像卡住:大批量在后台分批执行,页面靠轮询刷新进度,属正常;等「已处理 N / 目标数」走完即可,不要重复点发送。
- 发送范围搞错了:务必「先筛选后勾选」——只有筛选后留在表格里且被勾选的记录才会发送,发送前用状态栏的「已勾选行数 / 去重人数」二次核对。
相关页面
- 监考安排管理 监考通知/提醒/自定义信息的主要使用场景(监考安排表维护页的发送按钮)
- 教师信息维护 失败名单多因号码缺失,回此页补全教师 QQ / 联系方式
- 教学资料报送 资料报送等其他模块的退回/通知同样依赖 QQ 机器人在线