#aa371
Back
2026/01/29
4 min read

任務牆 - 建立審核新增

任務牆 - 建立審核新增.md
154 additions, 0 deletions
... ... @@ -1 +1,155 @@
1 +## SUMMARY
2 +建立任務牆主任務及設定子任務
3 +### REFERENCE TABLE
4 +* `DBMT.CMS_MISSION_RULE_PATTERN`
5 +* `DBMT.CMS_AUDIT`
6 +* `DBMT.CMS_AUDIT_ENTRY`
7 +
8 +### ATTRIBUTES
9 +* METHOD: **POST**
10 +* PATH: `/api/features/mission-board/mission/create`
11 +* LOGIN REQUIRED: **TRUE**
12 +* FEATURE: `MISSION_BOARD`
13 +* PERMISSION: `CREATE`
14 +* CRYPTO: **None**
15 +
16 +### REQUEST
17 +#### HEADERS
18 +
19 +| Name | Type/Len | Required(*) | Desc |
20 +| ---| ---| ---| --- |
21 +| Content-Type | String | * | `"application/json"` |
22 +| Authorization | String | | JWT Token |
23 +| X-Request-Id | String | | X-Request-Id for api flow tracing |
24 +
25 +```json
26 +// Example:
27 +{
28 + "Content-Type": "application/json",
29 + "Authorization": "Bearer jwt-token",
30 + "x-request-id": "78f91284-d9df-43e6-a8d2-d557273c10bb"
31 +}
32 +```
33 +
34 +#### PAYLOAD
35 +
36 +| Level | Name | Type/Len | Required(*) | Nullable(*) | Desc |
37 +| ---| ---| ---| ---| ---| --- |
38 +| 1 | progress | String | * | | 審核進度 |
39 +| 1 | data | Dict | * | |  任務牆設定資料 |
40 +
41 +### DATA
42 +
43 +| Level | Name | Type/Len | Required(*) | Nullable(*) | Desc |
44 +| ---| ---| ---| ---| ---| --- |
45 +| 2 | misssion_board | Dict | * | | 主任務設定 |
46 +| 2 | sub_mission_rules | List(Dict) | * | | 子任務條件設定 |
47 +| 2 | mission_awards | List(Dict) | * | | 獎項設定 |
48 +
49 +####
50 +
51 +#### mission_board
52 +
53 +| Level | Name | Type/Len | Required(*) | Nullable(*) | Desc |
54 +| ---| ---| ---| ---| ---| --- |
55 +| 3 | id | Integer | | * | 任務牆 ID (新增時為 Null) |
56 +| 3 | name | String(50) | * | | 任務名稱 |
57 +| 3 | status | Enum | * | | 狀態:<br>PUBLISHED: 上架<br>UNLISTED: 下架<br>BETA: 封測<br>(新增時固定為封測) |
58 +| 3 | category | Enum | * | | 任務類別:<br>ASSINGED: 指定型<br>MILESTONE: 多門檻型<br>SEQUENTIAL: 關聯型 |
59 +| 3 | summary | String | * | | 任務簡述 |
60 +| 3 | description | String | * | | 任務指南 |
61 +| 3 | visible_start_time | Datetime | * | | 上架時間 |
62 +| 3 | visible_end_time | Datetime | * | | 下架時間 |
63 +| 3 | activity_start_time | Datetime | * | | 任務開始時間 |
64 +| 3 | activity_end_time | Datetime | * | | 任務結束時間 |
65 +| 3 | award_end_time | Datetime | * | | 領獎結束時間 |
66 +| 3 | dispaly_share_button | Boolean | * | | 是否顯示任務分享按鈕 |
67 +| 3 | term | String | * | | 活動條款 |
68 +
69 +#### sub_mission_rules
70 +
71 +| Level | Name | Type/Len | Required(*) | Nullable(*) | Desc |
72 +| ---| ---| ---| ---| ---| --- |
73 +| 3 | id | Integer | | * | 子任務 ID (新增時為 Null) |
74 +| 3 | name | String(50) | * | | 子任務名稱 |
75 +| 3 | activity_type | Enum | * | | 子任務類型:<br>REDEEM_POINTS: 兌換點數 REDEEM_VOUCHER: 兌換票券 WRITE_OFF: 核銷票券<br>LOGIN: 登入<br>MGM: 會員推薦 MGM THIRD_PARTY: 第三方 |
76 +| 3 | category | Enum | * | | 任務類別:<br>ASSINGED: 指定型<br>MILESTONE: 多門檻型<br>SEQUENTIAL: 關聯型 |
77 +| 3 | target_count | Integer | * | | 完成目標數 |
78 +| 3 | duplicate | Boolean | * | | 是否可重覆計算同種票券 |
79 +| 3 | cta_visible | Boolean | * | | 是否設定 CTA |
80 +| 3 | cta_link | String | | | CTA 連結 |
81 +| 3 | cta_content | String | | | CTA 按鈕文字 |
82 +| 3 | tier | Integer | * | | 排序 (任務順序) |
83 +| 3 | | | | | |
84 +| | | | | | |
85 +
86 +###
87 +
88 +### 條件設定
89 +範例:
90 +
91 +```scheme
92 +[
93 + {
94 + "field": "product_name",
95 + "operator": "like",
96 + "values": ["現金券", "抵用券"]
97 + },
98 + {
99 + "field": "point_limit",
100 + "operator": "gt",
101 + "values": [500]
102 + }
103 +]
104 +```
105 +
106 +* 請參考 Table Schema ([https://app.clickup.com/3626232/docs/3en7r-19300/3en7r-123898](https://app.clickup.com/3626232/docs/3en7r-19300/3en7r-123898))下方說明
107 +* **欄位說明**
108 + * **field:**
109 + * serial_id 指定票券
110 + * brand_id 指定品牌
111 + * brand_name 品牌關鍵字
112 + * product_name 品名關鍵字
113 + * point_limit 點數限制
114 + * member_identity 會員身份 (第一階段不實作)
115 + * **operator:**
116 + * in 完全相符
117 + * like 包含
118 + * not_like (品牌關鍵字、品名關鍵字),not_in (指定票券、指定品牌) 不包含
119 + * gt 大於
120 + * lt 小於
121 + * eq 等於
122 + * **value:**不論一或多個值,皆以陣列形式表示
123 +
124 +### RESPONSE
125 +#### STATUS CODE
126 +* 201
127 +#### HEADERS
128 +
129 +| Name | Type/Len | Desc |
130 +| ---| ---| --- |
131 +| Authorization | String | JWT Token |
132 +| X-Request-Id | String | Returning Request-Id |
133 +
134 +```json
135 +// Example:
136 +{
137 + "Authorization": "Bearer jwt-token",
138 + "x-request-id": "78f91284-d9df-43e6-a8d2-d557273c10bb"
139 +}
140 +```
141 +
142 +#### BODY
143 +
144 +| Level | Name | Type/Len | Nullable(*) | Desc |
145 +| ---| ---| ---| ---| --- |
146 +| 1 | status | String | | 回應狀態 (SUCCESS, FAILURE) |
147 +| 1 | data | Dict | | 通用資料包裝 |
148 +| 2 | id | Integer | | `CMS_MISSION_RULE_PATTERN`<br>`.id` |
149 +
150 +#### ERROR CODE
151 +
152 +| HTTP Status | ErrorCode | Message | Desc |
153 +| ---| ---| ---| --- |
154 +| 400 | ValidationError | Product serial_id not exists | 商品 serial_id 不存在 |