成就係統實現(二)-功能分析
阿新 • • 發佈:2019-02-07
功能分析
1. 成就的業務流程
使用者的某些操作觸發成就->判斷使用者是否滿足達成成就條件->達成進行獎勵的傳送
成就係統的業務流程大概分為這三步,每一步都可以細分裡面的內部細節功能
1.1 操作觸發成就
按照成就型別 抽象出具體哪些事件可能會觸發
1.2 使用者達成成就
觸發的事件是否滿足成就的條件,可能某一個事件會觸發多個成就同時達成,或者某個成就完成了一部分,或者達成某個成就,成就一旦達成,就不會再被觸發
1.3 獎勵發放
目前獎勵比較單一,積分發放,並且有一個彈窗提示,不同的成就獎勵不一樣,需要做到可配置化
2. 11種成就分類
按照成就觸發的條件事件 進行分類 按照成就功能模組抽象出4種類型的事件,分別為:訂單事件 消費事件 積分事件 其它事件
每種事件 都對應幾種成就 成就只會被一種事件觸發
第11種成就比較複雜,達成成就是完成前面10種成就 ,因此 記錄第11種的進行狀態存在併發的情況,如何處理留到下一章架構設計再說明
3. 事件傳送
抽象出四種類型事件之後,需要考慮在原來業務系統中那幾種操作會產生髮送這種事件,這裡同樣也要考慮到成就達成的條件
4. 獎勵傳送
1.積分贈送
由於底層只用分散式鎖做了一個防止併發的處理,導致併發情況下可能會有積分增加失敗的情況,因此由上層業務方來處理併發,因此通過佇列的方式增加積分,同時增加一個重試的機制
2.彈窗展示
通過websocket的方式推送彈窗