vip开通以及续费升级!
现在有一个项目,需求实在太蛋疼了!
目前的vip类型有 vip1到vip5,每个类型的价格都是不一样的!
后端有一个数据表是存储vip类型的 vip_type
里面有vip类型的价格(money) 以及等级(level)
现在用户购买之后在开通表中vip_open写入一条记录!
vip_open表字段:
user_id --开通用户id
vip_id -- 开通的vip类型id
open_time -- 开通时间 (时间戳)
open_money --开通价格
open_length -- 开通时长 (月份计算)
end_time --计算后的到期时间 (时间戳)
之后用户续费的时候直接将end_time 叠加就行了!
但是用户升级的时候就蛋疼了!!!
参考了大型的 比如百度网盘 qq会员
他们是在升级之后将之前的暂时禁用,之后再写入升级之后的vip数据,等到升级后的过期后就启用之前禁用的!
这种方式用于我的需求感觉不太好!
请大神指点一下 有没有其他办法 最好是直接升级!!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
补差价好了,假设一级vip一个月10元,二级vip20元,用户想从一级vip升级到二级vip,那么如果当前一级vip还有20天到期,按30天一个月来算,那么差价就是(20-10)*(20/30)=6.66元
直接升级的问题是就不好再降级了,我认为应该新增一条数据,也就是多条共存:
首先你有一条数据是【vip1,2019-05-30,有效】
然后他选择升级到vip3,那么就新增一条数据【vip3,2019-05-30,有效】
如果用户升级vip5,但是只升级3个月,那么就新增【vip5,2018-12-31,有效】
这样就存在了3条vip数据。
1、如何判定用户当前的vip等级呢
多条中取最高的一条
2、到期了如何降级呢
只需要每天按日期把到期的刷成无效即可
首先、直接抄大厂的逻辑并非“脑残”,但也并非正常。一切看你们具体的需求。看到你的问题后,我个人认为其实你们只是缺一张记录表。用户记录用户升级、到期、降级的等等对vip表的操作。而升级的计算方式就按照你说的end_time+就可以。只需期间记录下就可以了。“他们”的做法实际也是为了记录用户的所有操作把。