@@ -0,0 +1,47 @@
|
|||||||
|
# 203 Admin:SYB 同步低优先级补全蝦皮店铺和图片
|
||||||
|
|
||||||
|
- 类型:需求
|
||||||
|
- 父级大工单:#14
|
||||||
|
- 所属 MVP / 版本:#15 后续版本
|
||||||
|
- 状态:已完成,待用户验收
|
||||||
|
- 日期:2026-08-13
|
||||||
|
- Gitea 工单:http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/203
|
||||||
|
|
||||||
|
## 背景与目标
|
||||||
|
|
||||||
|
SYB 明细已经提供蝦皮店铺名和无需登录即可访问的图片 URL,但此前只保存在货运单表,
|
||||||
|
由 SYB 补建的蝦皮商品缺少这两项。目标是在不覆盖人工和商品目录权威字段的前提下补全。
|
||||||
|
|
||||||
|
## 最终方案
|
||||||
|
|
||||||
|
同步写入蝦皮商品骨架时,非空店铺和图片按字段级 `syb` 低优先级来源写入;只补空值
|
||||||
|
或更新同来源新观测。商品目录接口可以把 `syb` 值提升为权威来源。MySQL v15 按每个
|
||||||
|
商品最新非空观测回填历史数据,迁移可重放。图片仍只保存外部 URL,不代理或缓存。
|
||||||
|
|
||||||
|
## 改了哪些
|
||||||
|
|
||||||
|
- `admin/repository/syb.go`:统一 SYB 商品元数据写入和历史回填。
|
||||||
|
- `admin/repository/catalog_import.go`:允许目录来源替换 `syb` 低优先级字段。
|
||||||
|
- `admin/repository/mysql_db.go`:增加 MySQL v15 迁移与自检。
|
||||||
|
- `admin/repository/syb_test.go`:覆盖同来源更新、接口来源和人工字段保护。
|
||||||
|
- `docs/admin/`:更新需求、数据来源优先级和界面基线。
|
||||||
|
|
||||||
|
## 验收结果
|
||||||
|
|
||||||
|
| 验收标准 | 结果 |
|
||||||
|
|---|---|
|
||||||
|
| 新同步商品可从 SYB 补全店铺和图片 | 通过 |
|
||||||
|
| 空值、人工值和接口权威值不被 SYB 覆盖 | 通过 |
|
||||||
|
| 历史记录通过 v15 幂等回填 | 代码与迁移测试已补,待独立 MySQL 8.4 库实跑 |
|
||||||
|
| 图片继续使用原始 URL,不落二进制 | 通过 |
|
||||||
|
|
||||||
|
## 测试
|
||||||
|
|
||||||
|
- 执行的命令:`$env:GOTOOLCHAIN="go1.23.0"; go vet ./...; go build ./...; go test ./... -count=1`
|
||||||
|
- 结果:通过;未配置 MySQL 集成测试开关时,隔离库测试按设计跳过。
|
||||||
|
- **没验证到的部分**:真实 MySQL 8.4 首次建库、重复迁移和 v14 升级实跑。已尝试
|
||||||
|
使用 `autobuy_test`,但现有 `buy` 账号无该隔离库权限;未使用生产 `autobuy` 代测。
|
||||||
|
|
||||||
|
## 相关提交
|
||||||
|
|
||||||
|
- `ad1ccc2` 完善 SYB 蝦皮主数据与软删除
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
# 204 Admin:确定性解析 SYB 规格并补建蝦皮 SKU
|
||||||
|
|
||||||
|
- 类型:需求
|
||||||
|
- 父级大工单:#14
|
||||||
|
- 所属 MVP / 版本:#15 后续版本
|
||||||
|
- 状态:已完成,待用户验收
|
||||||
|
- 日期:2026-08-13
|
||||||
|
- Gitea 工单:http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/204
|
||||||
|
|
||||||
|
## 背景与目标
|
||||||
|
|
||||||
|
SYB 货运单已有蝦皮商品 ID 和颜色尺码原文,但此前只作为只读观测展示,商品主数据
|
||||||
|
缺少对应 SKU。目标是只解析格式明确的数据,避免猜测污染主数据。
|
||||||
|
|
||||||
|
## 最终方案
|
||||||
|
|
||||||
|
新增纯函数解析“颜色,尺码【建议】”二维格式,兼容全角逗号和常见标准尺码;额外维度、
|
||||||
|
未知尺码、空字段或括号不完整时返回失败且不写 SKU。成功记录使用商品 ID 与
|
||||||
|
`spec_key` 生成稳定内部主键,真实蝦皮 SKU ID 保持空,来源标为 `syb`。后续目录接口
|
||||||
|
按同一规格身份补真实 ID,并可把各字段来源提升为权威来源。MySQL v16 回填历史数据。
|
||||||
|
|
||||||
|
## 改了哪些
|
||||||
|
|
||||||
|
- `admin/spec/shopee_spec.go`:确定性解析器。
|
||||||
|
- `admin/service/syb.go`、`admin/repository/syb.go`:同步和历史补建入口。
|
||||||
|
- `admin/repository/catalog_import.go`:同规格权威来源升级。
|
||||||
|
- `admin/repository/mysql_db.go`:增加 MySQL v16 迁移与自检。
|
||||||
|
- `admin/spec/shopee_spec_test.go`、`admin/repository/syb_test.go`:解析与合并测试。
|
||||||
|
- `docs/admin/`:更新“SYB 只读观测”的旧基线。
|
||||||
|
|
||||||
|
## 验收结果
|
||||||
|
|
||||||
|
| 验收标准 | 结果 |
|
||||||
|
|---|---|
|
||||||
|
| 明确的颜色、尺码和建议可解析 | 通过 |
|
||||||
|
| 不明确格式不猜测、不写结构化 SKU | 通过 |
|
||||||
|
| 重复同步使用同一内部记录 | 通过 |
|
||||||
|
| 商品目录可补真实 SKU ID 并升级低优先级字段 | 通过 |
|
||||||
|
| v16 可回填历史 SYB 规格 | 代码与迁移测试已补,待独立 MySQL 8.4 库实跑 |
|
||||||
|
|
||||||
|
## 测试
|
||||||
|
|
||||||
|
- 执行的命令:`$env:GOTOOLCHAIN="go1.23.0"; go vet ./...; go build ./...; go test ./... -count=1`
|
||||||
|
- 结果:解析器和非 MySQL 回归通过;MySQL 集成测试因未启用隔离库而跳过。
|
||||||
|
- **没验证到的部分**:真实 MySQL 8.4 v15→v16 历史回填和重放。`buy` 无
|
||||||
|
`autobuy_test` 权限,未使用生产库代测。
|
||||||
|
|
||||||
|
## 相关提交
|
||||||
|
|
||||||
|
- `ad1ccc2` 完善 SYB 蝦皮主数据与软删除
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
# 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 蝦皮主数据与软删除
|
||||||
Reference in New Issue
Block a user