Admin:精简蝦皮筛选并改为分类搜索 #213

Closed
opened 2026-08-13 11:32:56 +08:00 by ila · 3 comments
Owner

基本信息

  • 类型:需求
  • 父级大工单:#206
  • 所属 MVP / 版本:#207
  • 阶段:需求收敛

要解决什么

蝦皮页面同时展示店铺有无、图片有无、数据范围、业务店铺、店铺名称等多个筛选,采购员常用路径被次要条件挤占;店铺又已经确认只有一个业务含义。

做什么 / 不做什么

  • 做:移除“店铺”“图片”“数据范围”“业务店铺”“店铺名称”五个筛选控件。
  • 做:保留状态筛选;新增“分类”下拉框(商品 ID、商品名称、店铺名)、关键词输入框和搜索按钮。
  • 做:表格只保留一个“店铺”列,不再并列显示蝦皮店铺与业务店铺。
  • 做:管理员通过独立“回收站”按钮查看和恢复软删除商品;店铺管理的未登记数量可深链到未关联列表。
  • 不做:不移除软删除恢复能力,不删除 shop_id 关联,不改变采集与 PDD 关联流程。

怎么做

  • GET 参数统一为 search_field=goods_id|title|shop_name、q、status、page;内部保留 deleted=1 与 unlinked=1 作为回收站和店铺管理深链状态,不显示成筛选下拉框。
  • Repository 对 search_field 使用固定白名单分支和参数化查询:商品 ID 精确匹配,商品名称和店铺名使用转义后的包含搜索,禁止把请求值直接拼成列名。
  • 分类、关键词、状态和内部列表模式在分页、详情返回、删除、恢复及批量采集后完整保留;新搜索回到第 1 页。
  • 搜索无结果时明确提示当前分类和清除条件入口。
  • 更新模板、handler、service/repository 筛选对象、模块状态白名单、基线文档和回归测试。

验收标准

  • 页面不再显示五个已取消筛选控件
  • 分类下拉框仅有商品 ID、商品名称、店铺名
  • 三种分类分别只查询对应字段,SQL 使用参数绑定
  • 表格只显示一个店铺列
  • 状态与分类搜索可组合且分页总数一致
  • 删除后可通过管理员“回收站”恢复
  • 店铺管理可打开未登记商品列表并能清除该内部条件
  • 详情、翻页和批量写操作不会丢失当前搜索状态

怎么验证

从 admin/ 使用 Go 1.23.0 执行 go test ./... -count=1、go build ./...,并人工检查 1366×768 工具栏、回收站和空结果状态。

风险和回退

移除数据范围筛选不能让软删除数据失去恢复入口;内部 deleted/unlinked 参数�����接受固定值。旧查询参数不再由页面生成,并从模块状态白名单移除。

## 基本信息 - 类型:需求 - 父级大工单:#206 - 所属 MVP / 版本:#207 - 阶段:需求收敛 ## 要解决什么 蝦皮页面同时展示店铺有无、图片有无、数据范围、业务店铺、店铺名称等多个筛选,采购员常用路径被次要条件挤占;店铺又已经确认只有一个业务含义。 ## 做什么 / 不做什么 - 做:移除“店铺”“图片”“数据范围”“业务店铺”“店铺名称”五个筛选控件。 - 做:保留状态筛选;新增“分类”下拉框(商品 ID、商品名称、店铺名)、关键词输入框和搜索按钮。 - 做:表格只保留一个“店铺”列,不再并列显示蝦皮店铺与业务店铺。 - 做:管理员通过独立“回收站”按钮查看和恢复软删除商品;店铺管理的未登记数量可深链到未关联列表。 - 不做:不移除软删除恢复能力,不删除 shop_id 关联,不改变采集与 PDD 关联流程。 ## 怎么做 - GET 参数统一为 search_field=goods_id|title|shop_name、q、status、page;内部保留 deleted=1 与 unlinked=1 作为回收站和店铺管理深链状态,不显示成筛选下拉框。 - Repository 对 search_field 使用固定白名单分支和参数化查询:商品 ID 精确匹配,商品名称和店铺名使用转义后的包含搜索,禁止把请求值直接拼成列名。 - 分类、关键词、状态和内部列表模式在分页、详情返回、删除、恢复及批量采集后完整保留;新搜索回到第 1 页。 - 搜索无结果时明确提示当前分类和清除条件入口。 - 更新模板、handler、service/repository 筛选对象、模块状态白名单、基线文档和回归测试。 ## 验收标准 - [x] 页面不再显示五个已取消筛选控件 - [x] 分类下拉框仅有商品 ID、商品名称、店铺名 - [x] 三种分类分别只查询对应字段,SQL 使用参数绑定 - [x] 表格只显示一个店铺列 - [x] 状态与分类搜索可组合且分页总数一致 - [x] 删除后可通过管理员“回收站”恢复 - [x] 店铺管理可打开未登记商品列表并能清除该内部条件 - [x] 详情、翻页和批量写操作不会丢失当前搜索状态 ## 怎么验证 从 admin/ 使用 Go 1.23.0 执行 go test ./... -count=1、go build ./...,并人工检查 1366×768 工具栏、回收站和空结果状态。 ## 风险和回退 移除数据范围筛选不能让软删除数据失去恢复入口;内部 deleted/unlinked 参数�����接受固定值。旧查询参数不再由页面生成,并从模块状态白名单移除。
Author
Owner

????(2026-08-13):????????/??/????/????/??????;????,????(?? ID/????/???)+???????? ID ????,????????????,????????????????????;???????????????????;???????????? unlinked=1 ??????????????????????????????????Go 1.23.0 ???????? vet ????

????(2026-08-13):????????/??/????/????/??????;????,????(?? ID/????/???)+???????? ID ????,????????????,????????????????????;???????????????????;???????????? unlinked=1 ??????????????????????????????????Go 1.23.0 ???????? vet ????
Author
Owner

状态:待验收。实现提交 313e9f9;归档提交 121b12a;归档 docs/task/213-精简蝦皮筛选并改为分类搜索.md。验收清单已按自动化测试和模板/路由检查更新。

状态:待验收。实现提交 313e9f9;归档提交 121b12a;归档 docs/task/213-精简蝦皮筛选并改为分类搜索.md。验收清单已按自动化测试和模板/路由检查更新。
Author
Owner

用户于 2026-08-13 明确验收通过。工单已完成归档,现关闭工单。

用户于 2026-08-13 明确验收通过。工单已完成归档,现关闭工单。
ila closed this issue 2026-08-13 15:56:45 +08:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: chengma/cmautobuy#213