概念:系统中的每一个资源分配一个唯一标识。
举例:金币、钻石、道具、礼包、勋章、英雄、英雄碎片、活动积分、表情等。
中间层:处理资源增减请求。
红色要优于橙色。
红线逻辑,签到模块不关心奖励是怎么加上去的。
中间层实现了增减资源的操作。
资源表
| id | type | desc | ext… |
|---|---|---|---|
| 资源ID唯一标识 | 不同的类型 | 描述 | 一些扩展字段 |
签到表
| day | id | count |
|---|---|---|
| 第几天 | 资源ID | 数量 |
实现:兑换表:英雄、英雄碎片、兑换个数。把自动拆为碎片的逻辑放入中间层,签到模块不用关心。
实现:勋章表:道具、收集次数。成就表:勋章、收集次数。
增加道具时,对应计数+1。判断是否触发勋章获得的条件,如果达成,增加对应的勋章。
增加勋章时,对应计数+1。判断是否触发成就获得的条件,如果达成,增加对应的成就。
道具、勋章、成就,都资源化,无差别对待。根据资源表中的type,做不同逻辑。
不同的模块,可以复用这套逻辑。
实现:积分作为一种资源,分配一个ID,对接兑换模块。
兑换模块,先发起减请求,再发起加请求。