# W1系統開發項目自我檢查表 ###### tags: `W1` ## 1. 建立使用者 Create User - [ ] 1.1 檢查帳號重複 - [ ] a. 使用REDIS快取10分鐘 - [ ] b. REDIS資料遺失可正確取得DB資料 - [ ] c. 帳號已建立過需回覆 http status 200 , code:0 - [ ] d. 其他失敗 http error code 400.403.500.501 , code不等於0 - [ ] 1.2 帳號建立 - [ ] a. 須同步建立platform_user - [ ] b. 確認新建wallet credit = 0 - [ ] c. 確認新建wallet lcok_credit = 0 - [ ] d. 確認不可重複建立相同 club_id (包含t_wallet與 t_platform_user) - [ ] e. wallet與platform_user需在同一個transaction commit ,任一失敗rollback - [ ] f. 帳號建立成功需回覆 http status 200 , code:0 - [ ] g. 其他失敗 http error code 400.403.500.501 , code不等於0 ## 2. H1開分 H1WalletTransferFund in - [ ] 2.1 檢查User帳號 - [ ] a. 使用REDIS快取10分鐘 - [ ] b. 拒絕不存在使用者開分 code 1012 - [ ] 2.2 檢查開分號 - [ ] a. User 有未完成開分號要回覆開分失敗 code 4015 - [ ] b. 不可接受相同的Session_id code 4002 - [ ] c. 不可接受開分金額小於0 - [ ] d. 不可接受action錯誤(in,out) 不分大小寫 - [ ] 2.3 餘額異動 - [ ] a. 確認交易紀錄寫入成功 - [ ] b. 確認target , source 正確 - [ ] c. 確認before_credit, amount , after_credit 正確 - [ ] d. 確認user wallet credit, lock_credit 正確 - [ ] e. 執行過程中斷確認餘額與交易紀錄都有rollback - [ ] 2.4 H1回復結果 - [ ] a. 開分成功需回覆 http status 200 , code:0 - [ ] b. 其他失敗 http error code 400.403.500.501 , - [ ] c. H1接收到http code=200 error code = 0 時才可以確認扣款 - [ ] d. H1接收到http code=200 error code != 0 可以直接退款或是重新查詢 - [ ] e. H1接收到http code!=200 要重新查詢 - [ ] f. H1重新查詢要確認不能查到未接收到回應的開分請求 ## 3. 進入遊戲 Forwardgame - [ ] 3.1 檢查帳號 - [ ] a. 使用REDIS快取10分鐘 - [ ] b. 拒絕不存在使用者進入遊戲 code 1012 - [ ] c. 拒絕未開分使用者 - [ ] 3.2 檢查遊戲館 - [ ] a. 拒絕沒開放的遊戲館 - [ ] b. 拒健康狀態逾時與維護遊戲館 - [ ] c. 檢查遊戲是否支援貨幣 - [ ] 3.3 踢線與提款 - [ ] a. 只處理開放的遊戲館 - [ ] b. 只處理有建立過帳號的遊戲館 - [ ] c. 忽略要進入的遊戲館 - [ ] d. 清除platform_user last_platform - [ ] 3.4 檢查與建立遊戲帳號 - [ ] a. 使用REDIS快取10分鐘 - [ ] b. 確認遊戲商建立重複帳號之回應 - [ ] c. 建立成功後重新set platform user - [ ] d. set platform user時遊戲館user_id為null不可寫入 - [ ] e. 重設REDIS資料 - [ ] f. 確認DB與REDIS資料正確 - [ ] 3.5 金額轉入/轉出遊戲館 - [ ] a. 確認交易紀錄寫入成功 - [ ] b. 確認target , source 正確 - [ ] c. 確認before_credit, amount , after_credit 正確 - [ ] d. 確認user wallet credit, lock_credit 正確 - [ ] e. 執行過程中斷確認餘額與交易紀錄都有rollback - [ ] f. 確認遊戲商回覆Time out 後重新查詢流程正確 - [ ] g. 確認遊戲商回覆http code = 200 , error code != success 處理流程 - [ ] g. 確認遊戲商回覆http code != 200 處理流程 - [ ] h. 確認超過交易自動查詢時間(30分鐘)後手動單號重新查詢作業 - [ ] i. 確認交易重新查詢後user wallet credit, lock_credit 正確 - [ ] j. 確認轉入金額後platform_user last_platform 寫入遊戲館 - [ ] k. 確認有將所有子錢包餘額轉入目標遊戲館 - [ ] 3.6 登入遊戲 - [ ] a. 確認語系代碼,不支援帶入英文 - [ ] b. 確認遊戲參數正確 - [ ] c. 確認返回大廳URL - [ ] d. 取得URL測試遊戲 ## 4. H1洗分 H1WalletTransferFund out - [ ] 4.1 檢查開分號 - [ ] a. 檢查是開分號是否存在 code 4016 - [ ] b. 檢查開分號是否已經提款 code 4017 - [ ] c. 不可接受洗分金額小於0 其餘全提款 - [ ] d. 不可接受action錯誤(in,out) 不分大小寫 - [ ] 4.1 踢除線上玩家並將所有錢包錢取回 - [ ] a. 確認交易紀錄寫入成功 - [ ] b. 確認target , source 正確 - [ ] c. 確認before_credit, amount , after_credit 正確 - [ ] d. 確認user wallet credit, lock_credit 正確 - [ ] e. 執行過程中斷確認餘額與交易紀錄都有rollback - [ ] f. 確認遊戲商回覆Time out 後重新查詢流程正確 - [ ] g. 確認遊戲商回覆http code = 200 , error code != success 處理流程 - [ ] g. 確認遊戲商回覆http code != 200 處理流程 - [ ] h. 確認超過交易自動查詢時間(30分鐘)後手動單號重新查詢作業 - [ ] i. 確認交易重新查詢後user wallet credit, lock_credit 正確 - [ ] j. 確認轉出金額後platform_user last_platform 改為null - [ ] k. 確認有將所有子錢包餘額取回主錢包 - [ ] 4.2 餘額異動 - [ ] a. 確認交易紀錄寫入成功 - [ ] b. 確認target , source 正確 - [ ] c. 確認before_credit, amount , after_credit 正確 - [ ] d. 確認user wallet credit, lock_credit 正確 - [ ] e. 執行過程中斷確認餘額與交易紀錄都有rollback - [ ] 4.3 Call API退款至H1 - [ ] a. 需Retry無限次到H1回覆成功為止 - [ ] b. Retry時間需要線性增長 - [ ] c. 確認沒有重複發出已經接收到成功的退款請求 - [ ] d. 確認H1不會對相同Session_id 做退款 - [ ] e. 測試退款Time out , 回覆400 401 等其他錯誤處理正確 ## 5. 取得遊戲紀錄 - [ ] 5.1 最大id拉注單 - [ ] a. 確認更新時間與投注時間差 - [ ] b. 確認單次最大筆數 - [ ] c. 確認執行頻率 - [ ] d. 確認DB執行參數寫入/讀取正常 - [ ] e. 確認取最大單號時是否有使用到partition - [ ] 5.2 時間區間拉注單 - [ ] a. 確認最新時間可抓取多少分鐘前資料 - [ ] b. 確認一次最大抓取時間範圍 - [ ] c. 確認執行頻率 - [ ] b. 確認時間最小單位 - [ ] d. 確認時間範圍是否有包含start time 與 end time - [ ] 5.2 注單注意事項 - [ ] a. 金額相關不管大小使用decimal (19,4) - [ ] b. 注單號相關如是數字一律使用 INT64 - [ ] c. 需與遊戲商確認帳務時間欄位用於建立partition - [ ] d. 每日12時候,若取得帳務時間12時前的注單需移動到當日12時報表時間 - [ ] 5.3 5分鐘彙總帳 - [ ] a. 取得遊戲注單須同步寫入遊戲注單與5分鐘彙總帳 - [ ] b. 彙總帳使用者id,代理id,遊戲館,投注,輸贏,筆數正確 - [ ] c. 可由彙總帳id取得注單明細並資料筆數相等 ## 6. 遊戲報表建立與遊戲紀錄檢查 - [ ] 6.1 取得遊戲商每小時(日)報表(Doing) - [ ] 6.2 從遊戲紀錄建立每小時(日)遊戲報表(Doing) - [ ] 6.3 檢查遊戲帳務是否正確(Doing) ## 7. 其他項目 - [ ] 7.1 設置投注限制 (Doing) - [ ] 7.2 取得交易紀錄 (Doing) - [ ] 7.3 取得5分鐘彙總帳 (Doing) - [ ] 7.4 取得遊戲明細 (Doing) - [ ] 7.5 取得遊戲結果畫面詳情 (Doing) - [ ] 7.6 取得遊戲報表 (Doing) - [ ] 7.7 遊戲館健康狀態 (Doing) - [ ] 7.8 GPC記錄 (Doing) ## 8. 壓力測試項目 - [ ] 8.1 基礎項目 - [ ] a. 建立帳號並轉入10,000人 每30ms轉入金額並登入1個使用者 , 預期10mins內完成 - [ ] b. 轉出出10,000人 每10ms轉出金額並登出1個使用者 , 預期15mins內完成 - [ ] c. 每分鐘產出5000筆彙總注單, 持續72小時 共計21,600,000筆匯總單, 預期排程取得彙總注單API 回應不超過1,000ms , W1與H1注單批次寫入DB時間不超過5,000ms - [ ] 8.2 遊戲館測試請求次數 - [ ] a. CreatePlayer 1500次/1分鐘 - [ ] b. Deposit 1500次/1分鐘 - [ ] c. GetURLToken 1500次/1分鐘 - [ ] d. GetBalance 3000次/1分鐘 - [ ] e. Kickout 1000次/1分鐘 - [ ] f. Withdraw 1000次/1分鐘