前後端交互流程圖 === 前後端交互,有三個服務 1. 賠率調整、賽事狀態調整(Config調整)的服務,走gRPC 2. 抓取資料的WebSocket, Input為畫面上方有的filter, Output為所有畫面需要顯示的資料 後端推送的內容更新,請參照下方"內容更新的情境" 3. 抓取資料的服務,走gRPC,Input/Output與WS的版本相同 避免request時間差問題,發起更改config的請求時,需加上時間戳 資料訂閱 --- ```sequence User->FrontEnd: 打開操盤畫面 FrontEnd->User: 顯示讀取中 FrontEnd->Backend: 建立WebSocket連線,option為default值 Backend->FrontEnd: FrontEnd->User: 顯示資料 FrontEnd->FrontEnd: 建立WebSocket連線 - 失敗 retry FrontEnd->FrontEnd: 建立WebSocket連線 - 失敗 retry FrontEnd->User: 顯示錯誤訊息 Backend->FrontEnd: inplay賽事資料更新,主動推送給前端 FrontEnd->User: 顯示最新資料 User->FrontEnd: 點擊早盤按鈕 FrontEnd->User: 顯示讀取中 FrontEnd->Backend: 更新WebSocket中option為早盤賽事 Backend->FrontEnd: FrontEnd->User: 顯示資料 Backend->FrontEnd: 早盤賽事資料更新,主動推送給前端 FrontEnd->User: 顯示最新資料 User->FrontEnd: 選擇聯賽,點擊Confirm按鈕 FrontEnd->Backend: 更新WebSocket中option Backend->FrontEnd: FrontEnd->User: 顯示資料 Backend->FrontEnd: 資料更新,主動推送給前端 FrontEnd->User: 顯示最新資料 ``` ### 資料更新的情境(主動推送給前端) - 賽事列表更新,包括增加、刪除賽事 - 賽事資料更新,包括進球數、紅牌、上半場完賽、下半場開始、全場結束 - 玩法狀態更新,包括賠率、暫停、關盤、調控數字、主副盤口 - 賽事的狀態更新,包括全部暫停、跟隨市場、全部關閉 - 賽事事件更新,依據賽事的事件發生,系統會自動相對應的動作 EX: 場上進球時,系統會自動進入“全部暫停”的狀態 *賽事的事件清單,RTI之後會提供,相應的動作會再確認後提供 調整賠率 --- ```sequence User->FrontEnd: 點擊某個賠率更動後,按勾勾送出 FrontEnd->User: 顯示賠率更改中 FrontEnd->Backend: 發起gRPC request,送出調賠請求 Backend->Backend: 調賠規則校驗(成功) Backend->Backend: 更新Config到DB(成功) Backend->Backend: 與RTI對接(成功) Backend->FrontEnd: 返回結果(成功) FrontEnd->User: 提示賠率更改成功 Backend->FrontEnd: 資料更新,主動推送給前端 FrontEnd->User: 顯示最新資料 User->FrontEnd: 點擊某個賠率更動後,按勾勾送出 FrontEnd->User: 顯示賠率更改中 FrontEnd->Backend: 發起gRPC request,送出調賠請求 Backend->Backend: 調賠規則校驗(成功) Backend->Backend: 更新Config到DB(失敗) Backend->FrontEnd: 返回結果(失敗) FrontEnd->User: 提示賠率更改失敗的原因 FrontEnd->Backend: 發起gRPC request,送出調賠請求 Backend->Backend: 調賠規則校驗(失敗) Backend->FrontEnd: 返回結果(失敗) FrontEnd->User: 提示賠率更改失敗的原因 ``` ### 調賠規則 #### AH、OU 調整不可超過 -0.09~0.09 此區間,上下盤連動規則請參考[這裡](https://cloudlytics-data.atlassian.net/wiki/spaces/CLOUDLYTIC/pages/2040037413) #### 1X2 只能調整其中一個盤的數字,其他兩個盤的數字需連動,[規則在此](https://cloudlytics-data.atlassian.net/wiki/spaces/CLOUDLYTIC/pages/2040037413) 因賠率有可能較大,因此有調賠的級距表 | 賠率 | 單次調整 | 調整範圍 | | --- | --- | --- | | 0 - 10 | 0.01 | -0.09 ~ 0.09 | | 10 - 50 | 0.1 | -0.9 ~ 0.9 | | 50 - 100 | 0.5 | -4.5 ~ 4.5 | | 100 - | 1 | -9 ~ 9 |