# 分页与分类唯一性校验推进

## 本轮完成

### 分类唯一性校验
- 商家后台商品分类：按 `merchant_id + slug` 做唯一性校验
- 总台管理商品分类：同样按商家维度校验 `slug` 唯一
- 已补充更友好的中文报错文案
- 分类编辑时也支持修改 slug，并保持唯一性约束

### 分页接入
已将以下列表切为分页（每页 10 条）：
- 商家商品列表
- 总台商品列表
- 商家分类列表
- 总台分类列表
- 商家用户列表

### 分页缓存 key 调整
缓存 key 已按页码区分，例如：
- `merchant:{merchantId}:products:list:page:{page}`
- `platform:products:list:page:{page}`
- `merchant:{merchantId}:categories:list:page:{page}`
- `platform:categories:list:page:{page}`
- `merchant:{merchantId}:users:list:page:{page}`

### 缓存失效策略同步升级
当商品 / 分类发生变更时，当前会尝试清理前 5 页的分页缓存，并同步清理相关统计缓存。

## 当前意义
- 列表页开始具备面向真实数据规模扩展的能力
- 分类 slug 不再容易出现同商家冲突
- Redis 缓存与分页结构已开始联动，而不是停留在单页列表阶段

## 下一步建议
1. 继续给订单列表和站点列表补分页
2. 给分类 / 商品创建与更新操作增加表单错误提示展示
3. 配置页开始做编辑能力与缓存刷新
4. 后续将“清理前 5 页缓存”升级为更稳的版本号式 key 或集中失效策略
