抖店商品状态机设计

状态枚举
商品状态使用三个字段控制,状态枚举如下
字段
status
check_status
draft_status
含义
在线状态
审核状态
草稿状态
-2
彻底删除,不能恢复
/
/
-1
系统异常,废弃商品
/
/
0
在线
/
无草稿
1
下线
未提审
未提审
2
删除,可以恢复
待审核
待审核
3
/
审核通过
审核通过
4
/
审核未通过
审核未通过
5
/
封禁
/
6
/
/
/
7
/
审核通过,待上架
/
常用判断
  • 草稿箱:status=0 and check_status=1 and draft_status=1或0
  • 在售:status=0&&check_status=3
  • 审核中:status=0 and check_status=2 and draft_status=2
  • 新版本审核中:status=0 and check_status=3 and draft_status=2
  • 封禁中:status=1 and check_status=5 and draft_status=0
  • 上架的商品被下架放入仓库中:status=1 and check_status=1 and draft_status=0
  • 延迟上架,放入仓库中(start_sale_type=1):status=1 and check_status=7 and draft_status=0
  • 删除:status=2 and check_status=1 and draft_status=0
补充说明
因为历史原因,在线(status=0),在这里只是一个可用状态。只有审核通过才能售卖。
  1. 上架、下架、删除、恢复可由商家操作,是日常管理商品行为
  1. 上架、下架可由系统操作,如:解除品牌绑定关系,下架关联的商品
  1. 封禁、解封是系统和运营行为,如:好评率过低系统自动封禁商品、商品违规被封禁
  1. 商品售卖中,编辑商品时会保存信息到草稿箱,商家提交审核;审核通过后将草稿信息应用到线上,用户可见;审核驳回不影响线上数据,商家可以继续对草稿数据进行修改
  1. 无论商品进行了上架,恢复,解封等操作,都需要经过商家提审,审核通过后才可以售卖。所有商品可售的必要条件是 通过审核。
  1. 为什么商品状态要搞3个字段?status:商品状态check_status: 审核状态 与status一起决定了商品是否可售draft_status: 草稿状态 实际上是草稿版本的状态,比如草稿审核通过或拒绝,不影响线上一个简单的场景,上架中的商品,需要编辑提审,不能动status、也不能动check_status,否则会导致线上无法售卖。所以需要draft_status辅助。
Loading...
目录
文章列表
王小扬博客
产品
Think
Git
软件开发
计算机网络
CI
DB
设计
缓存
Docker
Node
操作系统
Java
大前端
Nestjs
其他
PHP