README-NEW-MESSAGE-SYSTEM.md 4.2 KB

全新消息系统设计文档

🎯 系统概述

全新的消息系统将用户对话和系统通知完全分离,提供更清晰的功能划分和更好的用户体验。

🏗️ 系统架构

📊 数据库设计

系统通知模块

  • sys_notification - 系统通知表
  • sys_notification_receiver - 通知接收记录表

用户对话模块

  • sys_conversation - 会话表
  • sys_conversation_member - 会话参与者表
  • sys_chat_message - 对话消息表

🔗 API接口设计

系统通知API (/system/notification)

  • GET /list - 查询通知列表(管理员)
  • GET /my - 获取用户通知列表
  • GET /unread/count - 获取未读通知数
  • POST / - 新增通知
  • PUT / - 修改通知
  • DELETE /{ids} - 删除通知
  • POST /{id}/publish - 发布通知
  • PUT /{id}/read - 标记已读
  • DELETE /{id}/my - 删除用户通知

用户对话API (/chat)

  • GET /conversations - 获取会话列表
  • POST /conversation/private/{userId} - 创建私聊会话
  • GET /conversation/{id}/messages - 获取会话消息
  • POST /conversation/{id}/message - 发送消息
  • PUT /conversation/{id}/remark - 设置备注
  • GET /conversation/{id}/unread - 获取未读数

🎨 前端页面

/message - 用户对话页面

  • 📱 会话列表显示
  • 💬 实时消息收发
  • 🔖 备注功能
  • 📊 未读消息统计

/system/message - 系统通知管理页面

  • 📢 通知列表管理
  • ✍️ 通知创建编辑
  • 🎯 目标用户选择
  • 📈 发布状态管理

✨ 核心功能

🔔 系统通知功能

  • 多种通知类型: 系统通知、维护通知、公告
  • 灵活推送: 全员、指定用户、指定角色
  • 定时发布: 支持定时发布和过期时间
  • 状态管理: 草稿、已发布、已撤回
  • 已读管理: 完整的已读/未读状态跟踪

💬 用户对话功能

  • 私聊支持: 用户间一对一对话
  • 会话管理: 完整的会话生命周期管理
  • 备注功能: 为对话用户设置个性化备注
  • 消息类型: 支持文本、图片、文件等多种消息类型
  • 未读统计: 精确的未读消息计数
  • 实时通信: WebSocket实时消息推送

🚀 技术特性

后端技术栈

  • Spring Boot 3.x - 主框架
  • MyBatis - 数据访问层
  • WebSocket - 实时通信
  • Spring Security - 安全认证

前端技术栈

  • Vue.js 2.x - 前端框架
  • Element UI - UI组件库
  • WebSocket Client - 实时通信客户端

数据库特性

  • MySQL 8.0+ - 主数据库
  • 事务支持 - 保证数据一致性
  • 索引优化 - 提升查询性能
  • 视图支持 - 简化复杂查询

📋 部署说明

1. 数据库初始化

-- 执行SQL脚本
source /path/to/new-message-system.sql

2. 后端部署

  • 确保所有新的Java类已编译
  • 重启Spring Boot应用
  • 验证API接口可访问

3. 前端部署

  • 更新前端API调用
  • 重新构建前端应用
  • 部署到Web服务器

🔧 配置说明

WebSocket配置

  • 端点: /ws/message
  • 认证: Token-based
  • 心跳: 30秒间隔

权限配置

  • 系统通知管理需要管理员权限
  • 用户对话无需特殊权限
  • WebSocket连接需要登录认证

📊 性能优化

数据库优化

  • 会话列表查询使用视图
  • 消息查询支持分页
  • 关键字段建立索引

缓存策略

  • 会话列表缓存
  • 用户信息缓存
  • 未读数缓存

前端优化

  • 消息列表虚拟滚动
  • 图片懒加载
  • 组件按需加载

🐛 故障排除

常见问题

  1. 会话列表为空: 检查数据库中是否有测试数据
  2. 消息发送失败: 检查WebSocket连接状态
  3. 未读数不准确: 检查会话成员表的未读数字段

调试方法

  • 查看浏览器控制台日志
  • 检查网络请求状态
  • 验证WebSocket连接

🔮 未来规划

短期目标

  • 群聊功能
  • 消息撤回
  • 文件传输
  • 表情包支持

长期目标

  • 音视频通话
  • 消息加密
  • 离线消息推送
  • 多端同步

📞 技术支持

如有问题,请联系开发团队或查看相关文档。


版本: v2.0
更新时间: 2025-11-12
作者: YuShu Team