# 数据看板不更新问题排查 ## 🔍 问题现象 视频已经下载了,但是数据看板中的数据没有更新。 ## 📋 可能的原因 ### 1. 数据库记录未保存 - 视频文件下载成功,但数据库记录保存失败 - 检查日志中是否有 "批量保存视频到数据库失败" 的错误 ### 2. 前端缓存问题 - 浏览器缓存了旧的统计数据 - 前端组件没有刷新数据 ### 3. 数据库查询问题 - 统计查询没有正确读取数据 ## 🔧 排查步骤 ### 步骤1:检查数据库中的记录 **方法一:通过前端页面** 1. 访问 `http://localhost:8001` 2. 进入「同步记录」页面 3. 查看是否有视频记录显示 4. 检查视频记录是否有 `videoSavePath` 字段 **方法二:通过 Swagger API** 1. 访问 `http://localhost:10101/swagger` 2. 找到 `POST /api/video/paged` 3. 输入参数:`{"pageIndex":1,"pageSize":10}` 4. 执行查询,查看返回的数据 **方法三:直接查询数据库** ```bash cd /Users/gaotu/WebstormProjects/dysync.net sqlite3 db/dy.sqlite "SELECT COUNT(*) FROM dy_collect_video;" sqlite3 db/dy.sqlite "SELECT id, videoTitle, videoSavePath FROM dy_collect_video LIMIT 5;" ``` ### 步骤2:检查日志 查看最新的日志文件,搜索关键词: - "批量保存视频到数据库失败" - "本次共同步成功" - "下载成功" ```bash # 查看最新日志 tail -100 logs/log-debug-20251120.txt | grep -E "(下载成功|批量保存|同步成功)" ``` ### 步骤3:检查前端数据刷新 1. **清除浏览器缓存** - 按 `F12` 打开开发者工具 - 右键点击刷新按钮 - 选择「清空缓存并硬性重新加载」 2. **手动刷新数据看板** - 进入「数据看板」页面 - 按 `F5` 刷新页面 - 或关闭页面重新打开 3. **检查网络请求** - 按 `F12` 打开开发者工具 - 切换到「Network」标签 - 刷新「数据看板」页面 - 查看 `/api/video/statics` 请求的响应数据 ## 🛠️ 解决方案 ### 方案1:强制刷新前端数据 在前端代码中添加自动刷新功能,修改 `statics.vue`: ```vue // 在 onMounted 中添加定时刷新 onMounted(() => { loadDashboardData(); // 每30秒自动刷新一次 const timer = setInterval(() => { loadDashboardData(); }, 30000); onUnmounted(() => { clearInterval(timer); }); }); ``` ### 方案2:检查数据库保存逻辑 如果日志显示 "批量保存视频到数据库失败",需要检查: 1. 数据库连接是否正常 2. 视频记录是否有重复(AwemeId 冲突) 3. 字段是否有空值或格式错误 ### 方案3:手动触发数据刷新 在前端「数据看板」页面添加刷新按钮: ```vue 刷新数据 ``` ## 📝 快速检查清单 - [ ] 数据库中是否有视频记录? - [ ] 视频记录是否有 `videoSavePath` 字段? - [ ] 视频文件是否实际存在? - [ ] 日志中是否有保存失败的错误? - [ ] 前端是否缓存了旧数据? - [ ] API 返回的数据是否正确? ## 🎯 立即操作 1. **刷新浏览器页面**(清除缓存) 2. **检查「同步记录」页面**,看是否有视频记录 3. **查看浏览器控制台**(F12),检查是否有错误 4. **查看网络请求**,确认 API 返回的数据 如果「同步记录」页面有数据,但「数据看板」没有更新,那就是前端缓存问题,需要强制刷新。 如果「同步记录」页面也没有数据,那就是数据库保存问题,需要检查日志。