订单领域设计及代码实践

00:33

比较复杂的点:SKU 可能是动态的。

可以卖实体商品,也可以卖虚拟商品,也可以卖租赁系统。

02:12

阿里订单系统:

04:19

在考虑订单领域之前,先考虑用户领域,因为订单是和用户关联的。

用户可能有多个归属,可能有私人账号,也可能有企业账号,企业账号有企业绑定的信息。

用户能力是和账号绑定的,订单同样存储的是账号 id。

09:06

一个订单最终由什么支付组成 -> PayItem。

11:44

订单设计时考虑哪些东西?

所有订单必须有个唯一标识,就是订单流水号。

账号 id 和账号类型设计用户体系。

订单类型,新购、续费。。。。。

支付详情,包含支付项、还包含支付前的虚拟资产。

待支付金额。

订单信息通过列表来存储,每一项 CodeValue 实际上是一个 KV 对。

配送中等状态不属于订单领域,属于履约领域,订单只关心支付状态。

20:21

订单的生命周期。

生命周期会记录操作类型

21:00

修订和审计功能仍然在开发中,期待。

21:12

为什么要写领域服务层,因为我们的业务场景千变万化,有可能在后台下了个单,也有可能在前台下了个单。

领域服务提供了一个约束,即你想要下单,必须传入指定的参数。

在没有产品的情况下,是可以把通用领域层写完的。

26:36

我们可以根据订单类型的不同创建不同的索引,如果系统量很大,一定要创建不同的索引。

27:23

订单事件监听。

可以通过监听事件来处理保存、生命周期、同步 ES。

库表接口:

包含 3 个表:

order_base、order_item、order_lifecycle