积分系统设计

背景

  • 现代用户对个性化服务的需求越来越高。积分功能可以为用户提供一种个性化的体验。通过积累和使用积分,用户可以感受到自己在平台上的投入得到了回报。例如,在一个会员制的服务平台中,高级会员可以通过积分兑换专属的服务或产品,这会让用户觉得自己的会员身份更有价值。
  • 同时,积分功能还可以增加用户与平台之间的互动。用户会更关注自己的积分余额,会主动去了解如何获取更多积分和可以用积分兑换什么东西。这种互动有助于提高用户在平台上的活跃度,有利于增加网站的访问量。

 积分规则示例

 

1. 签到规则
    签到1天给1分
    连续7天额外奖励10分
    连续14天额外奖励20分  
    连续28天额外奖励40分
    每月签到进度当月第一天重置

2. 学习规则
    每学习一小节积分+10,每天获得上限50分

3. 交互规则(有效交互数据参与积分规则,无效数据会被删除)
    写评价,积分+10                 每日获得上限为50分
    写问答,积分+5                  每日获得上限为20分
    写笔记,积分+3,每次被采集+2     每日获得上限为20分

 需求介绍

用户签到、学习、参与互动问答、提交学习笔记等行为都可以产生积分,并基于积分形成排行榜。积分当月有效,月底清零。 由积分规则可知,获取积分的行为多种多样,而且每一种行为都有自己的独立业务。而这些行为产生的时候需要保存一条积分明细到数据库。 我们显然不能要求其它业务的开发者在开发时帮我们新增一条积分记录,这样会导致原有业务与积分业务耦合。 因此必须采用异步方式,将原有业务与积分业务解耦。如果有必要,甚至可以将积分业务抽离,作为独立微服务。

数据表设计

根据产品原型可以得到积分表需要记录下列信息:

• 本次得到积分值

• 积分方式

• 获取积分时间

• 获取积分的人

业务实现

获取积分的行为多种多样,而且每一种行为都有自己的独立业务。而这些行为产生的时候需要保存一条积分明细到数据库。我们显然不能要求其它业务的开发者在开发时帮我们新增一条积分记录,这样会导致原有业务与积分业务耦合。因此必须采用异步方式,将原有业务与积分业务解耦。如果有必要,甚至可以将积分业务抽离,作为独立微服务。要实现服务之间的解耦,可以使用MQ,实现流程如下:

我们只需要在所有可以获得积分的业务中发送消息到MQ,然后在积分系统服务中来监听MQ中的消息,将监听到的消息保存到积分记录表中即可。如果每日可获得积分数量有限制,那么在保存积分记录之前可以先进行查询,然后判断积分是否达到阈值,如果没有,则正常保存,如果达到阈值,则不保存记录,流程如下图所示:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值