63 lines
3.3 KiB
Markdown
63 lines
3.3 KiB
Markdown
# 215 Admin:支持人工修改蝦皮 SKU 颜色尺码
|
||||
|
|
|
|||
|
|
- 类型:需求
|
|||
|
|
- 父级大工单:#14
|
|||
|
|
- 所属 MVP / 版本:#15 / MVP 后续
|
|||
|
|
- 状态:已完成,待用户验收
|
|||
|
|
- 日期:2026-08-13
|
|||
|
|
- Gitea 工单:http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/215
|
|||
|
|
|
|||
|
|
## 背景与目标
|
|||
|
|
|
|||
|
|
蝦皮商品详情原来只能查看规格。采购员无法修正已有 SKU 的颜色、尺码和建议说明,
|
|||
|
|
解析错误或缺失数据只能等待第三方重新导入。本任务增加受控人工修正,并保护人工值不被
|
|||
|
|
后续目录导入或 SYB 低优先级补全覆盖。
|
|||
|
|
|
|||
|
|
## 最终方案
|
|||
|
|
|
|||
|
|
每条现有 SKU 在只读摘要旁提供折叠“编辑”表单,只开放颜色、尺码和建议说明。颜色、
|
|||
|
|
尺码必填,建议可清空;服务端限制每项最多 500 个字符,并同时核对内部 SKU 记录和商品
|
|||
|
|
归属。保存把三个字段来源写为 `manual`、记录观测时间并设置 `parse_ok=1`,但不修改
|
|||
|
|
`spec_raw`、`spec_key`、真实 SKU ID、SKU 编码、来源或 `is_manual`。
|
|||
|
|
|
|||
|
|
目录 `fill_missing` 规则增加字段级人工保护,因此主动清空建议也不会被再次补入;
|
|||
|
|
`overwrite_same_source` 原本按来源判断,会自然跳过 `manual`。保存成功或校验失败后保留
|
|||
|
|
列表筛选和页码,并自动重新打开同一商品详情。未新增数据库迁移、SKU 新增/删除或 Client
|
|||
|
|
接口,实施与建单方案一致。
|
|||
|
|
|
|||
|
|
## 改了哪些
|
|||
|
|
|
|||
|
|
- `admin/service/shopee_sku.go`:输入校验、事务、字段来源合并和人工保存。
|
|||
|
|
- `admin/repository/shopee.go`:读取字段来源并按 SKU 与商品双重条件更新。
|
|||
|
|
- `admin/repository/catalog_import.go`:`fill_missing` 尊重字段级 `manual` 来源。
|
|||
|
|
- `admin/handler/web/shopee.go`、`admin/handler/web/web.go`:增加保存路由和上下文返回。
|
|||
|
|
- `admin/service/shopee_list.go`、`admin/templates/shopee/detail_modal.html`:提供内部定位值、
|
|||
|
|
只读原文和逐行折叠编辑表单。
|
|||
|
|
- `admin/static/css/app.css`:增加紧凑的 SKU 编辑布局。
|
|||
|
|
- `admin/service/shopee_sku_test.go` 等:覆盖保存、输入拒绝、跨商品保护和导入防覆盖。
|
|||
|
|
- `docs/admin/01-requirements.md`、`03-data-model.md`、`05-ui-specification.md`、
|
|||
|
|
`06-quality-security.md`:同步需求、数据和测试基线。
|
|||
|
|
|
|||
|
|
## 验收结果
|
|||
|
|
|
|||
|
|
| 验收标准 | 结果 |
|
|||
|
|
|---|---|
|
|||
|
|
| 登录用户可修改已有 SKU 的颜色、尺码和建议说明 | 通过 |
|
|||
|
|
| 空必填项、超长内容、错误记录和跨商品记录被拒绝且无部分更新 | 通过 |
|
|||
|
|
| 保存后已解析,原文、规格键和真实 SKU ID 不变 | 通过 |
|
|||
|
|
| 人工字段不被两种目录更新策略覆盖 | 通过 |
|
|||
|
|
| 主动清空建议后不会被低优先级补空 | 通过 |
|
|||
|
|
| 不修改 SYB 原始数据、规格映射、采购任务和 Client 接口 | 通过(修改范围检查) |
|
|||
|
|
| Go 1.23 build、test、vet 全部通过 | 通过 |
|
|||
|
|
|
|||
|
|
## 测试
|
|||
|
|
|
|||
|
|
- 执行的命令:`$env:GOTOOLCHAIN="go1.23.0"; go build ./...; go test ./... -count=1; go vet ./...`
|
|||
|
|
- 结果:全部通过;新增服务测试使用 SQLite 小库覆盖事务写入和两种导入策略保护。
|
|||
|
|
- **没验证到的部分**:未设置 `CMAUTOBUY_MYSQL_TEST=1`,因此未执行真实 MySQL 8
|
|||
|
|
隔离库测试;未在生产 MySQL 写入;未做真实浏览器逐行编辑的人工验收。
|
|||
|
|
|
|||
|
|
## 相关提交
|
|||
|
|
|
|||
|
|
- `4752fef` feat: 支持人工修改蝦皮规格 (#215)
|