# 消息系统API测试指南

## 🚀 测试前准备

### 1. 确保数据库已更新
```sql
-- 执行完整的SQL脚本
source e:/yushu/yushu/yushu-backend/sql/new-message-system.sql
```

### 2. 启动后端应用
```bash
cd e:/yushu/yushu/yushu-backend
mvn spring-boot:run
```

### 3. 获取认证Token
```bash
# 登录获取token
curl -X POST http://localhost:8080/login \
  -H "Content-Type: application/json" \
  -d '{"username":"admin","password":"admin123"}'
```

## 📋 API测试清单

### 🔔 系统通知API测试

#### 1. 获取用户通知列表
```bash
curl -X GET http://localhost:8080/system/notification/my \
  -H "Authorization: Bearer YOUR_TOKEN"
```
**预期结果**: 返回2条系统通知

#### 2. 获取未读通知数
```bash
curl -X GET http://localhost:8080/system/notification/unread/count \
  -H "Authorization: Bearer YOUR_TOKEN"
```
**预期结果**: 返回未读数量

#### 3. 标记通知为已读
```bash
curl -X PUT http://localhost:8080/system/notification/1/read \
  -H "Authorization: Bearer YOUR_TOKEN"
```
**预期结果**: 成功标记已读

### 💬 用户对话API测试

#### 1. 获取会话列表
```bash
curl -X GET http://localhost:8080/chat/conversations \
  -H "Authorization: Bearer YOUR_TOKEN"
```
**预期结果**: 返回会话列表（可能为空，需要先创建）

#### 2. 创建私聊会话
```bash
curl -X POST http://localhost:8080/chat/conversation/private/2 \
  -H "Authorization: Bearer YOUR_TOKEN"
```
**预期结果**: 返回会话ID

#### 3. 获取会话消息
```bash
curl -X GET "http://localhost:8080/chat/conversation/conv_1_2/messages?pageNum=1&pageSize=50" \
  -H "Authorization: Bearer YOUR_TOKEN"
```
**预期结果**: 返回消息列表

#### 4. 发送消息
```bash
curl -X POST http://localhost:8080/chat/conversation/conv_1_2/message \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"content":"这是一条测试消息"}'
```
**预期结果**: 消息发送成功

#### 5. 设置会话备注
```bash
curl -X PUT http://localhost:8080/chat/conversation/conv_1_2/remark \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"remarkName":"我的好友"}'
```
**预期结果**: 备注设置成功

## 🌐 前端功能测试

### 1. 访问消息页面
- URL: http://localhost:8081/message
- 检查: 页面正常加载
- 验证: 会话列表显示

### 2. 创建新会话
- 点击"新建会话"按钮
- 选择用户（testuser 或 user3）
- 点击确定创建会话

### 3. 发送消息
- 选择一个会话
- 在输入框输入消息
- 按回车或点击发送

### 4. 设置备注
- 在会话详情中点击备注按钮
- 输入备注名称
- 保存备注

## 🐛 常见问题排查

### 问题1: 会话列表为空
**原因**: 没有创建会话或数据库数据问题
**解决**: 
1. 检查数据库中是否有测试数据
2. 尝试创建新会话
3. 检查API返回的数据格式

### 问题2: 无法发送消息
**原因**: 会话ID不正确或后端接口问题
**解决**:
1. 检查会话是否正确创建
2. 验证会话ID格式
3. 查看后端日志错误信息

### 问题3: 消息记录不显示
**原因**: 前端数据映射问题或API返回格式问题
**解决**:
1. 检查浏览器控制台错误
2. 验证API返回的数据结构
3. 检查前端数据处理逻辑

## 📊 数据库验证查询

### 检查会话数据
```sql
-- 查看所有会话
SELECT * FROM sys_conversation;

-- 查看会话成员
SELECT * FROM sys_conversation_member;

-- 查看对话消息
SELECT * FROM sys_chat_message;
```

### 检查通知数据
```sql
-- 查看系统通知
SELECT * FROM sys_notification;

-- 查看通知接收记录
SELECT * FROM sys_notification_receiver;
```

### 检查用户数据
```sql
-- 查看测试用户
SELECT user_id, user_name, nick_name FROM sys_user WHERE user_id IN (1,2,3);
```

## ✅ 成功标志

### 后端API成功
- [ ] 所有API返回正确的HTTP状态码
- [ ] 数据格式符合预期
- [ ] 数据库中正确创建/更新记录

### 前端功能成功
- [ ] 页面正常加载，无JavaScript错误
- [ ] 会话列表正确显示
- [ ] 消息发送和接收正常
- [ ] 备注功能正常工作

### 集成测试成功
- [ ] 前后端数据交互正常
- [ ] WebSocket连接稳定
- [ ] 实时消息推送工作
- [ ] 未读数统计准确

## 🔧 调试技巧

### 后端调试
1. 查看Spring Boot启动日志
2. 检查SQL执行日志
3. 使用断点调试Service层

### 前端调试
1. 打开浏览器开发者工具
2. 查看Network标签页的API请求
3. 检查Console标签页的错误信息
4. 使用Vue DevTools查看组件状态

---
**测试完成后，请反馈遇到的具体问题，我会进一步协助解决！**
