积分过期策略
策略:优先消耗上一年获取的积分,用户上一年获取的积分余额在本年度12月31号过期。例如:用户在2015年总共获取1000积分,在2016年12月31号这1000积分中还剩余100积分,那么这100积分就应该过期。
设计用户积分表:
available_points: 用户当前可用积分
current_year: 当前年份
points_current_year:今年获取的积分总数
points_last_year:去年获取的积分总数
获取积分:points_current_year=points_current_year+获取的积分,available_points=available_points+获取的积分
消耗积分:available_points=available_points-消耗的积分
积分过期:
- 如果available_points<=points_current_year,available_points不变,将points_current_year赋给points_last_year,将points_current_year置为0;
- 如果available_points>points_current_year,将points_current_year赋给available_points,将points_current_year赋给points_last_year,将points_current_year置为0;