工作中接触到了商品砍价业务,也查询了一些资料了解砍价算法或者逻辑。公司用到的砍价算法是公司开发人员自己写的,其实原理都是大同小异。
- 砍价逻辑
用户发起砍价,然后分享给其他人让其帮砍,其他用户帮砍前提是已注册平台账号或者微信授权登录(其实这也无形之中增加了会员数),已帮砍的用户不能再次帮砍,发起砍价的用户自己不能帮自己砍。
说明:
1⃣️用户每天的发起砍价次数和帮砍次数是有限制的,这样是防止羊毛党撸得太厉害;可以给用户设置次数并做缓存,在每天凌晨12点重新分配次数
2⃣️作为砍价活动的商品和普通售卖的商品是有区别的,不是简单在goods表中加一个商品活动类型字段标识一下那么简单,需要其他数据表来进行约束
3⃣️帮砍存在并发,在价格的计算上要考虑并发
帮砍用户的砍价金额分两种情况:新用户金额是随机的(小于当前商品价格),老用户金额是固定的(如老用户固定只能帮砍1块钱)。
帮砍次数也就是砍几刀是固定的(具体怎么确定砍几刀这个临界值我也不知道),允许在这几刀里将价格砍至0元,当砍至0元时这件商品的砍价活动就结束,发起者就可以支付下单。
这里逻辑里我认为难点是帮砍随机金额的获得。我们公司用的方式如下:
随机金额 = 当前金额 ÷(总共的刀数-已经帮砍刀数)× 系数
- 当前金额:商品已经砍到了多少钱了,如¥49.00的砍了3刀砍成了¥