当前位置: 首页 > news >正文

即时通讯项目--UserService

功能设计

功能模块示意图

接口实现流程

1. 用户注册

  1. 从请求中取出昵称和密码;
  2. 检查昵称是否合法(仅包含字母、数字、连字符-、下划线_,长度限制 3~15 位);
  3. 检查密码是否合法(仅包含字母、数字,长度限制 6~15 位);
  4. 根据昵称查询数据库,判断昵称是否已存在;
  5. 向数据库新增用户数据;
  6. 向 ES 服务器新增用户信息;
  7. 组织响应,返回注册成功 / 失败结果。

2. 用户登录

  1. 从请求中取出昵称和密码;
  2. 通过昵称从数据库查询用户信息,校验密码是否一致;
  3. 检查 Redis 中的登录标记,判断用户是否已登录;
  4. 构造会话 ID,生成会话键值对,向 Redis 添加会话信息及登录标记;
  5. 组织响应,返回生成的会话 ID。

3. 获取短信验证码

  1. 从请求中取出手机号码;
  2. 验证手机号码格式(必须以 1 开头,第二位为 3~9,后接 9 位数字);
  3. 生成 4 位随机验证码;
  4. 调用短信平台 SDK 发送验证码;
  5. 构造验证码 ID,将 “验证码 ID - 验证码” 映射关系存入 Redis;
  6. 组织响应,返回生成的验证码 ID。

4. 手机号注册

  1. 从请求中取出手机号码和验证码;
  2. 校验手机号码格式是否合法;
  3. 从 Redis 中匹配验证码 ID 与验证码的一致性;
  4. 查询数据库,判断该手机号是否已注册;
  5. 向数据库新增用户信息;
  6. 向 ES 服务器新增用户信息;
  7. 组织响应,返回注册成功 / 失败结果。

5. 手机号登录

  1. 从请求中取出手机号码、验证码 ID 及验证码;
  2. 校验手机号码格式是否合法;
  3. 从 Redis 中匹配验证码 ID 与验证码的一致性;
  4. 根据手机号查询数据库,判断用户是否存在;
  5. 检查 Redis 中的登录标记,判断用户是否已登录;
  6. 构造会话 ID,生成会话键值对,向 Redis 添加会话信息及登录标记;
  7. 组织响应,返回生成的会话 ID。

6. 获取用户信息

  1. 从请求中取出用户 ID;
  2. 根据用户 ID 查询数据库,获取用户基础信息;
  3. 依据用户信息中的头像 ID,从文件服务器获取头像文件数据,组装完整用户信息;
  4. 组织响应,返回用户信息。

7. 设置头像

  1. 从请求中取出用户 ID 与头像数据;
  2. 根据用户 ID 查询数据库,判断用户是否存在;
  3. 将头像文件上传至文件子服务;
  4. 将文件子服务返回的头像文件 ID 更新至数据库;
  5. 更新 ES 服务器中的用户信息;
  6. 组织响应,返回更新成功 / 失败结果。

8. 设置昵称

  1. 从请求中取出用户 ID 与新昵称;
  2. 校验新昵称格式是否合法(仅包含字母、数字、连字符-、下划线_,长度 3~15 位);
  3. 根据用户 ID 查询数据库,判断用户是否存在;
  4. 将新昵称更新至数据库;
  5. 更新 ES 服务器中的用户信息;
  6. 组织响应,返回更新成功 / 失败结果。

9. 设置签名

  1. 从请求中取出用户 ID 与新签名;
  2. 根据用户 ID 查询数据库,判断用户是否存在;
  3. 将新签名更新至数据库;
  4. 更新 ES 服务器中的用户信息;
  5. 组织响应,返回更新成功 / 失败结果。

10. 设置绑定手机号

  1. 从请求中取出新手机号码、验证码 ID 及验证码;
  2. 校验新手机号码格式是否合法;
  3. 从 Redis 中匹配验证码 ID 与验证码的一致性;
  4. 根据用户 ID 查询数据库,判断用户是否存在;
  5. 将新手机号更新至数据库;
  6. 更新 ES 服务器中的用户信息;
  7. 组织响应,返回更新成功 / 失败结果。
http://www.jsqmd.com/news/318422/

相关文章:

  • 【Git版本控制】-趣味解说Git核心知识
  • 2026最新虾青素胶囊品牌五大推荐!优质厂家口碑之选
  • STL——集合 set
  • 【深度好文】多模态嵌入模型两种实现方式详解:解决多模态RAG落地难题,值得收藏
  • AI圈炸锅!Kimi K2.5开源:代码生成+视觉理解,前端开发从此“躺平“
  • CHO/HEK293细胞重组蛋白表达|哺乳动物蛋白表达系统|蛋白表达技术指南
  • 2026年硫氧镁净化板厂家推荐:生物制药净化车间工程、十万级净化车间工程、硫氧镁净化板、电池净化车间工程、食品日化净化车间工程选择指南
  • 收藏必备:RAG应用问答对构建实战:从文档到客服机器人的高效路径
  • 2026年食品吸塑托盘厂家权威推荐榜:食品吸塑托盘/PET食品吸塑包装/一次性食品托盘/吸塑包装盒/选择指南
  • 收藏!月薪5k和50k的工程师差距在哪?AI大模型TPT揭秘工业决策新范式
  • 【算法】leetcode100 堆、栈 - 详解
  • 全解析LuatOS—MQTT
  • 收藏!AI悄然颠覆流程工业,工程师不进化将被淘汰?万华化学的工业AI实践给你答案
  • 博客
  • 2026成都最新全包装修企业top5推荐!金牛区/新都区等地优质全包装修公司权威榜单发布,环保品质与一站式服务双优助力安心家装
  • AI大模型就业风口:5大高薪岗位全解析,年轻人必看,建议收藏
  • 即使.NET大牛也常犯的10个C#错误
  • 论“AI元人文”构想与当代人工智能治理研究的范式对话
  • 【C语言】博客
  • 2026成都最新旧房装修改造企业top5推荐!金牛/新都区等地专业旧房翻新公司权威榜单发布,品质与口碑双优助力理想家居焕新
  • 告别手动复制粘贴!3分钟部署Moltbot:让AI主动帮你处理邮件、写代码的核动力牛马(含收藏级教程)
  • Robot_机器人步态训练相关的论文推荐 - 实践
  • 2026最新防脱发洗发水品牌top5推荐!专业防脱洗护厂家权威榜单发布,科技赋能健康美发
  • 实用指南:外设模块学习(11)——火焰传感器、光敏电阻传感器(STM32)
  • RAG干货:为什么不同召回方式需要不同的chunk策略?看完收藏
  • 别再傻傻分块了!RAG智能索引大法,让大模型回答“稳如老狗“!
  • 大数据领域Kafka的性能优化工具推荐
  • AI开发新风口!RAG技术从入门到精通,解锁大模型新技能,限时免费认证等你来!小白程序员也能秒变RAG大神!
  • AI应用架构师进阶:扩容方案中的负载均衡
  • 国产AI杀疯了!Kimi K2.5大模型深度解析:代码生成+多模态理解+Agent能力,小白程序员也能起飞!