积分系统对外需要发放积分、消耗积分、回退积分、回收积分、查询用户积分记录,以及锁定积分这5个接口。
回退积分场景:用户积分兑换某件商品后,但由于商品缺货等原因导致兑换失败,需要将用户消耗的积分,重新退给用户。
回收积分场景:用户在参与下单某商品送积分后,对某商品进行退货操作,需要将赠送用户的积分收回。
主要就是发放积分、消耗积分和查询用户积分记录,这3个积分接口为核心接口,另外3个回退积分、回收积分、锁定积分的使用频率会较低一些。
因为通过发放积分和消耗积分这两个接口实现对用户积分账户余额的增减就能实现回滚积分和回收积分的效果。
为什么还要把这些接口单独拎出来呢?其实主要是为了精细化运营,在数据统计的时候可以拆分的每一个细化场景来分析用户的活跃情况和使用频次。
通常我们在做积分兑换商品的时候,活动商品库存是有限的。为了确定兑换某商品,我们通常会先扣减所需积分然后在进行占该商品库存。当扣减库存失败,就会启用回退积分,将兑换时候扣减的积分,还给用户。
在这个过程里,用户的账户积分增加减少积分记录会影响我们统计的时候准确性。
所以可以增加一个锁定积分积分,单独将使用积分消耗的行为拆分成先锁定积分,再将这部分积分消耗掉。业务方总是会背很多KPI,为了KPI也会提出很多千奇百怪的正常需求。
遇到一个这样的需求场景,某良零食供应商联合搞活动,使用到了积分,但是供应商希望“我发的积分只能用到我的店铺”!
这种情况,一般建议再用积分系统的管理端再给供应商新创建一个积分,叫“猪肉条”、“牛肉干”、“辣条”……都行。
当时平台积分还没有比较成熟,需要借助供应商的商品来提升平台积分的价值。综合衡量了一下,大宝灵机一动,既然积分可以锁定,那就给这部分锁定的积分一把唯一的钥匙(Key)吧~