前言:
纯属意淫,希望撸过的大神分享正确思路,前几天吃饿了么吃撑了,写个练手的项目也用到了红包模块。没有查任何资料,纯属自我意淫。要做到饿了么那种形式。废话不多说,下订单,订单完成可以来一发红包。。。
正文:
这里的coupon,退单后发现后面的用户已经没法领取了,而且不存在什么鸟评论,一个红包有10人可领取,生成链接生存期,子包有生存期。
这里我意淫用Redis来搓,现在Mysql是这个样子的:
在第一次系统运行时,需要以expiry为过滤字段往redis里导入,后期的验证码会被过滤。
导入形式如:
Coupon#coupon#algorithm#live#prerequisite#expiry#mumber 设置【expiry】: expiry+live
当一个用户定了外卖创建,他自己获得了一个红包(可以根据这个货花了多少钱来安排获得的红包而后续产生的优惠额度会根据这个红包来限制)
如果不想这样干,表就别这样设计了…自己意淫吧。 stamp 是失效时间戳 通过live字段计算
【key】 createCoupon#orderId#coupon#stamp 【value】 number
现在这个屌丝发送一个红包链接给他的饥饿舍友,舍友点击了这个链接。
具体操作 redis Lua 脚本操作大法,字符串拼接大法。注意下面这个coupon是随机出来的stamp计算的不是创建红包人的那个stamp。
myCoupon#userId#orderId#algorithm#prerequisite#stamp
以上,设定逻辑:我们的myCoupon是随机产生的coupon,并且附带了coupon的属性,而且受到createCoupon的红包个数限制。createCoupon有自身的生存期,且可以继续向上找Coupon验证expiry。这样即使活动过了也能让优惠券过期。当然了,不同的规则不同的意淫方法,而且貌似添加个评论也不是个大问题。但是继续增加关联性的话估计Lua脚本要Redis炸。一个红包系统,这样设计就可以了。这就是我意淫的外卖APP的红包实现,希望大神来指教。。(PS:我不知道这样设计会不会炸,但是全部在redis中能完成。)
后记:
之所以没上代码,是因为,我是Lua的幼儿园的学生,我倒是自己实现了(代码乱的一B,用redis eval),——我就不出来误人子弟了。。