本算法的目的是计算出用户当前的可用积分。
规则:
积分的有效期:到次年年底
积分的使用规则:优先使用时间上早获得的积分
积分类型有:冻结(一般冻结期7天)、可用(由冻结积分而来)、已使用、取消(在使用积分购物取消的情况下,只状态只为记录使用情况)
每次获得或使用积分后,皆插入一条记录
可用积分的算法
available:可用积分
given:已发放的积分
freeze:冻结的积分
invalid:过期积分
used:已使用积分
tmp = used - invalid
如果 tmp>0 则 available = given - freeze - tmp
如果tmp<=0 则 available = given - freeze
即可用积分在已发放积分减去冻结积分的基本上,如果过期的积分比已使用的积分多,则意味着过期的积分中已够已使用的积分使用,此处正好体现出时间上较早的积分优先使用;如果过期的积分比已使用的积分少,那么需要在现有的积分上再扣去这积分少的积分,剩下为可用积分。