---
# System prepended metadata

title: W1系統開發項目自我檢查表 20221219 RSG 上線
tags: [W1]

---

# W1系統開發項目自我檢查表 20221219 RSG 上線 
###### tags: `W1`

## 1. 建立使用者 Create User
- [x] 1.1  檢查帳號重複
    - [x] a. 使用REDIS快取10分鐘
    - [x] b. REDIS資料遺失可正確取得DB資料
    - [x] c. 帳號已建立過需回覆 http status 200 , code:0
    - [x] d. 其他失敗 http error code 400.403.500.501 , code不等於0
- [x] 1.2  帳號建立
    - [x] a. 須同步建立platform_user
    - [x] b. 確認新建wallet credit = 0
    - [x] c. 確認新建wallet lcok_credit = 0
    - [x] d. 確認不可重複建立相同 club_id (包含t_wallet與 t_platform_user)
    - [x] e. wallet與platform_user需在同一個transaction commit ,任一失敗rollback
    - [x] f. 帳號建立成功需回覆 http status 200 , code:0
    - [x] g. 其他失敗 http error code 400.403.500.501 , code不等於0
## 2. H1開分 H1WalletTransferFund in
- [x] 2.1 檢查User帳號
    - [x] a. 使用REDIS快取10分鐘
    - [x] b. 拒絕不存在使用者開分 code 1012
- [x] 2.2 檢查開分號
    - [x] a. User 有未完成開分號要回覆開分失敗 code 4015
    - [x] b. 不可接受相同的Session_id code 4002
    - [x] c. 不可接受開分金額小於0 
    - [x] d. 不可接受action錯誤(in,out) 不分大小寫
- [x] 2.3 餘額異動
    - [x] a. 確認交易紀錄寫入成功 
    - [x] b. 確認target , source 正確
    - [x] c. 確認before_credit, amount , after_credit 正確
    - [x] d. 確認user wallet credit, lock_credit 正確
    - [x] e. 執行過程中斷確認餘額與交易紀錄都有rollback
- [x] 2.4 H1回復結果
    - [x] a. 開分成功需回覆 http status 200 , code:0
    - [x] 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
- [x] 3.1 檢查帳號
    - [x] a. 使用REDIS快取10分鐘
    - [x] b. 拒絕不存在使用者進入遊戲 code 1012
    - [x] c. 拒絕未開分使用者
- [ ] 3.2 檢查遊戲館
    - [x] a. 拒絕沒開放的遊戲館
    - [x] b. 拒健康狀態逾時與維護遊戲館
    - [ ] c. 檢查遊戲是否支援貨幣
- [ ] 3.3 踢線與提款
    - [x] a. 只處理開放的遊戲館
    - [x] b. 只處理有建立過帳號的遊戲館
    - [x] c. 忽略要進入的遊戲館
    - [ ] d. 清除platform_user last_platform
- [x] 3.4 檢查與建立遊戲帳號
    - [x] a. 使用REDIS快取10分鐘
    - [x] b. 確認遊戲商建立重複帳號之回應
    - [x] c. 建立成功後重新set platform user
    - [x] d. set platform user時遊戲館user_id為null不可寫入
    - [x] e. 重設REDIS資料
    - [x] f. 確認DB與REDIS資料正確
- [x] 3.5 金額轉入/轉出遊戲館
    - [x] a. 確認交易紀錄寫入成功 
    - [x] b. 確認target , source 正確
    - [x] c. 確認before_credit, amount , after_credit 正確
    - [x] 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. 取得遊戲紀錄
- [x] 5.1 最大id拉注單
    - [x] a. 確認更新時間與投注時間差
    - [x] b. 確認單次最大筆數
    - [x] c. 確認執行頻率
    - [x] d. 確認DB執行參數寫入/讀取正常
    - [x] e. 確認取最大單號時是否有使用到partition
- [x] 5.2 時間區間拉注單
    - [x] a. 確認最新時間可抓取多少分鐘前資料
    - [x] b. 確認一次最大抓取時間範圍
    - [x] c. 確認執行頻率
    - [x] b. 確認時間最小單位
    - [x] d. 確認時間範圍是否有包含start time 與 end time
- [x] 5.2 注單注意事項
    - [x] a. 金額相關不管大小使用decimal (19,4)
    - [x] b. 注單號相關如是數字一律使用 INT64
    - [x] c. 需與遊戲商確認帳務時間欄位用於建立partition
    - [x] d. 每日12時候,若取得帳務時間12時前的注單需移動到當日12時報表時間
- [x] 5.3 5分鐘彙總帳
    - [x] a. 取得遊戲注單須同步寫入遊戲注單與5分鐘彙總帳
    - [x] b. 彙總帳使用者id,代理id,遊戲館,投注,輸贏,筆數正確
    - [x] c. 可由彙總帳id取得注單明細並資料筆數相等
## 6. 遊戲報表建立與遊戲紀錄檢查
- [x] 6.1 取得遊戲商每小時(日)報表(Doing)
- [x] 6.2 從遊戲紀錄建立每小時(日)遊戲報表(Doing)
- [x] 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分鐘