我试图围绕排行榜的概念设计API后端(针对移动应用)。
一些要求:
如果您是第一次在24小时内看到操作A,则向用户提供10分
如果行动B发生,则给予用户10分,但如果您每周看到行动B超过10次,则不给予积分
必须记录以前的操作,以便将其报告给移动应用
计算积分,排行榜得分和报告(在给定的时间范围内)
我调查了merit,但我不明白模型是否可以有多个点规则文件(例如:userA属于appA所以规则B不适用于他)以及是否&# 39;每个动作的痕迹或只是当前的分数。
简而言之:是否应该支持所有这些?如果没有,你有什么建议?
答案 0 :(得分:0)
Merit并不支持所有开箱即用的功能,但提供足够的基础设施来解决所有问题,并提供一些额外的代码。
后端应该是多应用程序:app1应该有一些规则,app2可以有另一套规则
您是否希望后端成为所有移动应用的单一应用程序计算声誉?如果是这样,移动应用程序的命名空间路由将解决此问题。例如,/app1/purchased
和/app2/won
可以映射到不同的操作,并遵循该约定,确保每个应用都有自己的一套规则。
必须记录以前的操作,以便将其报告给移动应用
有一个merit_activity_logs
表,其中包含发生的每个操作的跟踪。通过它,您可以构建一些逻辑,以便您的移动应用程序向用户显示其先前的活动。
计算点数,排行榜得分和报告(在给定的时间范围内)
计算点开箱即用,保留每次更改的历史记录。以前有Merit::Badge.last_granted
和Merit::Score.top_scored
,但我删除了,因为它是特定于应用的,需要太多配置。查看查询的方式可能对您有用:
你提到的其他功能都有开箱即用的优点。