电商平台基于销售属性生成SKU的设计

886 阅读1分钟

基于销售属性生成SKU

电商系统中商品系统最重要的功能就是SKU的创建以及维护,所以一旦出错就会影响电商后面的流程。

销售属性后管效果.png

image.png

业务总流程图
image.png

主要的设计思考是全排列,

1、新增、删除、修改属性,skuchange方法进行重新全部组合

改成以属性组名称和属性值作为判断,通过map结构存储,键值为属性组名称和属性名称组合成为唯一attrValId

全排列组合,每一个组合与sku map结构对比,包含(新增维度)被包含(删除维度,删除属性值)命中(新增属性,编辑属性值)

生成一个唯一标识的attrValId

同一维度属性值不能重复

属性组名称不能重复

2、删掉的销售属性不能够被重新生成出来

image.png
1、记录上一次的销售属性值,上一次销售属性(笛卡尔积)组合之后的属性值唯一标识attrValId组合

2、上一次的skus,上一次的sku列表map结构生成

3、map.keys()与销售属性全排列组合对比,对比差异(全等)取差集

4、当前的销售属性进行笛卡尔积,遍历

5、差集不生成sku

image.png

3、勾选属性值、取消勾选属性值

判断是不是取消勾选操作,取消勾选之后再次勾选

取消勾选:cancelSkusMap添加当前map键为id,值为上一次的skusMap包含当前id的skus信息数组

取消勾选之后再次勾选:cancelSkusMap中是否有数据,并且当前不是只有一条数据被checked(最后一条数据不能用取消勾选的数据,要保留skuId原则)

image.png