麦序机器人平台需求文档
1. 项目概述
这是一个麦序机器人平台,提供基于账号密码的用户登录系统,支持多层级权限管理和实时聊天功能。
2. 技术要求
- 使用现代化前端技术构建(建议使用 React/Vue + TypeScript)
- 后端使用 Node.js,支持反向代理部署
- 打包后可部署到任意服务器,便于快速部署
- 尽量减少端口占用,优化部署复杂度
- 数据库使用 MySQL 存储业务数据
- 使用 WebSocket 实现实时聊天功能
3. 界面适配要求
- 用户使用界面:适配移动端(响应式设计)
- 管理端界面:针对 PC 端优化
3.1 管理后台界面设计
数据统计界面
- 仪表板:显示关键指标的概览
- 数据图表:使用图表展示趋势和对比数据
- 筛选功能:支持按时间、用户、档位等条件筛选
- 导出功能:支持数据导出为Excel或PDF格式
- 实时更新:数据实时或定时更新显示
界面布局
- 导航菜单:左侧导航,包含各功能模块
- 主内容区:右侧显示具体的数据和操作界面
- 快速操作栏:顶部显示常用操作按钮
- 状态栏:底部显示系统状态和通知信息
4. 用户权限体系
平台采用分级权限管理,权限等级如下:
角色 |
权限等级 |
权限范围 |
超级管理员 |
10 |
管理整个平台的所有用户和功能 |
工会管理员 |
8 |
管理本工会的直播间管理员、主持人、一般用户 |
直播间管理员 |
6 |
管理本直播间的主持人、一般用户(可管理多个直播间) |
主持人 |
4 |
管理本直播间的一般用户,具有主持权限 |
一般用户 |
1 |
基础用户权限,参与聊天和麦序 |
封禁用户 |
0 |
被封禁用户,无法使用平台功能 |
权限管理规则
- 权限采用向下覆盖机制,高权限用户可以管理低权限用户
- 超级管理员:可以管理平台所有用户和功能,可新增所有角色账号
- 工会管理员:只能管理本工会内的成员,不能跨工会管理,可新增直播间管理员、主持人、一般用户
- 直播间管理员:只能管理所属直播间的成员,一个管理员可管理多个直播间,可新增主持人、一般用户
- 主持人:只能管理本直播间的一般用户,具有档位主持权限,不能新增账号
- 一般用户:基础权限,可推荐新用户(需审核)
账号新增权限矩阵
操作者角色 |
可新增角色 |
隶属关系限制 |
审核要求 |
超级管理员 |
所有角色 |
无限制 |
立即生效 |
工会管理员 |
直播间管理员、主持人、一般用户 |
仅限本工会直播间 |
立即生效 |
直播间管理员 |
主持人、一般用户 |
仅限自己管理的直播间 |
立即生效 |
主持人 |
不能新增 |
- |
- |
一般用户 |
一般用户 |
仅限自己所在直播间 |
需要审核 |
5. 平台组织架构
平台采用三级组织架构:
5.1 平台层级
- 平台:最高层级,承载整个系统,只能由超级管理员管理
- 工会:中间层级,可容纳多个直播间,由工会管理员管理(支持多个管理员)
- 直播间:基础层级,实际的聊天和麦序活动场所,由直播间管理员管理(每个直播间1个管理员)
5.2 组织关系
平台
├── 工会A
│ ├── 直播间A1
│ ├── 直播间A2
│ └── 直播间A3
├── 工会B
│ ├── 直播间B1
│ └── 直播间B2
└── 工会C
└── 直播间C1
6. 操作日志与数据保留
- 平台所有操作必须记录到数据库中,包括但不限于:
- 用户登录/登出
- 权限变更
- 麦序操作(排麦、取排、转麦等)
- 聊天消息
- 管理操作(封禁、解封等)
- 数据保留期:最近一个月的所有操作数据
- 支持操作回溯和历史查询功能
7. 用户界面设计
7.1 聊天室界面
所有用户访问的前端界面都是基于权限的聊天室系统:
权限可见范围
- 一般用户:只能看到自己所在的直播间聊天室
- 主持人:可以看到自己主持的直播间聊天室
- 直播间管理员:可以看到自己管理的所有直播间
- 工会管理员:可以看到本工会的所有直播间,可以切换加入不同直播间聊天
- 超级管理员:可以看到所有工会及其直播间,可以自由切换加入任意聊天室
界面组件
- 聊天显示区域:显示聊天消息、系统通知、麦序状态
- 消息输入框:支持文字输入和表情发送
- ActionButton 快速操作区:提供快速操作按钮(具体功能见第9节)
- 麦序显示区:显示当前档位的麦序状态
- 用户列表:显示当前直播间在线用户
自动消息系统
- 直播间支持定时消息功能,自动发送通知给所有用户
- 定时消息可由直播间管理员设置和管理
8. 档位管理系统
8.1 档位时间设置
- 基本档位:默认为1小时,可由管理员自定义设置
- 设置权限:直播间管理员、工会管理员、超级管理员均可独立设定档位时间
- 时间范围:每天24小时,按档位划分管理
8.2 主持人管理
- 主持人指定:每个档位至少需要一名主持人
- 指定周期:主持人每周由直播间管理员在后台指定
- 权限时效:非主持时间段,用户无主持权限
主持档位周期性设定系统
设定周期
- 设定时间:每周日进行主持档位设定
- 设定范围:为下一周(周一到周日)的所有档位安排主持人
- 设定权限:直播间管理员、工会管理员、超级管理员可以设定
设定流程
- 开始设定:每周日管理员进入主持档位设定界面
- 档位展示:系统显示下一周所有档位的时间表格
- 主持人分配:为每个档位分配主持人
- 可以从直播间用户中选择
- 支持一个档位多个主持人(轮换或备用)
- 可以设置主持人优先级
- 冲突检测:系统检测主持人时间冲突
- 确认提交:确认设定后生成主持排序表
主持排序表功能
- 表单生成:设定完成后自动生成主持排序表
- 查询功能:支持按时间、主持人、档位等条件查询
- 导出功能:支持导出为Excel或PDF格式
- 实时更新:支持临时调整和实时更新
用户后台主持查询
个人主持排序查看
- 查看权限:所有用户都可以在后台查看本周的主持排序
- 显示内容:
- 本周个人主持档位安排
- 主持时间段和日期
- 主持档位的基本信息
- 替档和调换记录
- 提醒功能:
- 主持前30分钟系统提醒
- 主持开始时系统通知
- 主持结束时提醒完成档位总结
全员主持排序查看
- 查看范围:用户可以查看整个直播间的主持排序
- 筛选功能:可以按日期、主持人、档位筛选
- 日历视图:提供日历形式的主持安排展示
- 冲突提醒:显示主持时间冲突和调整建议
主持权转让机制
- 转让功能:主持人可在主持后台界面进行主持权转让
- 记录要求:所有转让操作必须记录在操作日志中
- 时间计算规则:
- 不满基本档位时间的一半:按半档计算
- 超过基本档位时间的一半:按全档计算
8.3 直播间麦序配置系统
基础人数设置
- 人数范围:每个档位人数不能少于1人,不能多于8人(不包括主持人)
- 主持人位置:主持人不占用8个麦位名额,单独计算
- 第八麦位:通常预留为空,用于特殊情况(如P麦)
- 设置权限:直播间管理员可在后台自由设置每个档位的最少和最多人数
- 总人数计算:实际在麦人数 = 麦位用户(最多8人)+ 主持人(1人)
麦序参数配置
管理员可以为每个直播间设置以下参数:
人数配置
- 扣排人数:设置允许参与扣排的最大人数
- 手速优先人数:设置手速排麦的优先人数限制
- 置顶卡人数:设置一个档位允许使用置顶卡的最大人数
功能配置
- 收光最小票数:设置用户收光功能的最小票数限制
- 全麦互动频率:设置主持人全麦互动功能的使用频率限制
- 全麦通知样式:设置全麦通知的显示样式和特效
时间配置
- 麦序开始时间:设置每个档位的排麦开始时间(如每小时45分)
- 麦序截止时间:设置每个档位的排麦截止时间(如每小时50分)
- 时间间隔:系统自动计算排麦时间窗口
- 时区设置:支持不同时区的时间配置
扣排方式配置系统
管理员可以设置多种扣排方式,增加互动性和趣味性:
数字类扣排方式
- 6位随机数:系统生成6位随机数字,用户需要输入相同数字
- 100以内加减乘除:系统生成数学题,用户需要输入正确答案
- 数字序列:系统生成数字序列,用户需要找出规律并输入下一个数字
文字类扣排方式
- 成语模式:系统给出成语的前半部分,用户需要输入完整成语
- 诗词接龙:系统给出诗句,用户需要接下一句
- 词语联想:系统给出关键词,用户需要输入相关词语
表情类扣排方式
- 表情模式:系统显示表情组合,用户需要输入相同的表情序列
- 表情数学:用表情代表数字,进行简单的数学运算
- 表情故事:根据表情序列编写小故事
混合类扣排方式
- 图文混合:结合文字、数字、表情的综合题目
- 时间竞速:在限定时间内完成指定任务
- 创意模式:管理员自定义题目和答案
扣排方式设置选项
方式选择模式
- 指定模式:管理员指定使用某一种特定的扣排方式
- 随机模式:系统从已启用的扣排方式中随机选择
- 轮换模式:按照设定的顺序轮换使用不同的扣排方式
- 智能模式:根据用户活跃度和参与情况智能选择
难度设置
- 简单模式:降低题目难度,适合新用户
- 普通模式:标准难度,适合大多数用户
- 困难模式:提高题目难度,增加挑战性
- 自适应模式:根据用户历史表现调整难度
时间限制
- 答题时间:设置用户答题的时间限制
- 抢答模式:最快答对的用户获得麦位
- 思考时间:给用户一定的思考时间再开始计时
9. 麦序系统
9.1 麦序排队机制
排麦时间设置
- 开始时间:由直播间管理员设定(如每小时45分)
- 截止时间:由直播间管理员设定(如每小时50分)
- 自动通知:到达开始时间时,系统自动在公屏发布排麦通知
排麦类型
手速排麦
- 触发条件:用户发布特殊文本(不包含票数信息)
- 排麦方式:根据用户发送特殊文本消息的速度进行排序
- 人数限制:按照档位设定的人员数限制(如6人)
- 显示信息:排上麦的用户显示昵称、麦位序号(1-6)、类型(手速)
- 实时更新:每有一个用户排上,立即显示在麦序列表中
票数排麦
- 触发条件:用户发布包含票数信息的消息
- 排麦方式:根据用户提交的票数进行排序
- 显示信息:排上麦的用户显示昵称、麦位序号、票数、类型(票数)
- 排序规则:票数高的用户排在前面
排麦识别机制
手速排麦识别:
- 用户发送不包含数字票数的特殊文本
- 系统根据发送时间先后顺序排序
- 显示类型为"手速"
票数排麦识别:
- 用户发送包含票数的消息(如"1000票"、"2.5"等)
- 系统自动识别并提取票数信息
- 根据票数大小进行排序
- 显示类型为"票数"
9.2 ActionButton 快速操作
用户通用功能
转麦功能
- 使用条件:截止时间之前可用
- 权限控制:转麦功能是否可用及次数由管理员后台设置
- 操作流程:
- 点击转麦按钮
- 选择当前直播间的其他用户
- 转麦成功后,原排麦用户的手速记录取消
- 被转麦用户的类型显示为"转麦"
转麦档位计算规则
整档计算条件:
- 转麦时间在每小时开始至本小时05分之前
- 例如:1:00-1:05、2:00-2:05、3:00-3:05等时间段内转麦
- 转麦成功后按整档计算
半档计算条件:
- 转麦时间超过本小时05分
- 例如:1:06之后、2:06之后等时间转麦
- 转麦成功后按半档计算
档位作废条件:
- 如果用户因黑麦被取排,则该用户的整档记录作废
- 不论之前是整档还是半档,黑麦取排后档位清零
- 黑麦取排记录需要在操作日志中详细记录
报备功能
- 时间设置:报备时长由直播间管理员设置
- 操作流程:
- 点击报备按钮,界面开始计时
- 计时结束前可点击"报备结束"提前结束
- 报备期间不计算黑麦次数
报备超时处理机制
- 超时判定:报备时间到达设定时长后自动超时
- 超时状态:报备超时后用户进入"报备超时"状态
- 超时后果:
- 如果用户在超时后没有手动结束报备,继续处于报备状态
- 此时如果有全麦活动(全麦互动、全麦通知等),用户没有响应接上
- 系统将此情况判定为黑麦
- 黑麦记录:报备超时导致的黑麦会被记录为"报备超时黑麦"
- 提醒机制:
- 报备即将超时时(如剩余30秒)系统提醒用户
- 报备超时后系统@用户提醒结束报备
- 全麦活动时特别@报备超时用户
P麦功能
- 使用条件:当麦序满员后可用
- 票数设置:按照直播间管理员后台设定的票数进行扣排
- 麦位占用:P麦占用第八麦位
- 不可取消:P麦操作不可取消
取排功能
- 使用时间:截止时间之前可用
- 权限控制:功能是否可用及可取排次数由管理员后台决定
- 操作效果:取消当前用户的麦序排位
收光功能
- 功能描述:用户可以进行收光报备,记录收光票数
- 使用条件:任何时间都可以使用
- 操作流程:
- 点击"收光"按钮
- 弹出输入框,输入收光票数
- 确认发送后进行报备
- 系统记录收光次数和票数
- 最小票数限制:管理员可设置收光最小票数,低于此数值无法提交
- 数据记录:后台记录用户的收光次数、总票数、平均票数等统计数据
全麦功能
- 功能描述:用户可以发起全麦通知,向所有人展示
- 使用条件:任何时间都可以使用
- 操作流程:
- 点击"全麦"按钮
- 弹窗输入界面,包含两个输入框:
- 填写完成后点击确认
- 系统向直播间所有人发送全麦通知
- 通知格式:感谢[老板名字]全麦[票数]票!
- 显示效果:全麦通知在公屏突出显示,可能包含特效
召集卡功能
- 功能描述:用户可以使用召集卡召唤直播间所有人,发布特定需求
- 使用条件:任何时间都可以使用,无限次使用
- 操作流程:
- 点击"召集卡"按钮
- 弹窗输入界面,包含需求描述输入框
- 输入具体需求(如"需要一位会粤语歌的主播")
- 点击确认发布召集
- 系统@直播间所有在线用户并发送召集信息
- 召集格式:@全体成员 [发起人昵称]发起召集:[需求内容]
- 显示效果:召集信息在公屏突出显示,使用特殊标识
- 响应机制:其他用户可以通过回复或私信响应召集
- 使用记录:系统记录召集次数、内容和响应情况
补麦功能
- 功能描述:当排麦结束后麦位不满8人时,用户可以快速补位
- 触发条件:排麦截止时间结束后,当前麦位人数少于8人
- 使用条件:所有用户都可以使用,不受任何限制影响
- 操作流程:
- 系统检测到麦位不满8人
- 所有用户的ActionButton显示"补麦"按钮
- 用户点击补麦按钮快速补位
- 补位成功后按钮消失
- 补麦特性:
- 不受扣排人数、手速优先等限制影响
- 补位后不可取排(包括主持人也不能取排补麦用户)
- 补位用户正常计算麦序时长和档位统计
- 补位按照点击时间先后顺序分配麦位
- 显示标识:补麦用户在麦序中显示"补麦"标识
主持人专属功能
全麦互动功能
- 使用权限:仅主持人在主持权限期间可用
- 功能描述:一键@本档所有排麦人员,提醒活跃互动
- 操作流程:
- 点击"全麦互动"按钮
- 系统自动@本档位所有排麦人员
- 发送统一消息:"来活了!"
- @范围:仅@当前档位已排上麦的用户
- 消息格式:@用户1 @用户2 @用户3... 来活了!
- 使用限制:可设置使用频率限制,避免滥用
管理员专属功能
禁排功能
- 使用权限:直播间管理员、工会管理员、超级管理员可用
- 功能描述:禁止指定用户参与扣排活动
- 操作流程:
- 点击"禁排"按钮
- 弹出用户选择界面
- 可以单选或多选当前直播间的用户
- 确认后对选中用户设置禁排状态
- 禁排效果:
- 被禁排用户无法参与任何形式的扣排
- 包括票数扣排、互动式扣排等所有扣排方式
- 被禁排用户仍可以正常排麦(手速、置顶卡等)
- 禁排状态会在用户界面显示特殊标识
- 禁排管理:
- 管理员可以查看当前禁排用户列表
- 可以随时解除用户的禁排状态
- 禁排操作记录在操作日志中
- 通知机制:被禁排用户会收到系统通知
自动禁排系统
基于黑麦次数的自动禁排
- 功能描述:管理员可以设置本周黑麦达到指定次数后自动禁排
- 默认设置:默认不启用自动禁排功能
- 配置选项:
- 设置黑麦次数阈值(如3次、5次等)
- 设置禁排时长(如禁排到本周结束、禁排7天等)
- 设置是否包含不同类型的黑麦(普通黑麦、报备超时黑麦等)
自动禁排流程
- 黑麦统计:系统实时统计用户本周的黑麦次数
- 阈值检测:当用户黑麦次数达到设定阈值时触发
- 自动执行:系统自动对用户执行禁排操作
- 通知发送:@用户通知其因黑麦次数过多被自动禁排
- 记录日志:在操作日志中记录自动禁排操作
自动禁排管理
- 规则设置:管理员可以设置和修改自动禁排规则
- 例外处理:管理员可以设置例外用户(不受自动禁排影响)
- 手动解除:管理员可以手动解除自动禁排状态
- 统计查看:管理员可以查看自动禁排的执行统计
周期重置
- 重置时间:每周一自动重置所有用户的黑麦次数统计
- 禁排延续:如果禁排时长跨周,禁排状态会延续到下周
- 通知提醒:周期重置时通知相关用户新周期开始
9.3 扣排系统
扣排规则
- 开始时间:扣排在截止时间后开始
- 人数限制:按照管理员设置的扣排人数限制参与
- 扣排方式:根据管理员配置的方式进行扣排
- 禁排限制:被管理员设置为禁排状态的用户无法参与扣排
传统票数扣排
- 票数扣排:用户使用数值进行扣排
- 排位规则:分数高的用户可以挤掉分数低的用户
互动式扣排方式
根据管理员设置的扣排方式,用户需要完成相应任务:
数字类任务
- 6位随机数:用户需要快速输入系统显示的6位数字
- 数学计算:用户需要计算100以内的加减乘除题目
- 数字规律:用户需要找出数字序列的规律
文字类任务
- 成语接龙:用户需要完成成语或进行成语接龙
- 诗词对句:用户需要对出诗词的下一句
- 词语联想:用户需要输入与关键词相关的词语
表情类任务
- 表情复制:用户需要输入相同的表情序列
- 表情运算:用户需要完成表情代表的数学运算
- 表情创意:用户需要用表情表达指定含义
扣排成功判定
- 正确性判定:系统自动判定用户答案的正确性
- 时间判定:在规定时间内完成任务
- 优先级判定:多个用户同时完成时,按照完成时间排序
- 麦位分配:成功完成任务的用户按照表现获得麦位
扣排通知机制
- 被挤出通知:当用户被更高票数挤出麦序时,系统@该用户通知
- 通知内容:@用户昵称 您已被[挤出用户昵称]的[票数]票挤出麦序
- 成功挤入通知:当用户成功挤入麦序时,系统@该用户通知
- 扣排失败通知:当用户票数不足以挤入时,系统@该用户通知
- 通知内容:@用户昵称 扣排失败,您的票数不足以挤入当前麦序
P8特殊处理
当有分数扣排时,P8麦位按以下规则之一进行扣排:
9.4 麦序优先级系统
排麦优先级顺序
麦序系统按以下优先级进行排位:
- 置顶卡 - 最高优先级,无条件优先占位
- P8 - P麦功能,占用第八麦位
- 票数排麦 - 根据票数大小排序
- 手速排麦 - 根据发送消息时间排序
- 补麦 - 排麦结束后的补位功能,不受其他限制影响
优先级处理规则
- 置顶卡优先:使用置顶卡的用户优先获得麦位,但受档位人数限制
- 人数限制:一个档位最多8个人(不包括主持人)
- 同级竞争:同一优先级内按照原有规则排序(票数大小或时间先后)
- 跨级保护:高优先级用户不会被低优先级用户挤掉
- 满员处理:当档位已满8人时,置顶卡用户可以挤掉最低优先级的用户
9.5 麦序信息发布
发布方式
- 发布渠道:扣排信息直接在直播间公屏发布
- 发布者:系统自动发布(不是直播间助手身份)
- 发布时机:
- 排麦过程中的实时更新
- 截止时间结束后的最终确认
- 扣排过程中的排位变化
发布内容
- 排麦阶段:实时显示排上麦的用户信息(包含优先级类型)
- 扣排阶段:显示扣排结果和排位变化
- 最终确认:发布当前档位的最终麦序名单
10. 档位结束处理
10.1 档位结算
当档位结束时,系统需要进行以下处理:
主持人界面弹窗
- 显示对象:当前具有主持权限的人(原主持人或替档人员)
- 显示内容:
- 麦序中各成员的分数
- 各成员的黑麦次数(无响应次数)
- 档位时长统计
- 主持权限转移记录(如有替档)
- 其他相关数据
分数登记机制
- 登记责任人:当前具有主持权限的人负责分数登记
- 如果发生过替档,由最终的替档人员负责登记
- 原主持人无需登记,但档位记录会显示替档标记
- 登记要求:具有主持权限的人必须完成分数登记
- 未登记处理:
- 如果当前主持人未及时登记,系统在主持事项中留存待办
- 待办显示:具体档位分数未汇总
- 影响:影响后续档位的正常进行
替档档位记录
- 原主持人记录:显示为"原主持人昵称(替档人昵称替)"
- 替档人记录:正常显示替档人的主持档位记录
- 档位归属:该档位的主持成果归属于替档人员
10.2 数据统计
- 自动统计:系统自动统计档位期间的各项数据
- 手动确认:主持人需要手动确认和补充相关信息
- 数据保存:所有档位数据保存到操作日志中
11. 管理机制
11.1 主持人管理权限
取排权限
- 权限范围:主持人在主持权限期间可以对麦上人员进行取排
- 操作对象:
- 操作方式:通过ActionButton中的取排功能
取排类型与后果
普通取排
- 重新排麦:被取排人员可以重新参与排麦
- 档位计算:被取排后重新上麦的人员只计算半档
- 记录保存:所有取排操作记录在操作日志中
黑麦取排
- 触发条件:用户在麦上无响应或违规行为,包括:
- 正常情况下无响应
- 报备超时后仍无响应全麦活动
- 其他违规行为
- 档位处理:
- 因黑麦被取排的用户,整档记录作废
- 不论之前是整档、半档还是转麦,黑麦后档位清零
- 该档位不计入用户的档位统计
- 重新排麦:黑麦用户可以重新排麦,但需要重新开始计算档位
- 记录标记:操作日志中需要明确标记黑麦类型:
- "普通黑麦取排"
- "报备超时黑麦取排"
- "违规黑麦取排"
报备超时黑麦处理
- 判定条件:
- 用户处于报备超时状态(超过设定报备时间且未结束报备)
- 期间有全麦活动发生(全麦互动、全麦通知等)
- 用户没有响应全麦活动
- 自动判定:系统自动检测并判定为报备超时黑麦
- 处理方式:
- 自动结束用户的报备状态
- 记录黑麦次数,类型为"报备超时黑麦"
- 主持人可选择是否取排该用户
- 通知机制:
- @用户通知其因报备超时未响应全麦活动被判定黑麦
- 提醒用户及时结束报备状态
替档功能
- 发起权限:具有主持权限的人可以发起替档
- 操作流程:
- 主持人点击替档功能
- 指定一个替档人员
- 替档人员立即获得主持权限
- 原主持人失去主持权限
替档权限转移
- 权限转移:替档人员获得完整的主持权限
- 权限范围:替档人员可以行使所有主持人功能,包括:
- 取排麦上其他人员(不能取排自己)
- 管理直播间秩序
- 发起新的替档(可以继续传递主持权限)
替档记录与标记
- 档位标记:原主持人的主持档位后面会加上"(xxx替)"标记
- 例如:张三的主持档显示为"张三(李四替)"
- xxx为替档人员的昵称
- 替档记录:所有替档操作记录在操作日志中
- 权限追溯:系统记录完整的主持权限转移链条
档位结束处理
- 分数登记界面:档位结束时,当前具有主持权限的人(替档人员)界面会出现分数登记界面
- 登记责任:替档人员负责完成该档位的分数登记工作
- 数据归属:分数登记完成后,该档位数据归属于最终的主持人(替档人员)
11.2 直播间管理员数据统计功能
每日数据统计
- 排档总任务:显示当天总的档位任务数量
- 排档人数:显示当天参与排档的总人数(去重统计)
- 档位完成情况:显示已完成/未完成的档位数量和比例
- 活跃度统计:显示当天直播间的整体活跃度指标
单档位详细数据
管理员可以查看每一档的详细数据:
- 档位基本信息:
- 档位时间段
- 主持人信息(包括替档记录)
- 档位人数设置
- 麦序数据:
- 排麦用户列表及排麦方式(手速/票数/置顶卡)
- 麦序变化记录
- 取排/转麦操作记录
- 档位统计:
- 有效排档人数
- 报备次数统计
- 黑麦次数统计
- 档位完成度
本周汇总数据
- 周度总览:
- 本周总档位数
- 本周总参与人数
- 本周档位完成率
- 本周活跃用户数
- 趋势分析:
- 每日档位完成情况趋势
- 每日参与人数变化趋势
- 用户活跃度变化趋势
- 对比数据:
用户个人数据统计
管理员可以查看每个用户的详细数据:
基本统计数据
排档数据:
- 总排档次数
- 成功排档次数
- 排档成功率
- 排档方式分布(手速/票数/置顶卡)
报备数据:
- 报备总次数
- 报备总时长
- 平均报备时长
- 报备频率统计
- 报备超时次数
- 报备超时黑麦次数
- 报备超时率
取排数据:
- 被取排总次数
- 主动取排次数
- 黑麦取排次数
- 取排原因分析
转麦数据:
- 转出麦位次数
- 接收转麦次数
- 转麦成功率
- 转麦时间分布
收光数据:
- 收光总次数
- 收光总票数
- 平均收光票数
- 收光频率统计
- 收光时间分布
全麦数据:
- 全麦总次数
- 全麦总票数
- 平均全麦票数
- 全麦频率统计
- 老板名字使用统计
召集卡数据:
- 召集总次数
- 召集响应总数
- 召集成功率
- 召集内容分类统计
- 召集时间分布
补麦数据:
- 补麦总次数
- 补麦总时长
- 平均补麦时长
- 补麦成功率
- 补麦时间分布
禁排数据:
- 被禁排总次数
- 被禁排总时长
- 平均禁排时长
- 禁排原因分析
- 禁排期间尝试扣排次数
互动响应数据:
- 被@互动次数
- 互动响应次数
- 互动响应率
- 响应时间统计
- 召集响应次数
- 召集响应成功率
有效性统计
有效排档:
- 定义:完整参与档位且未被黑麦取排的排档
- 统计:有效排档总数、有效率
- 时间分布:按时间段统计有效排档分布
有效主持:
- 定义:实际行使主持权限的时间段
- 包含:原始主持时间 + 替档获得的主持时间
- 不包含:被替档转出的时间(只是临时失去权限)
- 统计:有效主持总时长、平均主持时长、主持完成度
用户行为分析
- 活跃时间分析:用户最活跃的时间段统计
- 参与度评分:基于各项数据的综合参与度评分
- 贡献度统计:用户对直播间的整体贡献度评估
- 成长趋势:用户各项数据的时间趋势分析
11.3 账号管理系统
新增账号权限
除主持人外,所有角色均可以新增账号,但需要根据自身权限进行授权:
超级管理员新增权限
- 可新增角色:所有角色(超级管理员、工会管理员、直播间管理员、主持人、一般用户)
- 隶属设定:可以设定任意隶属关系
- 权限范围:全平台范围内的账号管理
工会管理员新增权限
- 可新增角色:直播间管理员、主持人、一般用户
- 隶属设定:只能设定隶属于本工会的直播间
- 权限范围:仅限本工会范围内的账号管理
- 限制条件:不能新增其他工会管理员或超级管理员
工会管理员直播间创建权限
- 创建权限:工会管理员可以创建新的直播间
- 审核机制:创建的直播间需要超级管理员审核
- 创建流程:
- 工会管理员填写直播间创建申请
- 设置直播间基本信息(名称、描述、配置等)
- 提交申请给超级管理员审核
- 超级管理员审核通过后直播间正式创建
- 审核内容:
- 直播间名称是否合规
- 直播间配置是否合理
- 工会是否有创建新直播间的需求
- 资源分配是否合理
- 状态管理:
- 待审核:直播间创建申请已提交,等待审核
- 审核通过:直播间创建成功,可以正常使用
- 审核拒绝:申请被拒绝,需要修改后重新申请
直播间管理员新增权限
- 可新增角色:主持人、一般用户
- 隶属设定:只能设定隶属于自己管理的直播间
- 权限范围:仅限自己管理的直播间范围内
- 限制条件:不能新增管理员级别及以上的账号
一般用户新增权限
- 可新增角色:一般用户
- 隶属设定:只能设定隶属于自己所在的直播间
- 权限范围:仅限推荐新用户加入
- 限制条件:新增的账号需要管理员审核
账号隶属关系设定
隶属关系规则
- 一般用户:必须隶属于特定直播间
- 主持人:必须隶属于特定直播间
- 直播间管理员:必须隶属于特定直播间(可管理多个直播间)
- 工会管理员:必须隶属于特定工会
- 超级管理员:隶属于平台,无需设定具体隶属
隶属关系验证
- 权限验证:新增账号时验证操作者是否有权限设定该隶属关系
- 范围验证:验证设定的隶属关系是否在操作者的管理范围内
- 层级验证:验证账号层级关系是否符合平台组织架构
新增账号流程
- 选择角色:根据权限选择可新增的角色类型
- 设定隶属:根据角色要求设定隶属关系
- 填写信息:填写账号基本信息(用户名、密码、昵称等)
- 权限配置:配置账号的具体权限和功能
- 审核机制:
- 超级管理员新增:立即生效
- 工会管理员新增:立即生效
- 直播间管理员新增:立即生效
- 一般用户新增:需要管理员审核
- 通知确认:新增成功后通知相关人员
账号管理界面
账号列表显示
- 分级显示:按照隶属关系分级显示账号
- 筛选功能:支持按角色、隶属关系、状态等筛选
- 搜索功能:支持按用户名、昵称等搜索
- 批量操作:支持批量启用/禁用账号
账号详情管理
- 基本信息:显示和编辑账号基本信息
- 隶属关系:显示和修改隶属关系(需要权限验证)
- 权限设置:配置账号的具体权限
- 状态管理:启用/禁用/封禁账号
- 操作记录:显示账号的操作历史记录
11.4 直播间配置管理
麦序参数配置界面
管理员可以通过配置界面设置以下参数:
基础参数设置
扣排人数设置:
- 滑块或输入框设置允许扣排的最大人数
- 范围:1-20人,默认值可自定义
- 实时预览设置效果
手速优先人数设置:
- 设置手速排麦的优先人数
- 范围:1-档位总人数,默认值可自定义
- 与档位人数联动验证
置顶卡人数限制:
- 设置每个档位允许使用置顶卡的最大人数
- 范围:0-档位总人数,0表示不限制
- 防止置顶卡滥用的保护机制
功能参数设置
收光最小票数设置:
- 数字输入框设置收光功能的最小票数
- 范围:1-999999,默认值可自定义
- 低于此数值的收光无法提交
全麦互动频率限制:
- 设置主持人全麦互动功能的使用间隔
- 范围:1-60分钟,防止频繁使用
- 可设置每档位最大使用次数
全麦通知配置:
- 设置全麦通知的显示样式
- 可选择是否启用特效
- 设置通知保留时间
召集卡配置:
- 设置召集卡的使用冷却时间
- 范围:1-60分钟,防止频繁使用
- 设置召集信息的字数限制
- 配置召集信息的显示时长
- 设置是否允许匿名召集
报备超时配置:
- 设置报备的默认时长
- 范围:1-30分钟,可根据直播间需求调整
- 设置报备超时提醒时间(如剩余30秒提醒)
- 配置报备超时后的黑麦判定规则
- 设置是否启用报备超时自动黑麦功能
禁排功能配置:
- 设置禁排功能的使用权限
- 配置禁排状态的显示样式
- 设置禁排操作的日志记录级别
- 配置禁排用户的通知方式
补麦功能配置:
- 设置补麦功能的启用/禁用
- 配置补麦的触发条件(如麦位少于几人时启用)
- 设置补麦用户的显示标识
- 配置补麦的时间窗口(补麦功能持续多长时间)
自动禁排配置:
- 设置是否启用基于黑麦次数的自动禁排
- 配置黑麦次数阈值(1-10次可选)
- 设置自动禁排的时长(到本周结束/固定天数)
- 配置包含的黑麦类型(普通黑麦/报备超时黑麦/全部)
- 设置例外用户列表(不受自动禁排影响的用户)
主持档位配置:
- 设置主持档位的设定周期(默认每周日)
- 配置主持提醒的时间(提前30分钟/1小时等)
- 设置主持冲突检测规则
- 配置主持排序表的显示格式
时间参数设置
麦序开始时间:
- 时间选择器,精确到分钟
- 支持每小时固定时间(如45分)
- 支持自定义时间间隔
麦序截止时间:
- 时间选择器,精确到分钟
- 自动验证与开始时间的合理性
- 显示排麦时间窗口长度
扣排方式配置界面
扣排方式选择
模式配置
指定模式:
- 下拉选择框,选择固定使用的扣排方式
- 实时预览选择的方式效果
随机模式:
轮换模式:
- 拖拽排序设置轮换顺序
- 可设置轮换的周期(按档位或按时间)
智能模式:
难度和时间设置
难度等级:
- 简单/普通/困难/自适应四个等级
- 每个等级可以自定义具体参数
时间限制:
- 答题时间设置(5-60秒)
- 思考时间设置(0-10秒)
- 抢答模式开关
配置预览和测试
- 实时预览:配置修改后实时显示效果
- 测试功能:管理员可以测试配置的扣排方式
- 历史配置:保存和恢复历史配置方案
- 模板功能:提供常用配置模板,快速应用
11.4 其他管理功能
- 黑麦管理:主持人可以标记无响应用户为黑麦
- 秩序维护:主持人负责维护直播间秩序
- 数据确认:主持人需要确认档位结束时的各项数据
12. 道具系统
12.1 道具管理
道具类型
- 置顶卡:排麦时无条件优先占位的特殊道具
- 召集卡:召唤直播间所有人的特殊功能卡
- 扩展性:系统支持后续添加其他类型道具
道具属性
- 道具名称:管理员可以自定义道具名称
- 道具类型:固定为置顶卡类型
- 有效期:道具具有时间限制,过期自动失效
- 使用次数:可设置单次使用或多次使用
- 适用范围:可限定在特定直播间使用
12.2 道具下发系统
下发权限
- 管理员权限:直播间管理员、工会管理员、超级管理员可以下发道具
- 权限范围:
- 直播间管理员:只能向本直播间用户下发
- 工会管理员:可以向本工会所有直播间用户下发
- 超级管理员:可以向任意用户下发
下发流程
- 选择用户:管理员选择要下发道具的目标用户
- 设置道具:
- 自定义道具名称
- 设置有效期(开始时间和结束时间)
- 设置使用次数限制
- 选择适用直播间范围
- 确认下发:系统记录下发操作并通知用户
- 道具生效:用户获得道具,可在有效期内使用
时间限制机制
- 有效期设置:管理员必须设置道具的有效期
- 时间格式:支持精确到分钟的时间设置
- 自动失效:道具到期后自动从用户账户中移除
- 提醒机制:道具即将过期时提醒用户
12.3 道具使用机制
置顶卡使用机制
使用条件
- 有效期内:道具必须在有效期内才能使用
- 适用场景:仅在排麦阶段可以使用
- 使用限制:按照设定的使用次数限制
使用效果
- 优先占位:使用置顶卡的用户优先获得麦位
- 人数限制:受档位人数限制影响,最多8个人(不包括主持人)
- 优先级最高:优先级高于P8、票数排麦、手速排麦
- 挤位机制:当档位已满时,可以挤掉最低优先级的用户
- 显示标识:麦序中显示置顶卡标识和自定义名称
使用流程
- 点击使用:用户在排麦期间点击使用置顶卡
- 检查人数:系统检查当前档位人数(不包括主持人)
- 分配麦位:
- 如果未满8人:直接分配麦位
- 如果已满8人:挤掉最低优先级用户,为置顶卡用户分配麦位
- 扣除次数:使用次数减1(如有限制)
- 显示标识:麦序显示"用户昵称(置顶卡:自定义名称)"
挤位规则详解
- 挤位顺序:置顶卡用户可以挤掉以下用户(按优先级从低到高):
- 手速排麦用户
- 票数排麦用户(票数最低的)
- P8用户(如果P8优先级设定较低)
- 挤位通知:被挤掉的用户会收到系统@提醒通知
- 重新排麦:被挤掉的用户可以重新参与排麦
召集卡使用机制
基本属性
- 获得方式:每个用户默认拥有召集卡功能
- 使用次数:无限次使用,无需消耗
- 使用条件:任何时间都可以使用
- 冷却时间:可设置使用间隔,防止滥用
使用流程
- 点击召集卡:用户点击ActionButton中的召集卡按钮
- 输入需求:弹出输入框,用户输入具体召集需求
- 输入框支持多行文本
- 字数限制:10-200字
- 支持表情和基本格式
- 确认发布:用户确认后发布召集信息
- 全员通知:系统@直播间所有在线用户
- 响应收集:收集其他用户的响应和反馈
召集内容示例
- "需要一位会粤语歌的主播"
- "寻找会弹吉他的朋友一起合作"
- "需要有经验的主持人指导新人"
- "征集有趣的聊天话题"
- "寻找游戏搭档一起开黑"
显示效果
- 特殊标识:召集信息使用特殊图标和颜色标识
- 突出显示:在聊天区域突出显示,不易被其他消息覆盖
- @全员效果:所有在线用户都会收到@提醒
- 持续时间:召集信息在公屏保持一定时间的可见性
响应机制
- 快速响应:用户可以点击召集信息快速响应"我可以"
- 详细回复:用户可以在聊天中详细回复召集需求
- 私信联系:用户可以私信召集发起人详细沟通
- 响应统计:系统统计响应人数和响应内容
12.4 系统通知机制
麦序相关通知
通知显示方式
- 公屏显示:通知消息在直播间公屏显示
- @提醒:使用@符号突出显示被通知的用户
- 消息类型:系统消息,与普通聊天消息区分显示
- 时间戳:显示通知发送的具体时间
12.4 道具记录与管理
操作记录
- 下发记录:记录管理员下发道具的详细信息
- 使用记录:记录用户使用道具的时间和场景
- 失效记录:记录道具过期或用完的情况
道具查询
- 用户查询:用户可以查看自己拥有的道具列表
- 管理员查询:管理员可以查看已下发的道具状态
- 使用统计:统计道具的使用情况和效果
13. 系统功能补充
13.1 用户管理
- 用户注册:支持新用户注册,需要管理员审核
- 用户信息:包括昵称、头像、等级、积分等
- 用户状态:在线/离线状态显示
- 封禁机制:支持临时封禁和永久封禁
- 道具背包:用户可以查看和管理自己的道具
12.2 消息系统
- 实时聊天:支持实时文字聊天
- 表情支持:内置表情包系统
- 消息类型:
- 普通聊天消息
- 系统通知消息
- 麦序操作消息
- 管理操作消息
- @提醒消息
@提醒功能
- @符号标识:使用@符号突出显示被提醒的用户
- 消息高亮:@提醒消息在界面中高亮显示
- 声音提醒:被@的用户收到声音提醒(可设置开关)
- 消息分类:@提醒消息单独分类,便于用户查看
- 自动@:系统在特定情况下自动@相关用户:
- 被挤出麦序时
- 排麦失败时
- 麦序状态变化时
- 被管理员操作时
12.3 通知系统
- 系统通知:重要操作的系统级通知
- 个人通知:针对个人的消息通知
- 直播间通知:直播间级别的公告通知
- 定时通知:可设置的定时消息推送
13. 数据库设计要求
13.1 核心数据表
- 用户表:存储用户基本信息和权限
- 用户ID、用户名、密码、昵称、权限等级
- 隶属关系(隶属工会ID、隶属直播间ID)
- 账号状态(正常、禁用、封禁)
- 创建者ID、创建时间、审核状态
- 工会表:存储工会信息和管理员
- 直播间表:存储直播间信息和配置
- 麦序表:存储麦序记录和状态
- 消息表:存储聊天消息记录
- 操作日志表:存储所有操作记录
- 档位表:存储档位配置和历史记录
- 道具表:存储道具基本信息和配置
- 用户道具表:存储用户拥有的道具及状态
- 道具使用记录表:存储道具使用历史记录
13.2 账号管理相关数据表
- 账号创建记录表:存储账号创建的详细记录
- 创建者ID、被创建账号ID、创建时间
- 设定的权限和隶属关系
- 审核状态、审核人ID、审核时间
- 隶属关系表:存储用户的隶属关系
- 用户ID、隶属类型(工会/直播间)
- 隶属目标ID、生效时间、失效时间
- 变更记录、变更原因
- 权限变更记录表:存储权限变更历史
- 用户ID、原权限、新权限
- 操作者ID、变更时间、变更原因
13.3 直播间配置相关数据表
直播间配置表:存储直播间的麦序配置
- 直播间ID、扣排人数、手速优先人数
- 置顶卡人数限制、麦序开始时间、麦序截止时间
- 配置创建时间、最后修改时间、修改者ID
扣排方式配置表:存储扣排方式的配置
- 直播间ID、扣排方式类型、是否启用
- 方式参数(难度、时间限制等)
- 权重设置、使用频率统计
扣排方式模板表:存储扣排方式的题目模板
- 模板ID、方式类型、题目内容
- 答案内容、难度等级、使用次数
- 创建时间、创建者ID
扣排记录表:存储用户扣排的详细记录
- 用户ID、档位ID、扣排方式类型
- 题目内容、用户答案、是否正确
- 完成时间、用时长度、最终排位
配置变更记录表:存储配置修改的历史记录
- 直播间ID、配置类型、原配置值、新配置值
- 修改者ID、修改时间、修改原因
13.4 用户行为记录数据表
收光记录表:存储用户收光行为记录
- 用户ID、直播间ID、收光时间
- 收光票数、是否达到最小限制
- 档位ID(如果在档位期间)
全麦记录表:存储用户全麦通知记录
- 用户ID、直播间ID、全麦时间
- 老板名字、全麦票数
- 通知内容、显示效果类型
全麦互动记录表:存储主持人全麦互动记录
- 主持人ID、直播间ID、档位ID
- 互动时间、@的用户列表
- 互动效果、参与响应情况
召集卡记录表:存储用户召集卡使用记录
- 用户ID、直播间ID、召集时间
- 召集内容、召集类型、字数统计
- 响应人数、响应用户列表
- 召集效果评分
召集响应表:存储用户对召集的响应记录
- 响应用户ID、召集记录ID、响应时间
- 响应类型(快速响应/详细回复/私信)
- 响应内容、是否匹配需求
- 后续联系情况
报备记录表:存储用户报备行为的详细记录
- 用户ID、直播间ID、档位ID、报备开始时间
- 报备结束时间、报备时长、是否超时
- 超时时长、是否手动结束、超时期间全麦活动次数
- 是否响应全麦活动、是否被判定黑麦
禁排记录表:存储用户禁排状态的记录
- 用户ID、直播间ID、禁排开始时间
- 禁排结束时间、操作管理员ID、禁排原因
- 禁排状态(启用/禁用)、解除原因
补麦记录表:存储用户补麦行为的记录
- 用户ID、直播间ID、档位ID、补麦时间
- 补麦麦位号、补麦时长、档位完成情况
- 补麦触发原因(麦位不满等)
直播间创建申请表:存储工会管理员的直播间创建申请
- 申请ID、申请人ID、工会ID、申请时间
- 直播间名称、描述、配置信息
- 申请状态(待审核/审核通过/审核拒绝)
- 审核人ID、审核时间、审核意见
主持档位安排表:存储每周的主持档位安排
- 安排ID、直播间ID、周期(年-周)
- 档位时间、主持人ID、备用主持人ID
- 创建时间、创建人ID、最后修改时间
- 状态(生效/已过期/临时调整)
黑麦统计表:存储用户的黑麦统计数据
- 用户ID、直播间ID、统计周期(年-周)
- 普通黑麦次数、报备超时黑麦次数、总黑麦次数
- 是否触发自动禁排、自动禁排时间
- 统计重置时间、最后更新时间
自动禁排记录表:存储自动禁排的执行记录
- 记录ID、用户ID、直播间ID、触发时间
- 触发原因(黑麦次数阈值)、黑麦次数
- 禁排时长、解除时间、是否手动解除
- 执行状态、相关配置快照
用户行为统计表:存储用户各项行为的统计数据
- 用户ID、直播间ID、统计周期
- 收光次数、收光总票数、平均收光票数
- 全麦次数、全麦总票数、平均全麦票数
- 召集次数、召集响应次数、召集成功率
- 报备次数、报备超时次数、报备超时黑麦次数
- 补麦次数、补麦总时长、平均补麦时长
- 被禁排次数、禁排总时长、自动禁排次数
- 主持档位次数、主持总时长、替档次数
- 互动响应次数、活跃度评分
13.2 统计数据表
- 用户统计表:存储用户的各项统计数据
- 排档统计(总次数、成功次数、方式分布)
- 报备统计(次数、时长、频率)
- 取排统计(被取排、主动取排、黑麦取排)
- 转麦统计(转出、接收、成功率)
- 有效性统计(有效排档、有效主持)
- 档位统计表:存储每个档位的详细统计数据
- 档位基本信息和完成情况
- 参与用户统计
- 麦序变化统计
- 操作记录统计
- 日统计表:存储每日汇总数据
- 排档总任务数
- 排档总人数
- 档位完成情况
- 活跃度指标
- 周统计表:存储每周汇总数据
13.2 数据关系
- 用户与工会:多对一关系
- 工会与直播间:一对多关系
- 用户与直播间:多对多关系
- 用户与麦序:一对多关系
14. 安全要求
14.1 身份验证
- 登录验证:用户名密码验证
- 会话管理:安全的会话管理机制
- 权限验证:每个操作都需要权限验证
14.2 数据安全
- 数据加密:敏感数据加密存储
- SQL注入防护:防止SQL注入攻击
- XSS防护:防止跨站脚本攻击
- CSRF防护:防止跨站请求伪造
15. 性能要求
15.1 响应时间
- 页面加载:首页加载时间不超过3秒
- 消息发送:消息发送响应时间不超过1秒
- 麦序操作:麦序操作响应时间不超过2秒
15.2 并发处理
- 用户并发:支持单直播间100人同时在线
- 消息并发:支持高频消息发送和接收
- 数据库连接:合理的数据库连接池配置
16. 部署要求
16.1 环境要求
- 操作系统:支持Linux
- Node.js版本:Node.js 16+
- 数据库:MySQL 5.7
- 内存要求:最低4GB RAM
16.2 部署方式
- Docker支持:提供Docker容器化部署
- 反向代理:支持Nginx反向代理
- HTTPS支持:支持SSL证书配置
- 负载均衡:支持多实例负载均衡部署