对话逻辑修复

This commit is contained in:
2025-07-25 17:48:02 +08:00
parent a4c6140ed5
commit f576de68da
31 changed files with 2129 additions and 588 deletions
+147
View File
@@ -0,0 +1,147 @@
# 聊天记录调试指南
## 问题总结
1. **Controller层优化完成**
- 移除了业务逻辑,业务代码移到Service层
- 使用专门的Request和Response DTO
- 统一使用Result返回格式
2. **前端调用问题修复**
- 添加了缺失的`useUserStore`导入
- 修正了API调用方法(搜索和最近消息改为POST)
## 调试步骤
### 1. 检查前端基础环境
在浏览器控制台运行:
```javascript
// 检查token
console.log('Token:', localStorage.getItem('token'))
// 检查用户信息
console.log('User store:', window.Vue?.config?.globalProperties?.$stores?.user)
// 检查API基础配置
console.log('API Base URL:', 'http://localhost:8080') // 根据实际情况修改
```
### 2. 手动测试API调用
在浏览器控制台运行:
```javascript
// 测试获取用户消息分页
fetch('/message/user/page?current=1&size=5', {
headers: {
'Authorization': `Bearer ${localStorage.getItem('token')}`,
'Content-Type': 'application/json'
}
})
.then(res => res.json())
.then(data => console.log('分页API结果:', data))
.catch(err => console.error('分页API错误:', err))
// 测试搜索消息
fetch('/message/user/search', {
method: 'POST',
headers: {
'Authorization': `Bearer ${localStorage.getItem('token')}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({ keyword: '测试', limit: 5 })
})
.then(res => res.json())
.then(data => console.log('搜索API结果:', data))
.catch(err => console.error('搜索API错误:', err))
// 测试获取最近消息
fetch('/message/user/recent', {
method: 'POST',
headers: {
'Authorization': `Bearer ${localStorage.getItem('token')}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({ limit: 5 })
})
.then(res => res.json())
.then(data => console.log('最近消息API结果:', data))
.catch(err => console.error('最近消息API错误:', err))
```
### 3. 检查聊天记录按钮事件
在聊天页面控制台运行:
```javascript
// 查找聊天记录按钮
const historyButton = document.querySelector('.header-right .action-btn')
console.log('聊天记录按钮:', historyButton)
// 检查点击事件
if (historyButton) {
historyButton.addEventListener('click', () => {
console.log('聊天记录按钮被点击')
})
}
// 检查抽屉状态
const drawer = document.querySelector('.history-drawer')
console.log('聊天记录抽屉:', drawer)
```
### 4. 检查Vue组件状态
在聊天页面控制台运行:
```javascript
// 检查Vue实例
const app = document.querySelector('#app').__vue__
console.log('Vue app:', app)
// 检查聊天记录相关的响应式数据
console.log('showHistory:', app?.setupState?.showHistory?.value)
console.log('historyMessages:', app?.setupState?.historyMessages?.value)
console.log('historyLoading:', app?.setupState?.historyLoading?.value)
```
## 常见问题排查
### 1. Token问题
- 检查localStorage中是否有token
- 检查token是否过期
- 检查token格式是否正确
### 2. 网络请求问题
- 检查浏览器Network面板
- 检查是否有CORS错误
- 检查API路径是否正确
### 3. 后端认证问题
- 检查后端日志中的认证信息
- 检查UserContextHolder是否正确设置
- 检查CurrentUserUtil.requireCurrentUserId()是否抛出异常
### 4. 前端组件问题
- 检查Vue组件是否正确挂载
- 检查响应式数据是否正确初始化
- 检查事件绑定是否正确
## 修复后的API接口
### 后端接口
- `GET /message/user/page` - 获取用户消息分页
- `POST /message/user/search` - 搜索用户消息
- `POST /message/user/recent` - 获取用户最近消息
### 前端调用
```javascript
// 获取分页消息
messageApi.getUserMessages(1, 20)
// 搜索消息
messageApi.searchUserMessages('关键词', 50)
// 获取最近消息
messageApi.getRecentMessages(10)
```
## 预期结果
- 点击聊天记录按钮后,抽屉正常打开
- 控制台显示API调用日志
- 聊天记录正确加载和显示
- 搜索功能正常工作