一种解决促销随机赠送商品时库存不足的思路
2019-04-04 本文已影响0人
Codmowa
前提: 赠品是个列表, 每个赠品又单独的库存属性.
如果直接使用 随机数+下标 取到商品,当赠品较多,且库存不够的赠品也多时.会有大概率重复性取到库存不足的商品.
借鉴思路
从一套扑克牌中随机抽一张,与从洗牌之后的扑克中按顺序抽 都是随机
解决办法
直接对赠品列表做一个洗牌操作
然后遍历赠品列表
遇到库存不足的赠品 continue, 可以用的 扣除库存之后 break
伪代码
shuffle(sku_list)
for sku in sku_list:
if sku.stock != condition:
continue
else:
do someting
break