积分系统逐字稿

一.需求介绍

  积分功能在我们大部分的系统中都可以使用,积分功能的存在,是为了激励用户更多的在网站上进行交互行为,以此来提高网站的访问量。

        同时对于积分的设计我们一般要有一套规则,比如每日签到,或者每日点赞一定数量等等这些行为我们都可以为用户添加积分。同时当积分达到一定的数量时,我们可以为用户添加一个独特的称号作为鼓励,并且可以让用户消耗积分换取礼品,以这种奖品的方式对用户获取积分进行一个吸引,从而达到我们增加网站访问量这一目的,当然我们也应该对我们用户的每日获取积分数量做一个限制,避免有人恶意刷取积分。

二.数据库设计

        根据我们的分析可以确定,数据库需要的字段有:本次得到的积分值、获取积分的方式、获取积分的时间、获取积分的人。

需要设计如下字段:

  • 本次得到积分值

  • 积分方式

  • 获取积分时间

  • 获取积分的人

三.具体实现

积分规则


    积分可通过多个业务功能获得,每个业务获取积分都有不同的规则,并且每一种业务都有着独特的业务,我们显然不可以将积分功能与其他业务放到一起耦合,因此我们要采用异步的方式,将原有业务与积分业务分离,进行解耦。具体实现可以参考下图:

        在新增时,我们要注意是否存在积分上限,当存在积分上限,我们要先查询今日获取的积分,查看是否超出上限,或没有,用当前积分加上本次获取的积分,判断是否超出上限,当没有超出上限时,直接保存,若超出上限,则保存上线数减去当前积分数量的积分,具体实现可以参考下图

3、发送消息

接下来,我们就可以改造之前的业务,在所有可以获取积分的业务中发送MQ消息了。

包括下列地方:

  • 签到

  • 完成一小节的学习(视频、考试均可)

  • 提问回答

  • 写笔记

  • 笔记被采集

五、查询积分

在个人中心,用户可以查看当天各种不同类型的已获得的积分和积分上限:

可以看到,页面需要的数据:

  • 积分类型描述

  • 今日已获取积分值

  • 积分上限

根据需求,从数据库中查出对应的数据返回给前端即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值