65 lines
2.6 KiB
Markdown
65 lines
2.6 KiB
Markdown
# 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` 前先确认是否需要密码,否则命令静默失败
|