# 活動
---
API 清單
- 活動管理[WEB]
- [取得上傳網址](#取得上傳網址)
- [活動管理列表](#活動管理列表)
- [取得活動管理明細](#取得活動管理明細)
- [取得活動參與人員列表](#取得活動參與人員列表)
- [取得活動取消報名名單](#取得活動取消報名名單)
- [新增活動](#新增活動)
- [編輯活動](#編輯活動)
- [編輯活動狀態](#編輯活動狀態)
- [編輯活動是否顯示](#編輯活動是否顯示)
- [刪除活動](#刪除活動)
- [列印活動QRCode](#列印活動QRCode)
- [可綁定點數任務列表](#可綁定點數任務列表)
- [活動推播通知](#活動推播通知)
- [活動統計](#活動統計)
- 活動[APP]
- [活動摘要](#活動摘要)
- [取得活動列表](#取得活動列表)
- [取得活動明細](#取得活動明細)
- [活動報名](#活動報名)
- [活動報名取消](#活動報名取消)
- [活動簽到簽退](#活動簽到簽退)
- [活動觸及(曝光)](#活動觸及曝光)
- [活動點擊](#活動點擊)
---
## 取得上傳網址
```url
POST /event-mgmt/get-upload-url
```
* 新增/編輯活動時用來上傳縮圖, 活動圖/影片, 活動檔案(PDF)
#### Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
isMultipart | boolean | Y | false | 是否使用分段上傳
isThumbnail | boolean | Y | false | 上傳的是否為縮圖
fileName | String | Y | | 檔名,不包含副檔名,限制最多50字
fileType | String | Y | | 副檔名, 限制最多10字
totalPart | int | **N** (isMultipart=false)<br>**Y** (isMultipart=true) | | 總分塊數量,不可小於2
parts | Array [...part] | **N** (isMultipart=false)<br>**Y** (isMultipart=true) | | part 資訊
* part(Object)
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
chunkSize | int | Y | | 該 chunk 的大小, bytes
md5 | string | Y | | 該 part 的 md5
part | int | Y | | part number, 第幾塊 chunk
```javascript
// 單檔
{
"isMultipart": false,
"isThumbnail": false,
"fileName": "ad_bg_jp",
"fileType": "png"
}
// 分塊上傳
{
"isMultipart": true,
"isThumbnail": false,
"fileName": "giphy (7)",
"fileType": "mp4",
"totalPart": 2,
"parts": [
{
"chunkSize": 5242880,
"md5": "5AACA89868CD486D81192221CF9F9415",
"part": 1
},
{
"chunkSize": 3145728,
"md5": "5AACA89868CD486D81192221CF9F9415",
"part": 2
}
]
}
```
#### Response
* data
欄位 | 型態 | 說明
--- | --- | ---
objectKey | string | storage 中的 objectKey, **unique**
uploadId | string | 識別該次上傳的 uploadId
fileName | string | 名稱
fileType | string | 副檔名
url | string | 單檔上傳的時候,才會回傳該 url, 時效 3600 秒
parts | [...part] | multipart上傳各part的url
* part(Object)
欄位 | 型態 | 說明
--- | --- | ---
chunkSize | int | 該 chunk 的大小, bytes
md5 | string | 該 part 的 md5
part | int | part number, 第幾塊 chunk
url | string | 可上傳的 url, 時效 3600 秒
```javascript
// HttpStatus:422, 上傳的檔案類型不允許
{
"errorMsg": "SERVICE_ERROR.EVENT_MGMT_UPLOAD_FILE_TYPE_NOT_ALLOWED",
"httpCode": 422
}
// HttpStatus: 200
// 單檔
{
"httpCode": 200,
"result": {
"data": {
"objectKey": "event/9f9de11b-12b9-4964-bae8-3233e9da065b.png",
"uploadId": "11becd09-7571-4b0d-b8ee-cb3f09f66cf0",
"fileName": "ad_bg_jp",
"fileType": "png",
// 單檔 才有 url
"url": "http://192.168.100.239:12345/v1/AUTH_test/kmuh/event%2F9f9de11b-12b9-4964-bae8-3233e9da065b.png?temp_url_sig=e61d9e721d860294bde4d0151e111ebf8ed57ed7&temp_url_expires=1554114780"
}
}
}
// 分塊上傳
{
"httpCode": 200,
"result": {
"data": {
"objectKey": "event/f76adf26-1e22-4b18-980d-b9a68efc5171.mp4",
"uploadId": "53fde368-43d9-455f-a610-62091fc30be6",
"fileName": "giphy (7)",
"fileType": "mp4",
"parts": [
{
"chunkSize": 5242880,
"md5": "5AACA89868CD486D81192221CF9F9415",
"part": 1,
"url": "http://192.168.100.239:12345/v1/AUTH_test/kmuh_segments/event%2Ff76adf26-1e22-4b18-980d-b9a68efc5171.mp4%2F1?temp_url_sig=796c52b00f75b62be658533b2fadbc7f14381e36&temp_url_expires=1554263771"
},
{
"chunkSize": 3145728,
"md5": "5AACA89868CD486D81192221CF9F9415",
"part": 2,
"url": "http://192.168.100.239:12345/v1/AUTH_test/kmuh_segments/event%2Ff76adf26-1e22-4b18-980d-b9a68efc5171.mp4%2F2?temp_url_sig=ad71de81dfbcd94bce4a091f2630c6f1373ff3cd&temp_url_expires=1554263771"
}
]
}
}
}
```
## 活動管理列表
```url
POST /event-mgmt/list
```
#### Request
* query(查詢條件json)
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
eventTimeStart | string | | | 活動時間查詢起日, 格式為YYYY-MM-DD
eventTimeEnd | string | | | 活動時間查詢迄日, 格式為YYYY-MM-DD
status | string | | | 活動狀態, NONE:未上架, ON:未開始, GOING:進行中, FINISH:已結束, OFF: 已下架
name | string | | | 關鍵字, 查詢活動標題
isShow | boolean | | | 顯示控制, 未填表示全部, true:顯示, false: 隱藏
* pagination(分頁json)
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
current | int | | 1 | 當前頁數
pageSize | int | | 10 | 每頁結果數量,-1 為顯示所有
* sorter(排序json), 預設是用更新時間降序排列
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
field | string | | updateTime | 排序欄位,可排序欄位有updateTime, eventStartTime, eventEndTime, launchOnDate, status
order | string | | desc | 升序或降序
```javascript
{
"query": {
"eventTimeStart": null,
"eventTimeEnd": null,
"status": null,
"name": null
} ,
"pagination": {
"current": 1,
"pageSize": 10
},
"sorter": {
"field": "updateTime",
"order": "desc"
}
}
```
#### Response
欄位 | 型態 | 說明
--- | --- | ---
id | string | 活動id
tenantId | string | 租戶id
title | string | 活動標題
content | string | 活動內容
isSingleDay | boolean | 是否為單日活動, true: 單日活動, false: 活動期間
eventStartTime | timestamp | 活動開始日期時間
eventEndTime | timestamp | 活動結束日期時間
thumbnailObjectKey | string | storage中的縮圖objectKey
attachType | string | 附件類型, NONE:無, URL:連結, FILE:檔案
attachObjectKey | string | attachType為FILE時, 表示storage 中的 objectKey, attachType為URL時, 表示連結的網址
attendeeLimit | int | 活動報名人數限制, -1:表示無限制
isRegister | boolean | 活動是否需要報名, true:需要報名, false:不需報名
regStartDate | date | 活動報名開始日期
regEndDate | date | 活動報名結束日期
isSign | boolean | 活動是否需要簽到簽退, true:需要簽到簽退, false:不需簽到簽退
launchStatus | string | 活動發佈狀態, NONE:未上架, ON:上架, OFF:下架
launchOnDate | date | 活動上架日期
launchOffDate | date | 活動下架日期
status | string | 活動狀態, NONE:未上架, ON:未開始, GOING:進行中, FINISH:已結束, OFF: 已下架
thumbnailUrl | string | 可 download 的 縮圖url, 時效 3600 秒
attachUrl | string | attachType為FILE時,可 download 的 url, 時效 3600 秒, attachType為URL時, 表示連結的網址
registerCount | int | 報名人數
signInCount | int | 簽到人數
cancelCount | int | 取消報名人數
cancelTimes | int | 取消報名人次
notificationTitle | string | 活動推播標題
isShow | boolean | 顯示控制, true:顯示, false: 隱藏
```javascript
{
"httpCode": 200,
"result": {
"data": [
{
"id": "ef353072-c154-4475-b988-472e89f87a6d",
"tenantId": "WMT",
"title": "活動11",
"content": "Disney+ 上線囉, 還不快訂起來~~",
"isSingleDay": false,
"eventStartTime": 1638288000000,
"eventEndTime": 1639065600000,
"thumbnailObjectKey": "event/thumbnail/98386d85-592e-4e7d-80f3-0e22a389ff65.png",
"attachType": "URL",
"attachObjectKey": "https://www.google.com",
"attendeeLimit": -1,
"isRegister": true,
"regStartDate": 1637164800000,
"regEndDate": 1639065600000,
"isSign": true,
"launchStatus": "ON",
"launchOnDate": 1637164800000,
"status": "ON",
"createTime": 1637164800000,
"updateTime": 1637164800000,
"attachUrl": null,
"thumbnailUrl": "http://10.31.49.126/swift/v1/AUTH_test/kmuh/event/thumbnail/98386d85-592e-4e7d-80f3-0e22a389ff65.png",
"registerCount": 50,
"signInCount": 40,
"cancelCount": 2,
"cancelTimes": 5,
"notificationTitle":null,
"isShow": true
}
],
"pagination": {
"current": 1,
"pageSize": 10,
"total": 1
},
"sorter": {
"field": "updateTime",
"order": "desc"
},
"total": 1
}
}
```
## 取得活動管理明細
```url
POST /event-mgmt/info
```
#### Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
id | string | Y | | 活動id
```javascript
{
"id": "df2e6892-9ee2-4aab-9990-c5a62d618be2"
}
```
#### Response
欄位 | 型態 | 說明
--- | --- | ---
id | string | 活動id
tenantId | string | 租戶id
title | string | 活動標題
content | string | 活動內容
isSingleDay | boolean | 是否為單日活動, true: 單日活動, false: 活動期間
eventStartTime | timestamp | 活動開始日期時間
eventEndTime | timestamp | 活動結束日期時間
thumbnailObjectKey | string | storage中的縮圖objectKey
attachType | string | 附件類型, NONE:無, URL:連結, FILE:檔案
attachObjectKey | string | attachType為FILE時, 表示storage 中的 objectKey, attachType為URL時, 表示連結的網址
attendeeLimit | int | 活動報名人數限制, -1:表示無限制
isRegister | boolean | 活動是否需要報名, true:需要報名, false:不需報名
regStartDate | date | 活動報名開始日期
regEndDate | date | 活動報名結束日期
isSign | boolean | 活動是否需要簽到簽退, true:需要簽到簽退, false:不需簽到簽退
launchStatus | string | 活動發佈狀態, NONE:未上架, ON:上架, OFF:下架
launchOnDate | date | 活動上架日期
launchOffDate | date | 活動下架日期
status | string | 活動狀態, NONE:未上架, ON:未開始, GOING:進行中, FINISH:已結束, OFF: 已下架
thumbnailUrl | string | 可 download 的 縮圖url, 時效 3600 秒
attachUrl | string | attachType為FILE時,可 download 的 url, 時效 3600 秒, attachType為URL時, 表示連結的網址
rewardTaskId | string | 綁定點數任務id
rewardTaskName | string | 綁定點數任務名稱
rewardPoints | int | 綁定點數任務發放點數
notificationTitle | string | 活動推播標題
isShow | boolean | 顯示控制, true:顯示, false: 隱藏
historyList | json array | 狀態歷史記錄
givePointsTiming | string | 活動贈點時機, 01:一般, 02:簽到/退, 03:註冊
##### Response-historyList(json)
欄位 | 型態 | 說明
--- | --- | ---
eventId | string | 活動id
launchStatus | string | 活動發佈狀態, NONE:未上架, ON:上架, OFF:下架
status | string | 活動狀態, NONE:未上架, ON:未開始, GOING:進行中, FINISH:已結束, OFF: 已下架
dateTime | timestamp | 異動時間
```javascript
// HttpStatus:400, 資料不存在
{
"errorMsg": "API_ERROR.NOT_EXIST",
"httpCode": 400
}
// HttpStatus:200
{
"httpCode": 200,
"result": {
"data": {
"id": "ef353072-c154-4475-b988-472e89f87a6d",
"tenantId": "WMT",
"title": "活動11",
"content": "Disney+ 上線囉, 還不快訂起來~~",
"isSingleDay": false,
"eventStartTime": 1638288000000,
"eventEndTime": 1639065600000,
"thumbnailObjectKey": "event/thumbnail/98386d85-592e-4e7d-80f3-0e22a389ff65.png",
"attachType": "URL",
"attachObjectKey": "https://www.google.com",
"attendeeLimit": -1,
"isRegister": true,
"regStartDate": 1637164800000,
"regEndDate": 1639065600000,
"isSign": true,
"launchStatus": "ON",
"launchOnDate": 1637164800000,
"status": "ON",
"createTime": 1637164800000,
"updateTime": 1637164800000,
"attachUrl": "https://www.google.com",
"thumbnailUrl": "http://10.31.49.126/swift/v1/AUTH_test/kmuh/event/thumbnail/98386d85-592e-4e7d-80f3-0e22a389ff65.png",
"rewardTaskId": "b3099f19-d155-4a08-a672-3e48c485e648",
"rewardTaskName": "活動簽到贈點100點",
"rewardPoints": 100,
"notificationTitle":null,
"isShow": true,
"historyList": [
{
"eventId": "ef353072-c154-4475-b988-472e89f87a6d",
"dateTime": 1679973590072,
"launchStatus": "ON",
"status": "GOING"
},
{
"eventId": "ef353072-c154-4475-b988-472e89f87a6d",
"dateTime": 1679968965118,
"launchStatus": "OFF",
"status": "OFF"
}
],
"givePointsTiming": "01"
}
}
}
```
## 取得活動參與人員列表
```url
POST /event-mgmt/info-attendees
```
#### Request
* query(查詢條件json)
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
id | string | Y | | 活動id
* pagination(分頁json)
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
current | int | | 1 | 當前頁數
pageSize | int | | 10 | 每頁結果數量,-1 為顯示所有
* sorter(排序json), 預設是用更新時間降序排列
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
field | string | | registerTime | 排序欄位,可排序欄位有 registerTime, signInTime, signOutTime, name
order | string | | asc | 升序或降序
```javascript
{
"query": {
"id": "ef353072-c154-4475-b988-472e89f87a6d"
} ,
"pagination": {
"current": 1,
"pageSize": 10
},
"sorter": {
"field": "registerTime",
"order": "desc"
}
}
```
#### Response
欄位 | 型態 | 說明
--- | --- | ---
id | string | 活動參與人員記錄id
householdMemberId | string | 參與人員householdMemberId
name | string | 參與人員姓名
gender | int | 參與人員性別, 1:男, 2:女
mobile | string | 參與人員手機號碼
registerTime | timestamp | 活動報名時間
signInTime | timestamp | 活動簽到時間
signOutTime | timestamp | 活動簽退時間
```javascript
{
"httpCode": 200,
"result": {
"data": [
{
"id": "b3aaf4eb-7902-443f-8b7e-fbe48e8e8146",
"householdMemberId": "8a9e980a-c612-4f87-af07-a97a5f0fbed5",
"name": "蘇凱文",
"gender": 1,
"mobile": "0925309365",
"registerTime": 1637251200000,
"signInTime": null,
"signOutTime": null
}
],
"pagination": {
"current": 1,
"pageSize": 10,
"total": 1
},
"sorter": {
"field": "registerTime",
"order": "desc"
},
"total": 1
}
}
```
## 取得活動取消報名名單
```url
POST /event-mgmt/info-attendees-cancelled
```
#### Request
* query(查詢條件json)
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
id | string | Y | | 活動id
* pagination(分頁json)
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
current | int | | 1 | 當前頁數
pageSize | int | | 10 | 每頁結果數量,-1 為顯示所有
* sorter(排序json), 預設是用更新時間降序排列
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
field | string | | cancelTime | 排序欄位,可排序欄位有 cancelTime, name
order | string | | asc | 升序或降序
```javascript
{
"query": {
"id": "0326c19a-51e8-4db0-9d32-a1260437b7a7"
} ,
"pagination": {
"current": 1,
"pageSize": 10
},
"sorter": {
"field": "cancelTime",
"order": "asc"
}
}
```
#### Response
欄位 | 型態 | 說明
--- | --- | ---
cancelCount | int | 取消報名人數
cancelTime | int | 取消報名人次
cancelList | json array | 取消報名人員json array
* cancelList (json)
欄位 | 型態 | 說明
--- | --- | ---
id | string | 記錄id
householdMemberId | string | householdMemberId
name | string | 姓名
gender | int | 性別, 1:男, 2:女
mobile | string | 手機號碼
cancelTime | timestamp | 取消報名時間
```javascript
{
"httpCode": 200,
"result": {
"data": {
"cancelCount": 2,
"cancelTimes": 5,
"cancelList": [
{
"id": "8e3daa6a-1129-4deb-be80-78c436b78df9",
"householdMemberId": "8a9e980a-c612-4f87-af07-a97a5f0fbed5",
"name": "蘇凱文",
"gender": 1,
"mobile": "0925309365",
"cancelTime": 1637313123699
},
{
"id": "f8750ceb-490d-4ef7-b1e3-1b113861b5d4",
"householdMemberId": "8a9e980a-c612-4f87-af07-a97a5f0fbed5",
"name": "蘇凱文",
"gender": 1,
"mobile": "0925309365",
"cancelTime": 1637550509189
},
{
"id": "b1f555e0-e31a-409f-8291-2dc437c2ba9e",
"householdMemberId": "fdba6e30-ffda-47e4-b378-be7f9de7ba15",
"name": "啊啊啊",
"gender": 1,
"mobile": "0903100003",
"cancelTime": 1637568287708
},
{
"id": "eb4a6b76-87e1-4fe6-92ba-e660d70d160e",
"householdMemberId": "fdba6e30-ffda-47e4-b378-be7f9de7ba15",
"name": "啊啊啊",
"gender": 1,
"mobile": "0903100003",
"cancelTime": 1637568364524
},
{
"id": "cf37d936-52ef-4f9e-9d4b-b55aae9f4af3",
"householdMemberId": "fdba6e30-ffda-47e4-b378-be7f9de7ba15",
"name": "啊啊啊",
"gender": 1,
"mobile": "0903100003",
"cancelTime": 1637826882274
}
]
},
"pagination": {
"current": 1,
"pageSize": 10,
"total": 5
},
"sorter": {
"field": "cancelTime",
"order": "asc"
},
"total": 5
}
}
```
## 新增活動
```url
POST /event-mgmt/add
```
* 目前開放活動可以綁定點數任務, 限該租戶下的點數任務
* 點數任務有2種類型, 依taskType區分, "EVENT_SIGN_IN"為簽到/退任務, "EVENT_REGISTER"為註冊任務
* 目前綁定點數任務時且活動贈點時機為02 簽到/退時, 需啟用簽到/簽退
* 有綁定簽到/退點數任務時, App User簽到時只會給予一次點數
* 活動贈點時機為01 註冊時, 該活動不會顯示在AppUser端
* 使用者掃碼新增為企業客戶會員時, 會檢查該企客是否有註冊贈點的活動任務可以贈點
#### Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
title | string | Y | | 活動標題, 限制最多30字
content | string | Y | | 活動內容, 限制最多500字
isSingleDay | boolean | Y | | 是否為單日活動, true: 單日活動, false:活動期間
eventStartTime | timestamp | Y | | 活動開始日期時間
eventEndTime | timestamp | Y | | 活動結束日期時間
thumbnailObjectKey | string | Y | | 縮圖objectKey, 先取得縮圖上傳網址並上傳成功,取其 objectKey。
attachType | string | Y | | 附件類型, NONE:無, URL:連結, FILE:檔案
attachObjectKey | string | **Y**(attachType= URL/FILE) | | 若attachType為FILE, 先取得上傳網址並上傳成功,取其 objectKey。若attachType為URL則直接存放URL網址
attendeeLimit | int | Y | | 報名人數限制, -1 表示無限制
isRegister | boolean | Y | | 是否需要報名, true: 需要報名, false:不需報名
regStartDate | timestamp | **Y**(isRegister=true) | | 報名開始時間
regEndDate | timestamp | **Y**(isRegister=true) | | 報名結束時間
isSign | boolean | Y | | 是否需要簽到簽退, true: 需要簽到簽退, false:不需簽到簽退
launchStatus | string | Y | | 活動發佈狀態, NONE:未上架, ON:上架, OFF:下架
isAttachMultipart | boolean | N | | attachType=FILE時, 上傳的檔案是否分塊上傳,預設為 false
attachTotalPart | int | **N** (isAttachMultipart=false)<br>**Y** (isAttachMultipart=true) | | 總分塊數量,不可小於2
attachUploadId | string | **N** (isAttachMultipart=false)<br>**Y** (isAttachMultipart=true) | | 從 /event-mgmt/get-upload-url 取得的 uploadId
isThumbnailMultipart | boolean | N | | 縮圖上傳時是否分塊上傳,預設為 false
thumbnailTotalPart | int | **N** (isThumbnailMultipart=false)<br>**Y** (isThumbnailMultipart=true) | | 縮圖上傳的總分塊數量,不可小於2
thumbnailUploadId | string | **N** (isThumbnailMultipart=false)<br>**Y** (isThumbnailMultipart=true) | | 從 /event-mgmt/get-upload-url 取得的 uploadId
rewardTaskId | string | N | | 綁定點數任務id
notificationTitle | string | N | | 活動推播標題
givePointsTiming | string | Y | | 活動贈點時機, 01:一般, 02:簽到/退, 03:註冊
```javascript
{
"title": "活動11",
"content": "Disney+ 上線囉, 還不快訂起來~~",
"isSingleDay": false,
"eventStartTime": 1638316800000,
"eventEndTime": 1639094400000,
"thumbnailObjectKey": "event/thumbnail/98386d85-592e-4e7d-80f3-0e22a389ff65.png",
"attachType": "URL",
"attachObjectKey": "https://www.google.com",
"attendeeLimit": -1,
"isRegister": true,
"regStartDate": 1637193600000,
"regEndDate": 1639094400000,
"isSign": true,
"rewardTaskId": "b3099f19-d155-4a08-a672-3e48c485e648",
"launchStatus": "NONE",
"isThumbnailMultipart": false,
"thumbnailTotalPart": null,
"thumbnailUploadId": null,
"isAttachMultipart": false,
"attachTotalPart": null,
"attachUploadId": null,
"notificationTitle":"現在訂閱享限時優惠!",
"givePointsTiming": "01"
}
```
#### Response
欄位 | 型態 | 說明
--- | --- | ---
id | string | 活動id
tenantId | string | 租戶id
title | string | 活動標題
content | string | 活動內容
isSingleDay | boolean | 是否為單日活動, true: 單日活動, false: 活動期間
eventStartTime | timestamp | 活動開始日期時間
eventEndTime | timestamp | 活動結束日期時間
thumbnailObjectKey | string | storage中的縮圖objectKey
attachType | string | 附件類型, NONE:無, URL:連結, FILE:檔案
attachObjectKey | string | attachType為FILE時, 表示storage 中的 objectKey, attachType為URL時, 表示連結的網址
attendeeLimit | int | 活動報名人數限制, -1:表示無限制
isRegister | boolean | 活動是否需要報名, true:需要報名, false:不需報名
regStartDate | date | 活動報名開始日期
regEndDate | date | 活動報名結束日期
isSign | boolean | 活動是否需要簽到簽退, true:需要簽到簽退, false:不需簽到簽退
launchStatus | string | 活動發佈狀態, NONE:未上架, ON:上架, OFF:下架
launchOnDate | date | 活動上架日期
launchOffDate | date | 活動下架日期
status | string | 活動狀態, NONE:未上架, ON:未開始, GOING:進行中, FINISH:已結束, OFF: 已下架
createTime | timestamp | 建立時間
updateTime | timestamp | 最後更新時間
rewardTaskId | string | 綁定點數任務id
notificationTitle | string | 活動推播標題
isShow | boolean | 顯示控制, true:顯示, false: 隱藏
givePointsTiming | string | 活動贈點時機, 01:一般, 02:簽到/退, 03:註冊
```javascript
// HttpStatus:422, 活動任務不存在
{
"errorMsg": "SERVICE_ERROR.EVENT_REWARD_TASK_NOT_EXIST",
"httpCode": 422
}
// HttpStatus:422, 活動任務必須使用簽到
{
"errorMsg": "SERVICE_ERROR.EVENT_REWARD_TASK_MUST_SIGN_IN",
"httpCode": 422
}
// HttpStatus:422, 活動任務未啟用
{
"errorMsg": "SERVICE_ERROR.EVENT_REWARD_TASK_NOT_ENABLED",
"httpCode": 422
}
// HttpStatus:422, 活動任務非簽到/退任務
{
"errorMsg": "SERVICE_ERROR.EVENT_REWARD_TASK_NOT_EVENT_SIGN_IN_TASK",
"httpCode": 422
}
// HttpStatus:422, 活動任務非註冊任務
{
"errorMsg": "SERVICE_ERROR.EVENT_REWARD_TASK_NOT_EVENT_REGISTER_TASK",
"httpCode": 422
}
// HttpStatus:200
{
"httpCode": 200,
"result": {
"data": {
"id": "0f2d9610-ff5c-4601-82fa-5fa235266a21",
"tenantId": "bf47bd9c-4364-4086-946d-9fd191d93dda",
"title": "活動11",
"content": "Disney+ 上線囉, 還不快訂起來~~",
"isSingleDay": false,
"eventStartTime": 1638288000000,
"eventEndTime": 1639065600000,
"thumbnailObjectKey": "event/thumbnail/98386d85-592e-4e7d-80f3-0e22a389ff65.png",
"attachType": "URL",
"attachObjectKey": "https://www.google.com",
"attendeeLimit": -1,
"isRegister": true,
"regStartDate": 1637164800000,
"regEndDate": 1639065600000,
"isSign": true,
"launchStatus": "NONE",
"status": "NONE",
"createTime": 1637269086387,
"updateTime": 1637269086387,
"creator": "04398e47-e702-4290-a1c1-c4931404840e",
"rewardTaskId": "b3099f19-d155-4a08-a672-3e48c485e648",
"notificationTitle":"現在訂閱享限時優惠!",
"isShow": true,
"givePointsTiming": "01"
}
}
}
```
## 編輯活動
```url
POST /event-mgmt/update
```
* 目前開放活動可以綁定點數任務, 限該租戶下的點數任務
* 點數任務有2種類型, 依taskType區分, "EVENT_SIGN_IN"為簽到/退任務, "EVENT_REGISTER"為註冊任務
* 目前綁定點數任務時且活動贈點時機為02 簽到/退時, 需啟用簽到/簽退
* 有綁定簽到/退點數任務時, App User簽到時只會給予一次點數
* 活動贈點時機為01 註冊時, 該活動不會顯示在AppUser端
* 使用者掃碼新增為企業客戶會員時, 會檢查該企客是否有註冊贈點的活動任務可以贈點
#### Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
id | string | Y | | 活動id
title | string | Y | | 活動標題, 限制最多30字
content | string | Y | | 活動內容, 限制最多500字
isSingleDay | boolean | Y | | 是否為單日活動, true: 單日活動, false:活動期間
eventStartTime | timestamp | Y | | 活動開始日期時間
eventEndTime | timestamp | Y | | 活動結束日期時間
thumbnailObjectKey | string | Y | | 縮圖objectKey, 先取得縮圖上傳網址並上傳成功,取其 objectKey。
attachType | string | Y | | 附件類型, NONE:無, URL:連結, FILE:檔案
attachObjectKey | string | **Y**(attachType= URL/FILE) | | 若attachType為FILE, 先取得上傳網址並上傳成功,取其 objectKey。若attachType為URL則直接存放URL網址
attendeeLimit | int | Y | | 報名人數限制, -1 表示無限制
isRegister | boolean | Y | | 是否需要報名, true: 需要報名, false:不需報名
regStartDate | timestamp | **Y**(isRegister=true) | | 報名開始時間
regEndDate | timestamp | **Y**(isRegister=true) | | 報名結束時間
isSign | boolean | Y | | 是否需要簽到簽退, true: 需要簽到簽退, false:不需簽到簽退
launchStatus | string | Y | | 活動發佈狀態, NONE:未上架, ON:上架, OFF:下架
isAttachMultipart | boolean | N | | attachType=FILE時, 上傳的檔案是否分塊上傳,預設為 false
attachTotalPart | int | **N** (isAttachMultipart=false)<br>**Y** (isAttachMultipart=true) | | 總分塊數量,不可小於2
attachUploadId | string | **N** (isAttachMultipart=false)<br>**Y** (isAttachMultipart=true) | | 從 /event-mgmt/get-upload-url 取得的 uploadId
isThumbnailMultipart | boolean | N | | 縮圖上傳時是否分塊上傳,預設為 false
thumbnailTotalPart | int | **N** (isThumbnailMultipart=false)<br>**Y** (isThumbnailMultipart=true) | | 縮圖上傳的總分塊數量,不可小於2
thumbnailUploadId | string | **N** (isThumbnailMultipart=false)<br>**Y** (isThumbnailMultipart=true) | | 從 /event-mgmt/get-upload-url 取得的 uploadId
rewardTaskId | string | N | | 綁定點數任務id
notificationTitle | string | N | | 活動推播標題
givePointsTiming | string | Y | | 活動贈點時機, 01:一般, 02:簽到/退, 03:註冊
```javascript
{
"id": "ef353072-c154-4475-b988-472e89f87a6d",
"title": "活動11",
"content": "Disney+ 上線囉, 還不快訂起來~~",
"isSingleDay": false,
"eventStartTime": 1638316800000,
"eventEndTime": 1639094400000,
"thumbnailObjectKey": "event/thumbnail/98386d85-592e-4e7d-80f3-0e22a389ff65.png",
"attachType": "URL",
"attachObjectKey": "https://www.google.com",
"attendeeLimit": -1,
"isRegister": true,
"regStartDate": 1637193600000,
"regEndDate": 1639094400000,
"isSign": true,
"rewardTaskId": "b3099f19-d155-4a08-a672-3e48c485e648",
"launchStatus": "NONE",
"isCoverMultipart": false,
"coverTotalPart": null,
"coverUploadId": null,
"isAttachMultipart": false,
"attachTotalPart": null,
"attachUploadId": null,
"notificationTitle":"現在訂閱享限時優惠!",
"givePointsTiming": "01"
}
```
#### Response
欄位 | 型態 | 說明
--- | --- | ---
id | string | 活動id
tenantId | string | 租戶id
title | string | 活動標題
content | string | 活動內容
isSingleDay | boolean | 是否為單日活動, true: 單日活動, false: 活動期間
eventStartTime | timestamp | 活動開始日期時間
eventEndTime | timestamp | 活動結束日期時間
thumbnailObjectKey | string | storage中的縮圖objectKey
attachType | string | 附件類型, NONE:無, URL:連結, FILE:檔案
attachObjectKey | string | attachType為FILE時, 表示storage 中的 objectKey, attachType為URL時, 表示連結的網址
attendeeLimit | int | 活動報名人數限制, -1:表示無限制
isRegister | boolean | 活動是否需要報名, true:需要報名, false:不需報名
regStartDate | date | 活動報名開始日期
regEndDate | date | 活動報名結束日期
isSign | boolean | 活動是否需要簽到簽退, true:需要簽到簽退, false:不需簽到簽退
launchStatus | string | 活動發佈狀態, NONE:未上架, ON:上架, OFF:下架
launchOnDate | date | 活動上架日期
launchOffDate | date | 活動下架日期
status | string | 活動狀態, NONE:未上架, ON:未開始, GOING:進行中, FINISH:已結束, OFF: 已下架
createTime | timestamp | 建立時間
updateTime | timestamp | 最後更新時間
rewardTaskId | string | 綁定點數任務id
notificationTitle | string | 活動推播標題
isShow | boolean | 顯示控制, true:顯示, false: 隱藏
givePointsTiming | string | 活動贈點時機, 01:一般, 02:簽到/退, 03:註冊
```javascript
// HttpStatus:400, 資料不存在
{
"errorMsg": "API_ERROR.NOT_EXIST",
"httpCode": 400
}
// HttpStatus:422, 不允許編輯已結束或已下架活動
{
"errorMsg": "SERVICE_ERROR.EVENT_MGMT_UPDATE_FINISH_OFF_EVENT_NOT_ALLOWED",
"httpCode": 422
}
// HttpStatus:422, 活動任務不存在
{
"errorMsg": "SERVICE_ERROR.EVENT_REWARD_TASK_NOT_EXIST",
"httpCode": 422
}
// HttpStatus:422, 活動任務必須使用簽到
{
"errorMsg": "SERVICE_ERROR.EVENT_REWARD_TASK_MUST_SIGN_IN",
"httpCode": 422
}
// HttpStatus:422, 活動任務未啟用
{
"errorMsg": "SERVICE_ERROR.EVENT_REWARD_TASK_NOT_ENABLED",
"httpCode": 422
}
// HttpStatus:422, 活動任務非簽到/退任務
{
"errorMsg": "SERVICE_ERROR.EVENT_REWARD_TASK_NOT_EVENT_SIGN_IN_TASK",
"httpCode": 422
}
// HttpStatus:422, 活動任務非註冊任務
{
"errorMsg": "SERVICE_ERROR.EVENT_REWARD_TASK_NOT_EVENT_REGISTER_TASK",
"httpCode": 422
}
// HttpStatus:200
{
"httpCode": 200,
"result": {
"data": {
"id": "0f2d9610-ff5c-4601-82fa-5fa235266a21",
"tenantId": "bf47bd9c-4364-4086-946d-9fd191d93dda",
"title": "活動11",
"content": "Disney+ 上線囉, 還不快訂起來~~",
"isSingleDay": false,
"eventStartTime": 1638288000000,
"eventEndTime": 1639065600000,
"thumbnailObjectKey": "event/thumbnail/98386d85-592e-4e7d-80f3-0e22a389ff65.png",
"attachType": "URL",
"attachObjectKey": "https://www.google.com",
"attendeeLimit": -1,
"isRegister": true,
"regStartDate": 1637164800000,
"regEndDate": 1639065600000,
"isSign": true,
"launchStatus": "NONE",
"status": "NONE",
"createTime": 1637269086387,
"updateTime": 1637269086387,
"creator": "04398e47-e702-4290-a1c1-c4931404840e",
"rewardTaskId": "b3099f19-d155-4a08-a672-3e48c485e648",
"notificationTitle":"現在訂閱享限時優惠!",
"isShow": true,
"givePointsTiming": "01"
}
}
}
```
## 編輯活動狀態
```url
POST /event-mgmt/update-status
```
* 只允許未上架活動變更為上架, 或已上架活動變更為下架
#### Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
id | string | Y | | 活動id
launchStatus | string | Y | | 活動發佈狀態, ON:上架, OFF:下架
```javascript
{
"id": "ef353072-c154-4475-b988-472e89f87a6d",
"launchStatus": "ON"
}
```
#### Response
欄位 | 型態 | 說明
--- | --- | ---
id | string | 活動id
tenantId | string | 租戶id
title | string | 活動標題
content | string | 活動內容
isSingleDay | boolean | 是否為單日活動, true: 單日活動, false: 活動期間
eventStartTime | timestamp | 活動開始日期時間
eventEndTime | timestamp | 活動結束日期時間
thumbnailObjectKey | string | storage中的縮圖objectKey
attachType | string | 附件類型, NONE:無, URL:連結, FILE:檔案
attachObjectKey | string | attachType為FILE時, 表示storage 中的 objectKey, attachType為URL時, 表示連結的網址
attendeeLimit | int | 活動報名人數限制, -1:表示無限制
isRegister | boolean | 活動是否需要報名, true:需要報名, false:不需報名
regStartDate | date | 活動報名開始日期
regEndDate | date | 活動報名結束日期
isSign | boolean | 活動是否需要簽到簽退, true:需要簽到簽退, false:不需簽到簽退
launchStatus | string | 活動發佈狀態, NONE:未上架, ON:上架, OFF:下架
launchOnDate | date | 活動上架日期
launchOffDate | date | 活動下架日期
status | string | 活動狀態, NONE:未上架, ON:未開始, GOING:進行中, FINISH:已結束, OFF: 已下架
createTime | timestamp | 建立時間
updateTime | timestamp | 最後更新時間
rewardTaskId | string | 綁定點數任務id
notificationTitle | string | 活動推播標題
isShow | boolean | 顯示控制, true:顯示, false: 隱藏
givePointsTiming | string | 活動贈點時機, 01:一般, 02:簽到/退, 03:註冊
```javascript
// HttpStatus:400, 資料不存在
{
"errorMsg": "API_ERROR.NOT_EXIST",
"httpCode": 400
}
// HttpStatus:422, 不允許編輯已結束或已下架活動
{
"errorMsg": "SERVICE_ERROR.EVENT_MGMT_UPDATE_FINISH_OFF_EVENT_NOT_ALLOWED",
"httpCode": 422
}
// HttpStatus:200
{
"httpCode": 200,
"result": {
"data": {
"id": "0f2d9610-ff5c-4601-82fa-5fa235266a21",
"tenantId": "bf47bd9c-4364-4086-946d-9fd191d93dda",
"title": "活動11",
"content": "Disney+ 上線囉, 還不快訂起來~~",
"isSingleDay": false,
"eventStartTime": 1638288000000,
"eventEndTime": 1639065600000,
"thumbnailObjectKey": "event/thumbnail/98386d85-592e-4e7d-80f3-0e22a389ff65.png",
"attachType": "URL",
"attachObjectKey": "https://www.google.com",
"attendeeLimit": -1,
"isRegister": true,
"regStartDate": 1637164800000,
"regEndDate": 1639065600000,
"isSign": true,
"launchStatus": "NONE",
"status": "NONE",
"createTime": 1637269086387,
"updateTime": 1637269086387,
"creator": "04398e47-e702-4290-a1c1-c4931404840e",
"notificationTitle":null,
"isShow": true,
"givePointsTiming": "01"
}
}
}
```
## 編輯活動是否顯示
```url
POST /event-mgmt/update-show
```
* 控制活動是否要顯示在後台管理列表
#### Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
id | string | Y | | 活動id
isShow | boolean | | | 顯示控制, true:顯示, false: 隱藏
```javascript
{
"id": "ef353072-c154-4475-b988-472e89f87a6d",
"isShow": true
}
```
#### Response
欄位 | 型態 | 說明
--- | --- | ---
id | string | 活動id
tenantId | string | 租戶id
title | string | 活動標題
content | string | 活動內容
isSingleDay | boolean | 是否為單日活動, true: 單日活動, false: 活動期間
eventStartTime | timestamp | 活動開始日期時間
eventEndTime | timestamp | 活動結束日期時間
thumbnailObjectKey | string | storage中的縮圖objectKey
attachType | string | 附件類型, NONE:無, URL:連結, FILE:檔案
attachObjectKey | string | attachType為FILE時, 表示storage 中的 objectKey, attachType為URL時, 表示連結的網址
attendeeLimit | int | 活動報名人數限制, -1:表示無限制
isRegister | boolean | 活動是否需要報名, true:需要報名, false:不需報名
regStartDate | date | 活動報名開始日期
regEndDate | date | 活動報名結束日期
isSign | boolean | 活動是否需要簽到簽退, true:需要簽到簽退, false:不需簽到簽退
launchStatus | string | 活動發佈狀態, NONE:未上架, ON:上架, OFF:下架
launchOnDate | date | 活動上架日期
launchOffDate | date | 活動下架日期
status | string | 活動狀態, NONE:未上架, ON:未開始, GOING:進行中, FINISH:已結束, OFF: 已下架
createTime | timestamp | 建立時間
updateTime | timestamp | 最後更新時間
rewardTaskId | string | 綁定點數任務id
notificationTitle | string | 活動推播標題
isShow | boolean | 顯示控制, true:顯示, false: 隱藏
givePointsTiming | string | 活動贈點時機, 01:一般, 02:簽到/退, 03:註冊
```javascript
// HttpStatus:400, 資料不存在
{
"errorMsg": "API_ERROR.NOT_EXIST",
"httpCode": 400
}
// HttpStatus:200
{
"httpCode": 200,
"result": {
"data": {
"id": "0f2d9610-ff5c-4601-82fa-5fa235266a21",
"tenantId": "bf47bd9c-4364-4086-946d-9fd191d93dda",
"title": "活動11",
"content": "Disney+ 上線囉, 還不快訂起來~~",
"isSingleDay": false,
"eventStartTime": 1638288000000,
"eventEndTime": 1639065600000,
"thumbnailObjectKey": "event/thumbnail/98386d85-592e-4e7d-80f3-0e22a389ff65.png",
"attachType": "URL",
"attachObjectKey": "https://www.google.com",
"attendeeLimit": -1,
"isRegister": true,
"regStartDate": 1637164800000,
"regEndDate": 1639065600000,
"isSign": true,
"launchStatus": "NONE",
"status": "NONE",
"createTime": 1637269086387,
"updateTime": 1637269086387,
"creator": "04398e47-e702-4290-a1c1-c4931404840e",
"notificationTitle":null,
"isShow": true,
"givePointsTiming": "01"
}
}
}
```
## 刪除活動
```url
POST /event-mgmt/delete
```
#### Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
id | string | Y | | 活動id
```javascript
{
"id": "e45c15dd-60e5-4320-9974-0f8ebc8a6147"
}
```
#### Response
欄位 | 型態 | 說明
--- | --- | ---
count | int | 刪除筆數, > 0 表示成功刪除
```javascript
// HttpStatus:400, 資料不存在
{
"errorMsg": "API_ERROR.NOT_EXIST",
"httpCode": 400
}
// HttpStatus:422, 不允許刪除活動(上架中, 已下架)
{
"errorMsg": "SERVICE_ERROR.EVENT_MGMT_DELETE_NOT_ALLOWED",
"httpCode": 422
}
// HttpStatus:200
{
"httpCode": 200,
"result": {
"data": {
"count": 1
}
}
}
```
## 列印活動QRCode
```url
POST /event-mgmt/qrcode
```
* 活動有啟用簽到/簽退, 並且活動狀態是"未開始"或"進行中"時, 才能執行此API
* QRCode的內容格式為
health365://event?id=<eventId>
- eventId: 活動id
#### Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
id | string | Y | | 活動id
```javascript
{
"id": "728272a7-e440-40ec-a90b-fd3b49969311"
}
```
#### Response
欄位 | 型態 | 說明
--- | --- | ---
id | string | 活動id
tenantId | string | 租戶id
title | string | 活動標題
eventStartTime | timestamp | 活動開始日期時間
eventEndTime | timestamp | 活動結束日期時間
base64QrCode | string | QRCode base64字串
```javascript
// HttpStatus:400, 資料不存在
{
"errorMsg": "API_ERROR.NOT_EXIST",
"httpCode": 400
}
// HttpStatus:422, 不需簽到/簽退
{
"errorMsg": "SERVICE_ERROR.EVENT_NO_NEED_SIGN",
"httpCode": 422
}
// HttpStatus:422, 不允許執行印QRCode
{
"errorMsg": "SERVICE_ERROR.EVENT_QRCODE_NOT_ALLOWED",
"httpCode": 422
}
// HttpStatus:200
{
"httpCode": 200,
"result": {
"data": {
"id": "728272a7-e440-40ec-a90b-fd3b49969311",
"tenantId": "WMT",
"tenantName": "緯創醫學",
"title": "玩健康~送咖啡 <<台灣醫療科技展會活動>>",
"eventStartTime": 1638374400000,
"eventEndTime": 1638633600000,
"attachUrl": null,
"thumbnailUrl": null,
"base64QrCode": "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FceItpODjZ5T3QssYAELWMACFrCABSxgAQtYwAIWsIAFLGABC1jAAhawgAUsYAELWMACFrCABSxgAQtYwDoOVr+H+lL0e6hfjdW9MZlIeYEFLGABC1jAAhawgAUsYAELWMACFrCABSxgAQtYwAIWsIAFLGABC1jAAhawgAUsYAELWEvB6jfK5AlXH+NWy3Cwa2CBBSxgAQtYwAIWsIAFLGABC1jAAhawgAUsYAELWMACFrCABSxgAQtYwAIWsIAFLGABC1j3gRVpr1tPCMevItJHv28ZsIAFLGABC1jAAhawgAUsYAELWMACFrCABSxgAQtYwAIWsIAFLGABC1jAAhawgAUsYAFrKViR71/dXrceow9WX1sbAgtYwAIWsIAFLGDxBVjAAhawbAgsYAELWMACFrCAxRdgAQtYwAIWsIAFLGABC1jAAhawUmDNnOlLiYzo5Mzf6maE1NXa9o0GFrCABSxgAQtYwAIWsIAFLGABC1jAAhawgAUsYAELWMACFrCABSxgAQtYwAIWsIAFLGCVwTIAp6rxqn5NfXK/RftPO7CABSxgAQtYwAIWsIAFLGABC1jAAhawgAUsYAELWMACFrCABSxgAQtYwAIWsIAFLGABaylYq29o9URFVFotReSdW91RMwMLLGABC1jAAhawgAUsYAELWMACFrCABSxgAQtYwAIWsIAFLGABC1jAAhawgAUsYAELWMDqgxXZ8IUTtVql1b2xWqXy/wrAAhawgAUsYAELWMACFrCABSxgAQtYwAIWsIAFLGABC1jAAhawgAUsYAELWMACFrCABaxJsG5NBOL+bEQ+OXLLkWfpVr6BBSxgAQtYwAIWsIAFLGABC1jAAhawgAUsYAELWMACFrCABSxgAQtYwAIWsIAFLGABC1jHwfpszmrmbv2uSLNF7uvWVU82J7CABSxgAQtYwAIWsIAFLGABC1jAAhawgAUsYAELWMACFrCABSxgAQtYwAIWsIAFLGABqwHWTyORy4sM2+R39a9SeU8d48ENgQUsYCkvsIAFLGABC1jAMlHAAhawgAUs5QUWsIAFLGABC1jAAhawgAUsYAELWMACFrCA1Qer30ORYYt0Xl/bFz4wtz6BwAIWsIAFLGABC1jAAhawgAUsYAELWMACFrCABSxgAQtYwAIWsIAFLGABC1jAAhawgOWEwEqB1b/X1YisrvwL357jNQQWsIAFLGABC1jAAhawgAUsYAELWMACFrCABSxgAQtYwAIWsIAFLGABC1jAAhawgAUsYAEr2Hn9RCof6ajJRPjuv1jAEmABC1jAAhawgAUsYAELWMAClgALWMACFrCABSxgAQtYwAIWsIAFLGABC1jAAhawloIVmcPIzPchfuEJ+yq98BjAAhawgAUsYAELWMACFrCABSxgAQtYwAIWsIAFLGABC1jAAhawgAUsYAELWMACFrCABawyWP2sJnVSwNVjs7qG/fs6Pl/AAhawgAUsYAELWMACFrCABSxgAQtYwAIWsIAFLGABC1jAAhawgAUsYAELWMACFrCABaxJsERETr73SiAiwBIRAZaIAEtEBFgiIsASEWCJiABLRARYIgIsERFgiYgAS0SAJSICLBERYInIjfkF66pEKmxuWToAAAAASUVORK5CYII="
}
}
}
```
## 可綁定點數任務列表
```url
POST /event-mgmt/reward-task-list
```
* 目前只會列出該租戶下可綁定的點數任務
* 點數任務有2種類型, 依taskType區分, "EVENT_SIGN_IN"為簽到/退任務, "EVENT_REGISTER"為註冊任務
#### Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
```javascript
```
#### Response
欄位 | 型態 | 說明
--- | --- | ---
id | string | 點數任務id
taskType | string | 任務類型, EVENT_SIGN_IN: 活動簽到任務, EVENT_REGISTER: 活動註冊任務
name | string | 任務名稱
description | string | 任務說明
points | int | 任務點數
tenantId | string | 租戶id
status | boolean | 任務狀態,
```javascript
// HttpStatus:200
{
"httpCode": 200,
"result": {
"data": [
{
"id": "88573e0e-ac04-4a09-ae06-3e23954804ed",
"taskType": "EVENT_SIGN_IN",
"name": "活動簽到贈點10點",
"description": "活動簽到贈點10點",
"points": 10,
"tenantId": "858b7fbb-3ba0-4d49-9882-c893a1ef07dc",
"status": true
},
...
]
}
}
```
## 活動推播通知
```url
POST /event-mgmt/notify
```
#### Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
id | string | Y | | 活動id
notificationTitle | string | N | |推播通知標題
```javascript
{
"id":"fdf88cf9-d282-4a73-8163-dc8fc6d1bcda",
"notificationTitle": "下雨要幹嘛?"
}
```
#### Response
欄位 | 型態 | 說明
--- | --- | ---
isSuccess | boolean | 推播狀態。true成功,false失敗
population | Integer | 推播數
```javascript
// HttpStatus:200 推播成功
{
"httpCode": 200,
"result": {
"data": {
"isSuccess": true,
"population": 2
}
}
}
// HttpStatus:422 活動狀態不允許
{
"errorMsg": "SERVICE_ERROR.EVENT_MGMT_STATUS_NOT_ALLOWED",
"httpCode": 422
}
// HttpStatus:422 推播標題不能為空
{
"errorMsg": "SERVICE_ERROR.EVENT_MGMT_TITLE_EMPTY_NOT_ALLOWED",
"httpCode": 422
}
```
## 活動統計
```url
POST /event-mgmt/event/statistics
```
#### Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
eventId | string | Y | | 活動id
```javascript
{
"eventId": "7d8d607c-47c7-449d-aaaa-dbdaf5a4636f"
}
```
#### Response
欄位 | 型態 | 說明
--- | --- | ---
eventInfo | json | 活動info json
reachInfo | json | 活動曝光分析json
clickInfo | json | 活動點擊分析json
registerInfo | json | 活動報名分析json, 活動若不需報名, 則為null
signInInfo | json | 活動參與分析json, 活動若不需簽到, 則為null
* eventInfo (活動info json)
欄位 | 型態 | 說明
--- | --- | ---
id | string | 活動id
tenantId | string | 租戶id
title | string | 活動標題
content | string | 活動內容
isSingleDay | boolean | 是否為單日活動, true: 單日活動, false: 活動期間
eventStartTime | timestamp | 活動開始日期時間
eventEndTime | timestamp | 活動結束日期時間
thumbnailObjectKey | string | storage中的縮圖objectKey
attachType | string | 附件類型, NONE:無, URL:連結, FILE:檔案
attachObjectKey | string | attachType為FILE時, 表示storage 中的 objectKey, attachType為URL時, 表示連結的網址
attendeeLimit | int | 活動報名人數限制, -1:表示無限制
isRegister | boolean | 活動是否需要報名, true:需要報名, false:不需報名
regStartDate | date | 活動報名開始日期
regEndDate | date | 活動報名結束日期
isSign | boolean | 活動是否需要簽到簽退, true:需要簽到簽退, false:不需簽到簽退
launchStatus | string | 活動發佈狀態, NONE:未上架, ON:上架, OFF:下架
launchOnDate | date | 活動上架日期
launchOffDate | date | 活動下架日期
status | string | 活動狀態, NONE:未上架, ON:未開始, GOING:進行中, FINISH:已結束, OFF: 已下架
thumbnailUrl | string | 可 download 的 縮圖url, 時效 3600 秒
attachUrl | string | attachType為FILE時,可 download 的 url, 時效 3600 秒, attachType為URL時, 表示連結的網址
registerCount | int | 報名人數
signInCount | int | 簽到人數
cancelCount | int | 取消報名人數
cancelTimes | int | 取消報名人次
notificationTitle | string | 活動推播標題
* reachInfo (活動曝光分析json)
欄位 | 型態 | 說明
--- | --- | ---
totalCount | int | 總曝光人數
totalTimes | int | 總曝光人次
totalMaleCount | int | 總男性曝光人數
totalFemaleCount | int | 總女性曝光人數
totalMaleTimes | int | 總男性曝光人次
totalFemaleTimes | int | 總女性曝光人次
totalMaleCountRate | double | 總男性人數佔比
totalFemaleCountRate | double | 總女性人數佔比
totalMaleTimesRate | double | 總男性人次佔比
totalFemaleTimesRate | double | 總女性人次佔比
details | json array | 年齡統計 json array
* clickInfo (活動點擊分析json)
欄位 | 型態 | 說明
--- | --- | ---
totalCount | int | 總點擊人數
totalTimes | int | 總點擊人次
totalMaleCount | int | 總男性點擊人數
totalFemaleCount | int | 總女性點擊人數
totalMaleTimes | int | 總男性點擊人次
totalFemaleTimes | int | 總女性點擊人次
totalMaleCountRate | double | 總男性人數佔比
totalFemaleCountRate | double | 總女性人數佔比
totalMaleTimesRate | double | 總男性人次佔比
totalFemaleTimesRate | double | 總女性人次佔比
clickRate | double | 點擊率, 點擊率 = 點擊人數/曝光人數
details | json array | 年齡統計 json array
* registerInfo (活動報名分析json)
欄位 | 型態 | 說明
--- | --- | ---
totalCount | int | 總報名人數
totalMaleCount | int | 總男性報名人數
totalFemaleCount | int | 總女性報名人數
totalMaleCountRate | double | 總男性人數佔比
totalFemaleCountRate | double | 總女性人數佔比
registerRate | double | 報名率, 報名率 = 已報名人數/活動人數, **有限制活動人數時,才會計算報名率**
details | json array | 年齡統計 json array
* signInInfo (活動參與分析json)
欄位 | 型態 | 說明
--- | --- | ---
totalCount | int | 總報到人數
totalMaleCount | int | 總男性報到人數
totalFemaleCount | int | 總女性報到人數
totalMaleCountRate | double | 總男性人數佔比
totalFemaleCountRate | double | 總女性人數佔比
signInRate | double | 報到率, 報到率 = 已報到人數/報名人數, **有限制活動人數以及需要報名及簽到時,才會計算報到率**
details | json array | 年齡統計 json array
* details (json array of reachInfo, clickInfo, registerInfo, signInInfo)
欄位 | 型態 | 說明
--- | --- | ---
ageLevel | string | 年齡level
label | string | 年齡區間顯示(標X軸)
maleCount | int | 男性人數
femaleCount | int | 女性人數
maleTimes | int | 男性人次
femaleTimes | int | 女性人次
```javascript
{
"httpCode": 200,
"result": {
"data": {
"eventInfo": {
"id": "7d8d607c-47c7-449d-aaaa-dbdaf5a4636f",
"tenantId": "WMT",
"title": "緯創人日行5000步",
"content": "活動報名\n請於11/25(四)前上福利網「活動專區」報名。\n\n特別說明\n1. WIH DL同仁無法登入福利網者請與Kate Wang#31554聯繫報名參加。(派遣同仁恕無法參加本活動)\n2. 曾經報名本活動者,無須重新報名,系統將會直接加入參加名單。\n\n活動APP說明\n本活動將透過活動APP進行,自動連結個人手機內建計步功能,安裝方式8/30另行通知。\n\n手機最低版本需求:iPhone「iOS 11.2以上版本」、Android「5.0 以上版本」\n活動APP資料來源須同步手機內建計步介面:iPhone「健康」、Android「Google Fit」\n※因大陸限制Google Fit服務,使用華為、小米手機無法參與本活動※\n\n特別說明\n1. 每月達標禮「7-11商品卡」為有價證券,依規定須列入個人110年度其他所得。\n2. 依機會中獎稅規定,彩品價值20,000元以上中獎人須繳交機會中獎稅稅額。\n (未滿20,000元之彩品金額,依規定須列入個人110年度其他所得。)\n3. 每月達標皆可獲得一組摸彩序號,達標月份越多中獎機會越高。\n\n活動洽詢\n福委會服務專線18888按4",
"isSingleDay": false,
"eventStartTime": 1635696000000,
"eventEndTime": 1640880000000,
"thumbnailObjectKey": "event/thumbnail/b4f4c568-21e1-446e-966b-76a5d8e61a36.jpg",
"attachType": "URL",
"attachObjectKey": "https://portal.wistron.com/weip/web/EIP_F_1001D.aspx?msg_center_pk=5140",
"attendeeLimit": 100,
"isRegister": true,
"regStartDate": 1635696000000,
"regEndDate": 1640880000000,
"isSign": true,
"launchStatus": "ON",
"launchOnDate": 1637251200000,
"status": "FINISH",
"createTime": 1637285929402,
"updateTime": 1641227400013,
"attachUrl": null,
"thumbnailUrl": "http://content-service/swift/v1/event/thumbnail/b4f4c568-21e1-446e-966b-76a5d8e61a36.jpg",
"registerCount": 2,
"signInCount": 2,
"cancelCount": 1,
"cancelTimes": 1
},
"reachInfo": {
"totalCount": 0,
"totalTimes": 0,
"totalMaleCount": 0,
"totalFemaleCount": 0,
"totalMaleTimes": 0,
"totalFemaleTimes": 0,
"totalMaleCountRate": 0.0,
"totalFemaleCountRate": 0.0,
"totalMaleTimesRate": 0.0,
"totalFemaleTimesRate": 0.0,
"details": [
{
"ageLevel": "level1",
"label": "30歲以下",
"maleCount": 0,
"femaleCount": 0,
"maleTimes": 0,
"femaleTimes": 0
},
{
"ageLevel": "level2",
"label": "30-39歲",
"maleCount": 0,
"femaleCount": 0,
"maleTimes": 0,
"femaleTimes": 0
},
{
"ageLevel": "level3",
"label": "40-49歲",
"maleCount": 0,
"femaleCount": 0,
"maleTimes": 0,
"femaleTimes": 0
},
{
"ageLevel": "level4",
"label": "50-59歲",
"maleCount": 0,
"femaleCount": 0,
"maleTimes": 0,
"femaleTimes": 0
},
{
"ageLevel": "level5",
"label": "60歲以上",
"maleCount": 0,
"femaleCount": 0,
"maleTimes": 0,
"femaleTimes": 0
}
]
},
"clickInfo": {
"totalCount": 0,
"totalTimes": 0,
"totalMaleCount": 0,
"totalFemaleCount": 0,
"totalMaleTimes": 0,
"totalFemaleTimes": 0,
"totalMaleCountRate": 0.0,
"totalFemaleCountRate": 0.0,
"totalMaleTimesRate": 0.0,
"totalFemaleTimesRate": 0.0,
"clickRate": 0.0,
"details": [
{
"ageLevel": "level1",
"label": "30歲以下",
"maleCount": 0,
"femaleCount": 0,
"maleTimes": 0,
"femaleTimes": 0
},
{
"ageLevel": "level2",
"label": "30-39歲",
"maleCount": 0,
"femaleCount": 0,
"maleTimes": 0,
"femaleTimes": 0
},
{
"ageLevel": "level3",
"label": "40-49歲",
"maleCount": 0,
"femaleCount": 0,
"maleTimes": 0,
"femaleTimes": 0
},
{
"ageLevel": "level4",
"label": "50-59歲",
"maleCount": 0,
"femaleCount": 0,
"maleTimes": 0,
"femaleTimes": 0
},
{
"ageLevel": "level5",
"label": "60歲以上",
"maleCount": 0,
"femaleCount": 0,
"maleTimes": 0,
"femaleTimes": 0
}
]
},
"registerInfo": {
"totalCount": 2,
"totalMaleCount": 2,
"totalFemaleCount": 0,
"totalMaleCountRate": 100.0,
"totalFemaleCountRate": 0.0,
"details": [
{
"ageLevel": "level1",
"label": "30歲以下",
"maleCount": 1,
"femaleCount": 0
},
{
"ageLevel": "level2",
"label": "30-39歲",
"maleCount": 1,
"femaleCount": 0
},
{
"ageLevel": "level3",
"label": "40-49歲",
"maleCount": 0,
"femaleCount": 0
},
{
"ageLevel": "level4",
"label": "50-59歲",
"maleCount": 0,
"femaleCount": 0
},
{
"ageLevel": "level5",
"label": "60歲以上",
"maleCount": 0,
"femaleCount": 0
}
],
"registerRate": 2.0
},
"signInInfo": {
"totalCount": 2,
"totalMaleCount": 2,
"totalFemaleCount": 0,
"totalMaleCountRate": 100.0,
"totalFemaleCountRate": 0.0,
"details": [
{
"ageLevel": "level1",
"label": "30歲以下",
"maleCount": 1,
"femaleCount": 0
},
{
"ageLevel": "level2",
"label": "30-39歲",
"maleCount": 1,
"femaleCount": 0
},
{
"ageLevel": "level3",
"label": "40-49歲",
"maleCount": 0,
"femaleCount": 0
},
{
"ageLevel": "level4",
"label": "50-59歲",
"maleCount": 0,
"femaleCount": 0
},
{
"ageLevel": "level5",
"label": "60歲以上",
"maleCount": 0,
"femaleCount": 0
}
],
"signInRate": 100.0
}
}
}
}
```
## 活動摘要
```url
GET /event/summary
```
#### Request
#### Response
欄位 | 型態 | 說明
--- | --- | ---
registeredEventCount | int | 已報名活動數
```javascript
{
"httpCode": 200,
"result": {
"data": {
"registeredEventCount": 1
}
}
}
```
## 取得活動列表
```url
POST /event/list
```
#### Request
* query(查詢條件json)
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
listType | string | Y | | 查詢列表類別, ALL:全部, REGISTRATION:可報名, REGISTERED:已報名
* pagination(分頁json)
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
current | int | | 1 | 當前頁數
pageSize | int | | 10 | 每頁結果數量,-1 為顯示所有
* sorter(排序json), 預設是用更新時間降序排列
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
field | string | | eventStartTime | 排序欄位,可排序欄位有updateTime, eventStartTime, eventEndTime, status
order | string | | desc | 升序或降序
```javascript
{
"query": {
"listType": "ALL"
} ,
"pagination": {
"current": 1,
"pageSize": -1
},
"sorter": {
"field": "eventStartTime",
"order": "desc"
}
}
```
#### Response
欄位 | 型態 | 說明
--- | --- | ---
id | string | 活動id
tenantId | string | 租戶id
tenantName | string | 租戶名稱
title | string | 活動標題
content | string | 活動內容
isSingleDay | boolean | 是否為單日活動, true: 單日活動, false: 活動期間
eventStartTime | timestamp | 活動開始日期時間
eventEndTime | timestamp | 活動結束日期時間
thumbnailObjectKey | string | storage中的縮圖objectKey
attachType | string | 附件類型, NONE:無, URL:連結, FILE:檔案
attachObjectKey | string | attachType為FILE時, 表示storage 中的 objectKey, attachType為URL時, 表示連結的網址
attendeeLimit | int | 活動報名人數限制, -1:表示無限制
isRegister | boolean | 活動是否需要報名, true:需要報名, false:不需報名
regStartDate | date | 活動報名開始日期
regEndDate | date | 活動報名結束日期
isSign | boolean | 活動是否需要簽到簽退, true:需要簽到簽退, false:不需簽到簽退
status | string | 活動狀態, NONE:未上架, ON:未開始, GOING:進行中, FINISH:已結束, OFF: 已下架
thumbnailUrl | string | 可 download 的 縮圖url, 時效 3600 秒
attachUrl | string | attachType為FILE時,可 download 的 url, 時效 3600 秒, attachType為URL時, 表示連結的網址
notificationTitle | string | 活動推播標題
```javascript
{
"httpCode": 200,
"result": {
"data": [
{
"id": "ef353072-c154-4475-b988-472e89f87a6d",
"tenantId": "WMT",
"tenantName": "緯創醫學",
"title": "活動11",
"content": "Disney+ 上線囉, 還不快訂起來~~",
"isSingleDay": false,
"eventStartTime": 1638288000000,
"eventEndTime": 1639065600000,
"thumbnailObjectKey": "event/thumbnail/98386d85-592e-4e7d-80f3-0e22a389ff65.png",
"attachType": "URL",
"attachObjectKey": "https://www.google.com",
"attendeeLimit": -1,
"isRegister": true,
"regStartDate": 1637164800000,
"regEndDate": 1639065600000,
"isSign": true,
"status": "ON",
"createTime": 1637164800000,
"updateTime": 1637164800000,
"attachUrl": null,
"thumbnailUrl": "http://10.31.49.126/swift/v1/AUTH_test/kmuh/event/thumbnail/98386d85-592e-4e7d-80f3-0e22a389ff65.png",
"notificationTitle":null
}
]
}
}
```
## 取得活動明細
```url
POST /event/info
```
#### Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
eventId | string | Y | | 活動id
```javascript
{
"eventId": "ef353072-c154-4475-b988-472e89f87a6d"
}
```
#### Response
欄位 | 型態 | 說明
--- | --- | ---
id | string | 活動id
tenantId | string | 租戶id
tenantName | string | 租戶名稱
title | string | 活動標題
content | string | 活動內容
isSingleDay | boolean | 是否為單日活動, true: 單日活動, false: 活動期間
eventStartTime | timestamp | 活動開始日期時間
eventEndTime | timestamp | 活動結束日期時間
thumbnailObjectKey | string | storage中的縮圖objectKey
attachType | string | 附件類型, NONE:無, URL:連結, FILE:檔案
attachObjectKey | string | attachType為FILE時, 表示storage 中的 objectKey, attachType為URL時, 表示連結的網址
attendeeLimit | int | 活動報名人數限制, -1:表示無限制
isRegister | boolean | 活動是否需要報名, true:需要報名, false:不需報名
regStartDate | date | 活動報名開始日期
regEndDate | date | 活動報名結束日期
isSign | boolean | 活動是否需要簽到簽退, true:需要簽到簽退, false:不需簽到簽退
status | string | 活動狀態, NONE:未上架, ON:未開始, GOING:進行中, FINISH:已結束, OFF: 已下架
thumbnailUrl | string | 可 download 的 縮圖url, 時效 3600 秒
attachUrl | string | attachType為FILE時,可 download 的 url, 時效 3600 秒, attachType為URL時, 表示連結的網址
eventUserLogList | json array | 活動記錄 json array
hadRegistered | boolean | 是否已經報名, true: 已報名, false: 未報名
hadSignIn | boolean | 是否已經簽到, true: 已簽到, false: 未簽到
registeredCount | int | 已報名人數
notificationTitle | string | 活動推播標題
* json of eventUserLogList
欄位 | 型態 | 說明
--- | --- | ---
id | string | 活動記錄id
householdMemberId | string | householdMemberId
eventId | string | 活動id
logType | string | 活動記錄類別, REGISTER:報名, CANCEL_REGISTER:取消報名, SIGN_IN:簽到, SIGN_OUT:簽退
createTime | timestamp | 活動記錄建立時間
```javascript
// HttpStatus:400, 資料不存在
{
"errorMsg": "API_ERROR.NOT_EXIST",
"httpCode": 400
}
// HttpStatus:200
{
"httpCode": 200,
"result": {
"data": {
"id": "ef353072-c154-4475-b988-472e89f87a6d",
"tenantId": "WMT",
"tenantName": "緯創醫學",
"title": "活動11",
"content": "Disney+ 上線囉, 還不快訂起來~~",
"isSingleDay": false,
"eventStartTime": 1638288000000,
"eventEndTime": 1639065600000,
"thumbnailObjectKey": "event/thumbnail/98386d85-592e-4e7d-80f3-0e22a389ff65.png",
"attachType": "URL",
"attachObjectKey": "https://www.google.com",
"attendeeLimit": -1,
"isRegister": true,
"regStartDate": 1637164800000,
"regEndDate": 1639065600000,
"isSign": true,
"status": "ON",
"createTime": 1637164800000,
"updateTime": 1637164800000,
"attachUrl": "https://www.google.com",
"thumbnailUrl": "http://10.31.49.126/swift/v1/AUTH_test/kmuh/event/thumbnail/98386d85-592e-4e7d-80f3-0e22a389ff65.png",
"notificationTitle":null
"eventUserLogList": [
{
"id": "f5a1f7ff-5de9-4638-b7ce-c0ef4aa9170f",
"householdMemberId": "8a9e980a-c612-4f87-af07-a97a5f0fbed5",
"eventId": "ef353072-c154-4475-b988-472e89f87a6d",
"logType": "REGISTER",
"createTime": 1637251200000
}
],
"hadRegistered": true,
"hadSignIn": false,
"registeredCount": 2
}
}
}
```
## 活動報名
```url
POST /event/register
```
#### Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
eventId | string | Y | | 活動id
```javascript
{
"eventId": "ef353072-c154-4475-b988-472e89f87a6d"
}
```
#### Response
欄位 | 型態 | 說明
--- | --- | ---
id | string | 活動人員參與記錄id
eventId | string | 活動id
householdMemberId | string | householdMemberId
registerTime | timestamp | 報名時間
signInTime | timestamp | 簽到時間
signOutTime | timestamp | 簽退時間
```javascript
// HttpStatus:400, 資料不存在
{
"errorMsg": "API_ERROR.NOT_EXIST",
"httpCode": 400
}
// HttpStatus:422, 活動已結束
{
"errorMsg": "SERVICE_ERROR.EVENT_HAD_FINISH",
"httpCode": 400
}
// HttpStatus:422, 活動已下架
{
"errorMsg": "SERVICE_ERROR.EVENT_HAD_OFF",
"httpCode": 400
}
// HttpStatus:422, 不需報名
{
"errorMsg": "SERVICE_ERROR.EVENT_NO_NEED_REGISTER",
"httpCode": 400
}
// HttpStatus:422, 報名日期已過
{
"errorMsg": "SERVICE_ERROR.EVENT_REGISTER_OVER_DATE",
"httpCode": 400
}
// HttpStatus:422, 報名人數已超過
{
"errorMsg": "SERVICE_ERROR.EVENT_REGISTER_OVER_LIMIT",
"httpCode": 400
}
// HttpStatus:200
{
"httpCode": 200,
"result": {
"data": {
"id": "b3aaf4eb-7902-443f-8b7e-fbe48e8e8146",
"eventId": "ef353072-c154-4475-b988-472e89f87a6d",
"householdMemberId": "8a9e980a-c612-4f87-af07-a97a5f0fbed5",
"registerTime": 1637262924248,
"createTime": 1637262924244,
"updateTime": 1637262924244
}
}
}
```
## 活動報名取消
```url
POST /event/cancel-register
```
#### Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
eventId | string | Y | | 活動id
```javascript
{
"eventId": "ef353072-c154-4475-b988-472e89f87a6d"
}
```
#### Response
欄位 | 型態 | 說明
--- | --- | ---
id | string | 活動人員參與記錄id
eventId | string | 活動id
householdMemberId | string | householdMemberId
signInTime | timestamp | 簽到時間
signOutTime | timestamp | 簽退時間
```javascript
// HttpStatus:400, 資料不存在
{
"errorMsg": "API_ERROR.NOT_EXIST",
"httpCode": 400
}
// HttpStatus:422, 此活動不允許參與
{
"errorMsg": "SERVICE_ERROR.EVENT_NOT_ALLOWED",
"httpCode": 400
}
// HttpStatus:422, 活動已結束
{
"errorMsg": "SERVICE_ERROR.EVENT_HAD_FINISH",
"httpCode": 400
}
// HttpStatus:422, 活動已下架
{
"errorMsg": "SERVICE_ERROR.EVENT_HAD_OFF",
"httpCode": 400
}
// HttpStatus:422, 不需報名
{
"errorMsg": "SERVICE_ERROR.EVENT_NO_NEED_REGISTER",
"httpCode": 400
}
// HttpStatus:422, 報名日期已過
{
"errorMsg": "SERVICE_ERROR.EVENT_REGISTER_OVER_DATE",
"httpCode": 400
}
// HttpStatus:422, 報名人數已超過
{
"errorMsg": "SERVICE_ERROR.EVENT_REGISTER_OVER_LIMIT",
"httpCode": 400
}
// HttpStatus:200
{
"httpCode": 200,
"result": {
"data": {
"id": "b3aaf4eb-7902-443f-8b7e-fbe48e8e8146",
"eventId": "ef353072-c154-4475-b988-472e89f87a6d",
"householdMemberId": "8a9e980a-c612-4f87-af07-a97a5f0fbed5",
"createTime": 1637262924244,
"updateTime": 1637262924244
}
}
}
```
## 活動簽到簽退
```url
POST /event/sign
```
* 對同一活動第一次執行為簽到, 後續執行為簽退
#### Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
eventId | string | Y | | 活動id
```javascript
{
"eventId": "ef353072-c154-4475-b988-472e89f87a6d"
}
```
#### Response
欄位 | 型態 | 說明
--- | --- | ---
id | string | 活動人員參與記錄id
eventId | string | 活動id
householdMemberId | string | householdMemberId
signInTime | timestamp | 簽到時間
signOutTime | timestamp | 簽退時間
```javascript
// HttpStatus:400, 資料不存在
{
"errorMsg": "API_ERROR.NOT_EXIST",
"httpCode": 400
}
// HttpStatus:422, 此活動不允許參與
{
"errorMsg": "SERVICE_ERROR.EVENT_NOT_ALLOWED",
"httpCode": 400
}
// HttpStatus:422, 活動尚未開始
{
"errorMsg": "SERVICE_ERROR.EVENT_NOT_GOING",
"httpCode": 400
}
// HttpStatus:422, 活動時間已過
{
"errorMsg": "SERVICE_ERROR.EVENT_TIME_OVER",
"httpCode": 400
}
// HttpStatus:422, 活動需要先報名
{
"errorMsg": "SERVICE_ERROR.EVENT_NEED_REGISTER_FIRST",
"httpCode": 400
}
// HttpStatus:200
{
"httpCode": 200,
"result": {
"data": {
"id": "b3aaf4eb-7902-443f-8b7e-fbe48e8e8146",
"eventId": "ef353072-c154-4475-b988-472e89f87a6d",
"householdMemberId": "8a9e980a-c612-4f87-af07-a97a5f0fbed5",
"createTime": 1637262924244,
"updateTime": 1637262924244
}
}
}
```
## 活動觸及(曝光)
```url
POST /event/reach
```
* App 端控制將活動已在畫面呈現給User時, call 此API計算活動的觸及
#### Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
eventList | string array | Y | | 活動id List, 最多傳入50組活動id, 活動id不可重覆
```javascript
{
"eventList": [
"b02d3f3a-e55f-4f50-a557-55930111a4ae",
"f14d33c4-38b1-4611-a6d1-11a1b202305d",
"62e120c0-a3e6-4e6c-bdc0-65b3a5fb03d1",
"5f09ee60-4ada-4b96-afd3-78c41c005a46"
]
}
```
#### Response
欄位 | 型態 | 說明
--- | --- | ---
count | int | 已計入的數量
```javascript
// HttpStatus:200
{
"httpCode": 200,
"result": {
"data": {
"count": 4
}
}
}
```
## 活動點擊
```url
POST /event/click
```
* 目前情境下, App端不需特地call 此API, 因已在 /event/info 這支API裡計算
#### Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
id | string | Y | | 活動id
```javascript
{
"id": "b02d3f3a-e55f-4f50-a557-55930111a4ae"
}
```
#### Response
欄位 | 型態 | 說明
--- | --- | ---
count | int | 已計入的數量
```javascript
// HttpStatus:200
{
"httpCode": 200,
"result": {
"data": {
"count": 1
}
}
}
```