dy-dashboard/vault/知识库/工作指南/训练记录/2026-07-16-测试问题页面功能优化.md
2026-10-28 11:14:17 +08:00

2.6 KiB
Raw Permalink Blame History

2026-07-16 测试问题页面功能优化


1. 图片显示404问题排查与修复

旭东 → OpenClaw:

测试环境中,测试问题菜单里面提交反馈时上传图片,保存之后显示图片异常

排查过程:

  • 测试环境:feedback.js 审核页图片路径多了一层 /static(路径拼接错误)
  • 生产环境:代码修复后图片仍404,排查发现文件被自动删除

根因:

  • 本机存在 sync_feedback_files.sh 脚本,通过 cron 每分钟运行 rsync -az --delete 将测试环境的空附件目录同步到生产,导致生产文件被删
  • 该脚本是之前训练笔记创建的,但旭东此前已要求停用,未执行且未记录

修复措施:

  • 删除 cron 任务 + 删除 sync_feedback_files.sh 脚本
  • 测试环境代码全量打包部署到生产
  • 重启生产服务器

2. 附件删除功能

旭东 → OpenClaw:

需要添加一个附件删除图标,每个附件可以删除

实现:

  • 后端:新增 /api/feedback/delete_attachment API(本人或管理员可操作)
  • 前端:反馈详情页和审核页的每个附件右上角显示红色删除按钮
  • 删除时确认弹窗,删除后刷新详情

3. 测试问题页面优化(4项)

旭东 → OpenClaw:

1、反馈问题tab页右边新增全部问题tab页 2、审核问题下方分为待审核tab页和审核未通过tab页 3、审核问题增加驳回按钮 4、驳回需填写理由,在审核未通过tab页展示

实现:

  • 数据库:feedback 表加 reject_reason 列
  • 后端:新增驳回 API、查询支持 rejected 状态
  • 前端:重构 tab 结构(全部问题、待审核/审核未通过)、驳回弹窗、理由展示
  • 踩坑: status 列原是 ENUM 类型,不包含 'rejected',需改为 VARCHAR(20)
  • 踩坑: 测试环境 Gunicorn 从 09:51 就没重启成功过,所有代码修改未生效需强制 kill -9 + 重启

筛选功能补充:

  • 全部问题 tab 增加了人员和状态筛选,选择后自动刷新列表

4. 经验教训

  • 旭东要求的任何改动必须随做随记到知识库(包括已完成的指令和未执行的指令)
  • 文件自动删除不一定是应用代码问题,需检查系统定时任务/cron
  • 排查文件保存问题:写入 /tmp/fb_debug.txt 确认文件是否真的落盘
  • 排查服务器问题时先确认 Gunicorn 是否真的重启成功(用 ps aux | grep gunicorn 看进程时间)
  • 数据库字段类型 ENUM 扩展性差,新增值需改表结构,建议用 VARCHAR
  • 通过 sudo kill -9 前先确认是否需要密码,否则命令静默失败