要设计一套积分系统,求思路
需求概述
1、用户每次获得的积分有个过期时间,时长固定为1年,过期时间 = 当前获取积分的时间 + 1年;
2、消费的时候先从最先获得的积分开始消费;
3、退款的时候如果该积分已过期则不退;
例子
假设用户每天获取10个积分,现有100积分(其实是由10笔不同过期时间的10积分构成的),消费了79积分。此时会将前8笔流水打上已消费的标记,并生成一笔获得1积分的流水,剩余积分 = 1 + 10 + 10。如果后面用户退款,要考虑这79积分里有哪些已经过期的,如果过期则不退还积分。
求助
1、技术选型,用什么框架或数据库;
2、算法,更快得到结果;
3、注意事项,可能会存在哪些潜在问题;
感谢各位的回复与关注,已有想法,后续有进展会再向大伙求助分享,谢谢大家了~
最近刚好做了一套积分相关的, 可以考虑设计, 积分流水表, 冻结积分表, 可用积分表, 待入账积分表 积分流水只做真实的扣除和增加, 冻结和待入账都是临时状态, 可用积分上边记录获取时间, 到时候可以依据获取时间控制过期