有一个需求,用户通过链接分享自己的积分,分享时会扣除此用户的积分数,积分数是固定的,链接有效期是固定时间,不超时时其他人可以正常打开链接领取,超时以后点击会提示超时,已过期。并且不管有没有用户去点击,超时时间是固定的,比如1个小时,并且到1个小时后分享时扣除的用户积分要返还。
和微信红包超时退回是一样的场景。
现在能用到的只有php、mysql、redis、Linux服务器,请问大神们怎样才能做一个和微信红包超时退回类似的功能呢?
感谢!
有一个需求,用户通过链接分享自己的积分,分享时会扣除此用户的积分数,积分数是固定的,链接有效期是固定时间,不超时时其他人可以正常打开链接领取,超时以后点击会提示超时,已过期。并且不管有没有用户去点击,超时时间是固定的,比如1个小时,并且到1个小时后分享时扣除的用户积分要返还。
和微信红包超时退回是一样的场景。
现在能用到的只有php、mysql、redis、Linux服务器,请问大神们怎样才能做一个和微信红包超时退回类似的功能呢?
感谢!
超时时间是固定的,你创建的时候给个token,token对应数据库里面某个表里的字段,字段对应的数据有超时时间,用户领取的时候你通过token判断当前时间是否大于超时时间,是的话,就提示用户不可以领取
另外后台弄一个定时任务,判断是否已经超时,是的话,就把积分退还给用户!
引用来自“首席雅诗兰黛”的评论
超时时间是固定的,你创建的时候给个token,token对应数据库里面某个表里的字段,字段对应的数据有超时时间,用户领取的时候你通过token判断当前时间是否大于超时时间,是的话,就提示用户不可以领取
另外后台弄一个定时任务,判断是否已经超时,是的话,就把积分退还给用户!
积分都没发放呢, 何来的退还?
讲点逻辑思维行不行.
引用来自“太黑的忧郁情怀”的评论
你这个分享逻辑就有问题 应该是限时分享,然后有人领取就直接从账户内扣除积分,领多少扣多少,或者可以设个分享上限,然后设个超时时间,时间过了就不能继续领取 也就省了一步积分回退,还容易实现一些其实大家说的定时期思路肯定如此,只是解决方案不是很好。
1、添加一个定时器,按时去执行容器内的数据(积分操作单流水号,过期时间)
2、在每次发放积分是向容器内推送一条监控数据,积分领取删除容器序列,未领取将触发定时器事件