Files
cmautobuy/docs/task/150-蝦皮店铺图片筛选.md
T

67 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 150 Admin:蝦皮数据增加店铺和图片三态筛选
- 类型:需求
- 父级大工单:#14
- 所属 MVP / 版本:#15 / 商品目录数据接入后续
- 状态:已完成
- 日期:2026-08-11
- Gitea 工单:http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/150
## 背景与目标
蝦皮数据页已经展示店铺和主图,但原工具条只能按业务状态及商品 ID/标题查询。
采购员无法快速查看资料完整的商品,也不能定位缺少店铺或图片、需要补数据的商品。
本任务增加两个可组合的三态筛选,并保证分页和操作返回不丢失条件。
## 最终方案
在顶部工具条的状态筛选后依次增加“店铺、图片”两个原生下拉框,每个均为
“全部 / 有 / 无”三态。没有使用复选框,因为未勾选无法区分“全部”和“无资料”;
没有增加弹窗或 JavaScript,沿用公共工具条 `flex-wrap` 在窄窗口自然换行。
GET 参数使用 `shop=has|missing`、`image=has|missing`。handler 负责把未知值归一为
“全部”,repository 的统一 `shopeeFilterClause` 同时供列表和 COUNT 使用,并将 NULL、
空字符串和纯空白都视为“无”。service 把两个条件纳入 `IsFiltered`;分页、详情 URL、
保存/采集返回和删除表单均保留全部条件。筛选无结果时提供清除入口。
## 改了哪些
- `admin/repository/shopee.go`:扩展筛选对象并集中增加店铺、图片 SQL 条件。
- `admin/service/shopee_list.go`:增加三态选项、参数归一和筛选状态识别。
- `admin/handler/web/shopee.go`:读取、透传并在写操作返回时保留新参数。
- `admin/templates/shopee/list.html`:增加两个下拉框、空状态和删除表单隐藏条件。
- `admin/templates/shopee/detail_modal.html`:保存、采集表单保留店铺和图片条件。
- `admin/service/shopee_list_test.go`、`admin/handler/web/pagination_test.go`、`admin/main_test.go`:增加组合筛选、参数、URL、状态条和模板测试。
- `docs/admin/05-ui-specification.md`:记录工具条顺序、三态语义和状态保留规则。
## 验收结果
| 验收标准 | 结果 |
|---|---|
| 工具条顺序为状态、店铺、图片、商品 ID | 通过 |
| 店铺和图片均支持全部/有/无 | 通过 |
| NULL、空字符串和纯空白正确归入“无” | 通过 |
| 两条件可互相组合并叠加关键词 | 通过 |
| 未知参数回退全部且默认列表不变 | 通过 |
| 列表和 COUNT 共用 SQL 条件,分页总数一致 | 通过 |
| 分页、详情、保存和采集返回保留条件 | 通过 |
| 无结果显示清除筛选入口 | 通过 |
| 固定 Go 1.23 build/test/vet 通过 | 通过 |
## 测试
- 执行的命令:在 `admin/` 使用 `GOTOOLCHAIN=go1.23.0` 执行 `go build ./...`、`go test ./... -count=1`、`go vet ./...`。
- 结果:全部通过;`git diff --check` 通过。
- 生产部署:以提交 `0ad44c2` 构建 Linux amd64 二进制,SHA-256 为
`4522bd0b040dbb888d543079f5c3b14c49c233a64dd133527bb0eb6b09d54233`;部署前备份
位于 `/opt/cmautobuy/backups/autobuy-before-0ad44c2-20260811T060223Z-notablespaces.sql.gz`,
gzip 校验通过且权限为 `600`。生产服务已切换到 `/opt/cmautobuy/releases/0ad44c2/`,
systemd、MySQL schema v10、本机监听和公网 HTTPS 登录页检查均通过。
- **没验证到的部分**:未使用生产账号登录后在真实浏览器以 1366×768 和窄窗口人工截图验收;
布局复用已经支持换行的公共工具条,模板结构和键盘标签顺序已由代码与测试核对。
## 相关提交
- `c39f5a7` 增加蝦皮店铺图片筛选
- `0ad44c2` 归档任务 #150,也是本次生产部署基线