关于当月积分在下一年当月月末清零问题
规则
积分可累积,不论通过何种方式获得的积分,自发放之日起生效,有效期至下一年当月的月末,每月1日更新兑换积分。
数据库
id | user_id | number | remark | created_at |
---|---|---|---|---|
1 | 1 | 100 | 返利 | 2020-01-05 09:23:17 |
2 | 1 | 300 | 返利 | 2020-02-05 09:13:17 |
3 | 1 | -350 | 支付 | 2020-02-05 09:13:17 |
问题
用户积分是根据上面的表number的总和作为用户积分,我部署了一个定时器在每月的月初清除上一年上一个月月末的积分,并往数据库中插入一条数量为负数的记录。问题在于我如何得到这个时候需要清除多少积分?因为存在积分在这个月的其他月份被使用的情况。
产生积分的时候计算出积分过期的那一天,就行了。
积分增加的时候,记录当月的积分余额
积分减少的时候(使用积分)优先去操作最老的积分
1号记录上个月的积分余额
1号清理一年前上个月的积分(如有)
没看懂..
加个有效期
消耗积分的时候,在增加积分的记录上(倒序)打标识
你的原始数据一定要详细啊 用了多少 用在哪了 啥时候没得 是因为到期没得 还是使用没得 不然以后会麻烦的 原始数据 需要详细 不能直接删除吧
2个 字段 今年积分字段 明年积分字段 今年的积分用完就去用明年的积分 清空的时候清空今年的积分就可以了 上面的方法都太复杂了
以楼主给出表结构 如积分以有效期靠前的先消费 则
提个思路, 积分表加个字段: 可用积分, 每次扣积分的时候从最老的记录开始扣可用积分
加个已使用积分字段,在积分使用时从最早的开始扣除,在加个过期时间字段 到时候 过期的时候不论用没用都直接清除,这样也不会影响后面的积分