#2863f
Back
2026/01/15
2 min read

任務牆 table schema

任務牆 table schema.md
29 additions, 1 deletions
... ... @@ -68,7 +68,6 @@
68 -| available (rule engine寫入) | boolean | 是否採取計分 (連續累積型的登入此值為null ) | true |
69 68 }
70 69 ]
70 +```
71 +
72 +# rule engine流程步驟:
73 +
74 +```scss
75 +Step 1:檢索目標任務範圍
76 +獲取目前任務牆中所有「進行中」的母任務及其所屬的子任務清單。
77 +
78 +Step 2:用戶任務資格過濾
79 +根據用戶身分與任務屬性,篩選出該用戶目前「可執行」的子任務:
80 +權限檢查:判斷母任務是否為「封測限制」;若否,則開放給全體用戶。
81 +狀態過濾:比對用戶任務紀錄總計表 (UserSummaryRecord),排除該用戶已完成的子任務。
82 +目標鎖定:僅保留「進行中」以及「尚未有紀錄(新任務)」的子任務清單,作為本次判定的候選名單。
83 +
84 +Step 3:載入子任務設定
85 +自 任務設定子表 (TaskSubSetting) 中,讀取 Step 2 篩選出的子任務詳細規則(Rule Conditions)與達成參數。
86 +
87 +Step 4:事件規則匹配與寫入
88 +接收來自 用戶事件紀錄表 (UserEventLog) 的 Payload(事件內容),並與 Step 3 的規則進行比對:
89 +符合規則:於 用戶任務紀錄表 (UserTaskLog) 新增一筆執行紀錄。
90 +不符合:結束本次觸發,不寫入任何紀錄。
91 +
92 +Step 5:彙整進度更新
93 +依據 UserTaskLog 的最新變動,重新計算該用戶在該母任務下的各項進度指標,並同步更新至 用戶任務紀錄總計表 (UserSummaryRecord)。
94 +
95 +Step 6:達成判定與獎勵派發
96 +檢查 UserSummaryRecord 中的子任務狀態:
97 +若狀態更新為「已完成」,則於 用戶領獎紀錄表 (UserAwardRecord) 寫入一筆新資料。
98 +獎勵狀態預設標記為「未領取」。