#625cd
Back
2026/04/08
1 min read

建立審核新增

建立審核新增.md
128 additions, 0 deletions
... ... @@ -1 +1,129 @@
1 +# 任務牆紀錄 - 建立審核新增
2 +### SUMMARY
3 +建立審核以新增使用者任務紀錄(UserMissionLog)。每一筆 sub 任務對應一筆 AuditEntry,同一次請求可包含多筆 sub。
4 +
5 +* `subs` 不可為空
6 +* `subs` 中的 `sub_id` 不可重複
7 +* `count` 不可為 0
8 +* `user_id` 必須存在於系統中
9 +* `master_id` 必須存在於系統中
10 +* 每個 `sub_id` 必須屬於對應的 `master_id`
11 +
12 +### REFERENCE TABLE
13 +
14 +**Write**
15 +* `DBMT.CMS_AUDIT`
16 +* `DBMT.CMS_AUDIT_ENTRY`
17 +
18 +**Read**
19 +* `DBMT.ACCOUNT`
20 +* `DBMT.MISSION_MASTER_SETTING`
21 +* `DBMT.MISSION_SUB_SETTING`
22 +
23 +### ATTRIBUTES
24 +* METHOD: **POST**
25 +* PATH: `/api/features/mission-board/record/audit/create`
26 +* LOGIN REQUIRED: **TRUE**
27 +* FEATURE: `MISSION_BOARD_RECORD`
28 +* PERMISSION: `UPDATE`, `APPLY`
29 +* CRYPTO: **None**
30 +
31 +### REQUEST
32 +#### HEADERS
33 +
34 +| Name | Type/Len | Required(*) | Desc |
35 +| ---| ---| ---| --- |
36 +| Content-Type | String | * | `"application/json"` |
37 +| Authorization | String | * | JWT Token |
38 +| X-Request-Id | String | | X-Request-Id for api flow tracing |
39 +
40 +```json
41 +// Example:
42 +{
43 + "Content-Type": "application/json",
44 + "Authorization": "Bearer jwt-token",
45 + "x-request-id": "78f91284-d9df-43e6-a8d2-d557273c10bb"
46 +}
47 +```
48 +
49 +#### BODY
50 +
51 +| Level | Name | Type/Len | Required(*) | Desc |
52 +| ---| ---| ---| ---| --- |
53 +| 1 | user_id | String | * | 使用者 ID (`ACCOUNT.ID`) |
54 +| 1 | master_id | Integer | * | 主任務 ID (`MISSION_MASTER_SETTING.ID`) |
55 +| 1 | subs | List(Dict) | * | 子任務列表 (不可為空,`sub_id` 不可重複) |
56 +
57 +#### subs (List Item)
58 +
59 +| Level | Name | Type/Len | Required(*) | Desc |
60 +| ---| ---| ---| ---| --- |
61 +| 2 | sub_id | Integer | * | 子任務 ID (`MISSION_SUB_SETTING.ID`),必須屬於 `master_id` |
62 +| 2 | count | Integer | | 次數(不可為 0,負數可接受) |
63 +
64 +```json
65 +// Example:
66 +{
67 + "user_id": "U123456",
68 + "master_id": 1,
69 + "subs": [
70 + {
71 + "sub_id": 10,
72 + "count": 5
73 + },
74 + {
75 + "sub_id": 11,
76 + "count": 3
77 + }
78 + ]
79 +}
80 +```
81 +
82 +### RESPONSE
83 +#### STATUS CODE
84 +* 201
85 +
86 +#### HEADERS
87 +
88 +| Name | Type/Len | Desc |
89 +| ---| ---| --- |
90 +| Authorization | String | JWT Token |
91 +| X-Request-Id | String | Returning Request-Id |
92 +
93 +```json
94 +// Example:
95 +{
96 + "Authorization": "Bearer jwt-token",
97 + "x-request-id": "78f91284-d9df-43e6-a8d2-d557273c10bb"
98 +}
99 +```
100 +
101 +#### BODY
102 +
103 +| Level | Name | Type/Len | Nullable(*) | Desc |
104 +| ---| ---| ---| ---| --- |
105 +| 1 | status | String | | 回應狀態 (SUCCESS, FAILURE) |
106 +| 1 | data | Dict | | 通用資料包裝 |
107 +| 2 | id | Integer | | 審核 ID (`CMS_AUDIT.ID`) |
108 +
109 +```json
110 +// Example:
111 +{
112 + "status": "SUCCESS",
113 + "data": {
114 + "id": 42
115 + }
116 +}
117 +```
118 +
119 +#### ERROR CODE
120 +
121 +| HTTP Status | ErrorCode | Message | Desc |
122 +| ---| ---| ---| --- |
123 +| 401 | Unauthorized | Unauthorized | 未授權 |
124 +| 403 | Forbidden | Forbidden | 無權限存取 |
125 +| 409 | MissionBoardRecordAuditError.USER_NOT_FOUND | User not found | 使用者不存在 |
126 +| 409 | MissionBoardRecordAuditError.MISSION_MASTER_NOT_FOUND | Mission master not found | 主任務不存在 |
127 +| 409 | MissionBoardRecordAuditError.MISSION_SUB_NOT_FOUND | Mission sub not found | 子任務不屬於此主任務 |
128 +| 422 | ValidationError | Validation error | subs 為空、sub_id 重複、count 為 0 等 Schema 驗證失敗 |