53 lines
2.6 KiB
Markdown
53 lines
2.6 KiB
Markdown
# 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 蝦皮主数据与软删除
|