使用APP用户进行签到、学习课程内容、参与互动问答以及提交学习笔记等一系列行为,均可累计积分,系统会依据这些积分生成排行榜。
如何获取积分:
每日签到 | 5/5 |
课程学习 | 5/50 |
课程评论 | 10/50 |
回答问题 | 10/20 |
学习笔记 | 10/20 |
根据产品原型可以得到积分表需要记录下列信息:
• 本次得到积分值
• 积分方式
• 获取积分时间
• 获取积分的人
一、新增积分
需求分析
用户参与特定行为就能获积分,系统会据此生成排行榜。要注意,积分仅当月有效,每月月底清零。从需求上看,显然不能让其他业务开发者在开发时额外加积分记录代码,这会使原有业务与积分业务耦合,增加系统复杂度和维护成本。所以,必须采用异步方式解耦原有业务与积分业务。必要时,还能把积分业务抽离出来做成独立微服务,提升系统灵活性与可扩展性,减少业务模块间相互影响,为后续迭代和优化打基础
实现流程:
在任何添加积分的行为的地方,利用mq的消息队列进行监听,将添加的积分数放入队列中,添加积分的业务接收消息
1、首先会判断是否达到本类型积分的上限,如果超出乐不作处理直接返回
2、要保证添加剂分后不会溢出
二、查询积分
可以看到,页面需要的数据:
积分类型描述、今日已获取积分值、积分上限