你听说过任督二脉吗?像这样~
咳咳~今天不讲武功,讲电商平台设计的功夫~
背景当今的电商可不仅仅是B2C商城,接下来还会有O2O,往后可能还会有商超、奥莱、二手交易。。。且称之为业务模式~而每个业务模式下还会有预售、竞拍、拼团等不同组合的子模式。
可是我商城的商品列表页不想展示O2O的商品啊,商品列表的数据希望按一定规则相互隔离。其他模块,有的出于操作习惯的考虑不隔离,有的出于用户行为的考虑需要隔离。
各模块数据隔离需求如下
列表页
商详页
商品组
优惠券
活动
订单
...
原商城
隔离
隔离
隔离
暂时不隔离
暂时不隔离
隔离
O2O
隔离
隔离
隔离
暂时不隔离
暂时不隔离
隔离
各模块流程差异
新建商品
列表页
购物车
订单
...
原商城
店铺创建,门店设置库存
基于item建es文档
跨门店
状态流转走快递
O2O
门店创建(沿用原模型但弱化店铺的概念)
基于item建es文档
单个门店
状态流转走配送
于是我们就会面临不同的改造的场景。
场景1,新建商品就是新建商品啊!!!例如商品的新建保存,是基础服务,已经具备通用存储模型。为了支持新模式我还得改服务接口、发布二方包?咱可不可以这样?
商品服务
Integer bizMode = BizModeContext.getBizMode(); itemDO.setBizMode(bizMode); // ... itemDAO.save(itemDO);