用户设计
- 用户所有的信息都以不能更改的 qq 号为基准
- 如果更换 qq 需要联系管理员更改 user_information 表,并手动删除 user_platform 里绑定的其他平台
- 用户可以设置多种身份,如某某表里的身份,用户组里的身份
- 目前使用的身份为:
- 用户组里分组配置用户,一组有多个用户,每个用户可以在不同组中,每个用户可以拥有多个身份权限
- 在用户组里的用户,拥有"内阁"身份及管理员权限,可操作所有管理员页面
- 在 user_information 表里的用户有社员权限
- 在 user_test 里的用户有测试员权限
- 其他权限可自由添加/设置,如根据用户组来设置页面权限/功能权限
- 可在 cab/user 配置用户组和群组
- 可更改 user_identify 修改用户身份
用户身份确认
- 需要传入平台参数
- 先转换为 qq,若无,则是未绑定的其他平台,返回空
- 查找并添加用户组身份
- 如存在于用户组中,则添加内阁身份
- 如在测试员表里,添加测试员身份
- 如在社员表里,添加社员身份
社员查询
- 根据 qq 查是否在表里
- 初始化时给 qq 建了索引,但表很小基本上优化不了
用户 qq
- 根据平台、用户转换为 qq 号
- 无绑定的其他平台返回空
用户昵称
- 转换为 qq
- 若为未绑定的其他平台,返回空(其实 B 站可以获取)
- 查 user_nickname 表,返回昵称和有效期
- 有效期(3 天)内返回昵称
- 有效期外
- 若为发送
- 返回空
- 发送时的日志,不能调用 nickname_get 否则会套娃
- 若不为发送
- 由于 future.wait 自动会抛出错误,这里错误时直接返回空,所以需要捕获错误
- 发送"私聊昵称"类消息,返回昵称
- 存入表
用户代号
- 根据代号,查 user_information 表获取 qq
用户 qq
- 根据 qq,查 user_information 获取代号
用户入会
- 用户数据存入 user_information
- 不进行检查,检查在 user_register