全新消息系统设计文档
🎯 系统概述
全新的消息系统将用户对话和系统通知完全分离,提供更清晰的功能划分和更好的用户体验。
🏗️ 系统架构
📊 数据库设计
系统通知模块
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连接需要登录认证
📊 性能优化
数据库优化
- 会话列表查询使用视图
- 消息查询支持分页
- 关键字段建立索引
缓存策略
前端优化
🐛 故障排除
常见问题
- 会话列表为空: 检查数据库中是否有测试数据
- 消息发送失败: 检查WebSocket连接状态
- 未读数不准确: 检查会话成员表的未读数字段
调试方法
- 查看浏览器控制台日志
- 检查网络请求状态
- 验证WebSocket连接
🔮 未来规划
短期目标
长期目标
📞 技术支持
如有问题,请联系开发团队或查看相关文档。
版本: v2.0
更新时间: 2025-11-12
作者: YuShu Team