走取购项目-订单的删除状态是否单独预留

走取购项目跟其他一般商城一样,对于订单的状态大致可以分为如下几个:
待付款 | 待发货 | 待收货 | 已完成 | 已取消 | 已关闭 | 已删除

在最初的设计中,我把‘已删除’状态跟订单的其他状态一起放入到一个字段(status)中存储。在前期看来好像是没什么问题,
并且该状态的应用场景也很简单,只是针对于前端用户手动删除自己认为可不用显示在订单列表的订单,当然用户发起的这个删除
操作是有前提的,比如某一个订单已经处于在不可逆的生命周期里面(待发货,待收货)是不允许删除的。

因此在符合特定的条件下,用户删除订单后,这张订单对于用户来说是不可见的,而对于后台系统来说,这个状态只是一个逻辑删除(状态标识),管理员仍旧可以查询到该订单,这个很好理解,一个正常的订单系统都应该完整的保存用户生成的每笔订单。

这是之前线上的订单删除逻辑,系统也稳定运行,直到有一天走取购运营人员核对财务账单后,爆出了一个问题!

Read More