Files
cmautobuy/docs/task/205-蝦皮商品软删除和恢复.md
T

53 lines
2.6 KiB
Markdown
Raw Normal View History

2026-08-13 10:40:16 +08:00
# 205 Admin:实现蝦皮商品软删除、恢复和批量选择修复
- 类型:缺陷 / 需求
- 父级大工单:#14
- 所属 MVP / 版本:#15 后续版本
- 状态:已完成,待用户验收
- 日期:2026-08-13
- Gitea 工单:http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/205
## 背景与目标
蝦皮页面已有删除按钮但后端固定返回 501,而且删除表单收不到属于采集表单的勾选值。
目标是实现管理员可恢复的软删除,保留 SKU、PDD 关联和历史,并修正批量表单归属。
## 最终方案
MySQL v17 增加删除时间、删除管理员、索引和用户外键。默认业务查询排除软删除商品;
管理员可切换到“已删除”范围恢复。删除前按商品检查进行中的采集和采购任务,命中时
整批拒绝。删除、恢复和批量采集共用一个标准表单,通过按钮 `formaction` 选择接口,
确认文案明确数量、可恢复和保留内容。SYB 同步与商品目录导入不会清除删除标记。
## 改了哪些
- `admin/repository/shopee.go`:默认过滤、任务拦截、软删除和恢复写入。
- `admin/service/shopee_delete.go`:管理员权限、批量去重和事务边界。
- `admin/handler/web/shopee.go`、`web.go`:管理员路由和提示。
- `admin/templates/shopee/list.html`、`static/js/app.js`:已删除筛选、恢复、共享表单和状态保持。
- `admin/repository/mysql_db.go`:增加 MySQL v17 迁移与自检。
- `admin/service/shopee_delete_test.go`、`admin/main_test.go`:软删除和界面契约测试。
- `docs/admin/`:更新权限、交互和数据模型基线。
## 验收结果
| 验收标准 | 结果 |
|---|---|
| 只有管理员显示并可调用删除、恢复 | 通过 |
| 删除后默认列表和业务入口不可见,SKU/PDD 关联保留 | 通过 |
| 有进行中任务时整批拒绝 | 通过 |
| 已删除列表可恢复且不重建数据 | 通过 |
| 勾选值能提交到采集、删除和恢复接口 | 通过 |
| v17 可首次创建、重放和从旧版升级 | 代码与迁移测试已补,待独立 MySQL 8.4 库实跑 |
## 测试
- 执行的命令:`$env:GOTOOLCHAIN="go1.23.0"; go vet ./...; go build ./...; go test ./... -count=1`
- 结果:通过;模板、路由、服务和仓储回归均通过,MySQL 测试按隔离库门禁跳过。
- **没验证到的部分**:真实 MySQL 8.4 v16→v17 DDL、外键和索引实跑,以及浏览器人工
点击验收。现有 `buy` 账号无 `autobuy_test` 权限,未对生产库执行测试迁移。
## 相关提交
- `ad1ccc2` 完善 SYB 蝦皮主数据与软删除