# 全新消息系统设计文档

## 🎯 系统概述

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

## 🏗️ 系统架构

### 📊 数据库设计

#### 系统通知模块
- `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
-- 执行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
